暂时未有相关云产品技术能力~
暂无个人介绍
前面介绍的都是对单表进行查询,但实际业务中肯定会涉及到多张表,下面开始总结在MyBatis中的一对一、一对多、多对多的高级查询。
上文说到,MyBatis中,通过parameterType指定输入参数的类型。这里说一下用resultType和resultMap来指定输出参数的类型。
在MyBatis的映射文件中,通过parameterType指定输入数据的类型,输入类型可以是简单类型如Integer、HashMap、pojo包装类等。
标题说的有点玄乎,在网上看到的一篇文章,提到了一些大牛具备的几种素质(或者说应该养成的习惯),值得反思。 部分原文如下:
MyBatis常用的开发DAO的方式有两种,第一种就是常用的原始DAO的开发方法,第二种就是Mapper代理的方法。
向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键。主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A、B中插入数据(A的主键是B的外键),向A表中插入数据之后,向B表中插入数据时需要用到A的主键。
mybatis插入了一条数据,查看数据库时并没有显示刚刚插入的数据,但是调试时发现已经成功插入了一条记录(insert返回值为1),而且主键也自增了(前提是表已经设置了主键自增)。
前段时间用几篇博客总结了一下Hibernate,下面再一起回顾总结一下另一套优秀的持久层框架——MyBatis。MyBatis的前身是iBatis,2010年改名为MyBatis~ 同样是持久层框架,MyBatis和Hibernate有什么区别呢?做为初学者的我,不敢妄加评论,网上找了一些大牛的解释:
最近公司开发环境数据库服务器很不稳定,经常连不上,给开发造成很大影响,于是就想把数据库备份到本地。 因为一直在用Navicat操作数据库,这里就分享一下用Navicat备份远程oracle数据库导本地的过程。过程so easy!
通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的几个问题。
ArrayList 是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
文章还按照上篇文章的UML图来分析:
之前写过一篇文章《【J2SE快速进阶】——数组(及其内存分析 )》,在Java编程中,经常会用数组来装载数据,但是数组一个致命的缺点就是一旦初始化,就无法更改长度。 除了数组,Java还给我们提供了各种形式的容器,用来“盛放”数据。
实体Bean跟普通的Java实体并无多大差异,在EJB中的实体Bean用@Entity注解定义。 实体Bean开发步骤如下:
认识消息驱动Bean之前,先了解一下JMS。
EJB应用可以发布为远程调用和本地调用。 从字面意思来理解,远程调用就是客户端(调用的模块)和服务端(被调用的模块)“不在一起”,“相隔很远”;本地调用就是客户端(调用的模块)和服务端(被调用的模块)“在一起”,“相隔很近”。 实质就是,客户端与服务端的EJB对象不在同一个JVM进程中,就是远程调用;客户端与服务端的EJB对象在同一个JVM进程中,就是本地调用。
EJB中的会话Bean(Session Bean)分为有状态的(Stateful)会话Bean和无状态的(Stateless)会话Bean。 对象的状态是由其实例变量(即成员变量)的值组成的
这里创建一个简单的EJB应用,结构如下:
之前一直用的EJB开发环境是他们搭建好的,直接拿来用,不过还是感觉老吃别人嚼好的不太好吃,所以自己动手来玩一玩。 EJB开发依赖的最基本的环境:JDK、Eclipse、JBoss,这里简单介绍一下最基本的环境的搭建。
要把网站发布到外网上去,最基本的条件只需虚拟主机即可,但既然都发布到外网了,让人家用ip访问你的网站也不太好啊,所以这里加上域名,给“用户”以“好的体验”~咳咳~~
网上有许多VMware下安装CentOS的教程,所以这里就不再以“step by step”的方式叙述,只写一些笔者安装过程中遇到的一些问题。
上篇文章说的是每个类映射一张表,不管是父类还是子类。与上篇文章不同的是,这里是每个“具体类”映射一张表,什么意思呢?就是让每个子类(具体的、有意义的类)映射一张表。
上文说了每棵继承树映射一张表,本文继续描述让每个类都映射一张表的配置。
我们都知道,Hibernate最大的一个优点就是使开发更加“面向对象”,类与类之间有继承关系,Hibernate中也对这种继承关系提供了映射的封装。
READ UNCOMMITTED(未提交读),同事务中某个语句的修改,即使没有提交,对其他事务也是可见的。这个也叫脏读。
设置事务隔离级别的方式有很多种,上篇文章中只简单提到了理论知识,这里数据库以MySQL为例,来动手设置一下事务的隔离级别并观察一下事务的隔离级别到底起到什么作用。
要了解事务的隔离级别,推荐您从以下三个步骤来了解。
说到多对多关系,印象最深刻的就是大学的选修课。**一个学生可以选修多门课程,一门课程可以有多个学生选修,学生所选的每一门课程还有成绩**。这个场景的E-R图如下:
上两篇文章说了一对一映射,这里说一下多对一 和 一对多的映射情况。
接着上篇文章,唯一外键关联,就是给一对一关联关系中某个对象加一个外键。比如这里给t_person表添加一个外键,指向t_idcard的主键,并且规定t_person中的外键idCard唯一,也可以达到一对一映射的效果。
现实生活中,有很多场景需要用到一对一映射,比如每个学生只有一个学生证,每个公民只有一张身份证等。这里用公民-身份证来举例说明。
看最近一篇网络上的文章《工业4.0时代,怎样为孩子筹备未来的教育?》有感而发。
刚才在写代码的时候,写了十几行可以说是重复的代码:
“这个excel中的数据怎么不能做加法啊?”、“标头这一行的字体怎么这么小啊,我都看不清”、“这一列能不能换个颜色,明显一些”、“你把这一列的数据给我留两个小数位。”、“这些数据能不能以货币的类型展示啊,就每个三位一个小逗号那种……”
最近做的一个ITFIN的项目中,后台需要用POI实现导出功能,导出的数据中有文本格式,也有货币格式,所以为了方便在将来导出的表格中做计算,存放货币的单元格需要设置为数值类型。
之前的DRP项目虽然用到了oracle,但是所有数据库对象的建立都是按文档来的,并没有仔细思考总结,后面再次用到oracle时,不能再那么糊里糊涂的用了,得稍微探索一下下了,究竟这些oracle中的数据库对象之间都存在什么关系呢?
上文《【SSH快速进阶】——Hibernate环境搭建》中介绍了Hibernate环境搭建,环境搭建好了, 但是还没有数据库和表,Hibernate为提供了自动建表的功能。
为了保证数据的正确性、规范性、安全性等,每个系统的输入都需要校验:
经过前段时间对struts2的学习与实践,总结了一下在struts2中调用action的三种方式。
之前在做.net项目的时候,如果需要测试,可以建立一个单元测试项目:
学习过操作系统的朋友,脑子里肯定都会有这张进程的状态转换图:
这里以一个普通的java project为例,建立名为hibernate的项目。
在很多网站注册的时候,为了验证用户信息的真实合法,往往需要验证用户所填邮件的准确性。形式为:用户注册时填写邮箱,注册完成后,网站会向用户所填邮箱发送一封激活邮件,用户点击激活邮件中的链接后,方可完成注册。
上篇简单介绍了如何在Windows环境下建立配置MySQL集群,这里用一个实现注册功能的小Demo通过jdbc的方式连接到MySQL集群中。
最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。 小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科-MySQL Cluster):
上篇博客《SSH快速进阶——struts2简单的实例》中,处理用户登陆的action—LoginAction为:
最近刚刚入门struts2,这里做一个简单的struts2实例来跟大家一起学习一下。 本例实现最简单的登陆,仅包含两个页面:login.jsp 用来输入用户名和密码;success.jsp 为登陆成功页面;error.jsp为登陆失败页面。
做项目过程中,用户登陆之后,需要将用户的信息存到Cookie中,但因为Cookie中只能存储字符串,所以想到了先把用户实体序列化成Json串,存储在Cookie中,用到的时候再拿出来反序列化。
如下图,很多CMS的首页都会有实时更新的轮番图的需求:
J2EE支持JDBC事务、JTA事务和容器事务事务,这里说一下如何实现JDBC事务。 JDBC事务是由Connection对象所控制的,它提供了两种事务模式:自动提交和手动提交,默认是自动提交。