草庐IT

MyBatis(十七):一对多的处理

上一篇我们学习了多对一的处理,这次我们来学习一对多的处理。一对多的处理与多对一的处理差别不大,只是有一些细微的地方需要注意。我们还是先做准备工作,其他部分与多对一的准备工作相同,仅实体类构建需要做出改变。一、修改实体类Student类:packagecom.jms.pojo;publicclassStudent{privateintid;privateStringname;privateinttid;publicStudent(){}publicStudent(intid,Stringname,inttid){this.id=id;this.name=name;this.tid=tid;}pu

MyBatis (十八):MyBatis中column属性的总结

在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名。下面我们进行一个实验。首先我们有一张user表:   我还有一个实体类User,有着id、username、password三个属性。我们的UserMapper接口中有着获取这张表单所有数据的方法。我们现在在UserMapper.mxl中这样写:selectid="getUsers"resultType="User">select*frommybaties.userselect>或者这样写:selectid="getUser

MyBatis (十八):MyBatis中column属性的总结

在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名。下面我们进行一个实验。首先我们有一张user表:   我还有一个实体类User,有着id、username、password三个属性。我们的UserMapper接口中有着获取这张表单所有数据的方法。我们现在在UserMapper.mxl中这样写:selectid="getUsers"resultType="User">select*frommybaties.userselect>或者这样写:selectid="getUser

MyBatis(十九):动态SQL

一、什么是动态SQL官方文档给出了这样的说明:动态SQL是MyBatis的强大特性之一。如果你使用过JDBC或其它类似的框架,你应该能理解根据不同条件拼接SQL语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL,可以彻底摆脱这种痛苦。使用动态SQL并非一件易事,但借助可用于任何SQL映射语句中的强大的动态SQL语言,MyBatis显著地提升了这一特性的易用性。如果你之前用过JSTL或任何基于类XML语言的文本处理器,你对动态SQL元素可能会感觉似曾相识。在MyBatis之前的版本中,需要花时间了解大量的元素。借助功能强大的基于OGNL的表达

MyBatis(十九):动态SQL

一、什么是动态SQL官方文档给出了这样的说明:动态SQL是MyBatis的强大特性之一。如果你使用过JDBC或其它类似的框架,你应该能理解根据不同条件拼接SQL语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL,可以彻底摆脱这种痛苦。使用动态SQL并非一件易事,但借助可用于任何SQL映射语句中的强大的动态SQL语言,MyBatis显著地提升了这一特性的易用性。如果你之前用过JSTL或任何基于类XML语言的文本处理器,你对动态SQL元素可能会感觉似曾相识。在MyBatis之前的版本中,需要花时间了解大量的元素。借助功能强大的基于OGNL的表达

MyBatis(二十):动态SQL之if语句

一、什么是动态SQL之if语句if很简单了,就是满足条件就执行,不满足条件不执行。那么动态SQL中的if语句是怎么样的呢?首先我们来看一张表blog:   如果我们执行下面的SQL语句:select*fromblog肯定会将所有的数据都查出来。那么我们可以在后面加上where条件进行筛选,那么如果我们想不同的情况下执行不同的where甚至有时候多种情况一起发生怎么办,这时候我们就需要用到if进行判断并进行SQL语句的拼接了,就类似于下面这句SQL:select*fromblogwheretitle=""andauthor=""但是若果我们把tilte和author都作为if判断中的内容,whe

MyBatis(二十):动态SQL之if语句

一、什么是动态SQL之if语句if很简单了,就是满足条件就执行,不满足条件不执行。那么动态SQL中的if语句是怎么样的呢?首先我们来看一张表blog:   如果我们执行下面的SQL语句:select*fromblog肯定会将所有的数据都查出来。那么我们可以在后面加上where条件进行筛选,那么如果我们想不同的情况下执行不同的where甚至有时候多种情况一起发生怎么办,这时候我们就需要用到if进行判断并进行SQL语句的拼接了,就类似于下面这句SQL:select*fromblogwheretitle=""andauthor=""但是若果我们把tilte和author都作为if判断中的内容,whe

MyBatis(十二):RowBounds实现分页

首先说明一下,这种涉及了在MyBatis(二)中说的那个第二种老方法,所以一般不推荐使用。上一篇我们利用SQL的limit实现了分页,是在SQL层面的,那么这次我们利用java代码RowBounds来实现。直接上操作。一、RowBounds实现分页1.在UserMapper接口中声明一个新的方法//利用RowBounds进行分页ListgetUserbyRowBounds();2.在UserMapper.xml中实现这个方法selectid="getUserbyRowBounds"resultMap="UserMap">select*frommybaties.userselect>3.juni

MyBatis(十二):RowBounds实现分页

首先说明一下,这种涉及了在MyBatis(二)中说的那个第二种老方法,所以一般不推荐使用。上一篇我们利用SQL的limit实现了分页,是在SQL层面的,那么这次我们利用java代码RowBounds来实现。直接上操作。一、RowBounds实现分页1.在UserMapper接口中声明一个新的方法//利用RowBounds进行分页ListgetUserbyRowBounds();2.在UserMapper.xml中实现这个方法selectid="getUserbyRowBounds"resultMap="UserMap">select*frommybaties.userselect>3.juni

MyBatis(十三):使用注解开发

一、什么是使用注解开发使用注解开发就是无需再配置Mapper.xml文件,直接在接口中利用注解实现SQL语句。二、为什么要使用注解开发正如官方文档所说:使用注解来映射简单语句会使代码显得更加简洁。但对于稍微复杂一点的语句,Java注解不仅力不从心,还会让你本就复杂的SQL语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用XML来映射语句。三、如何使用注解进行开发1.删掉原来的UserMapper.xml2.修改UserMapper接口packagecom.jms.dao;importcom.jms.pojo.User;importorg.apache.ibatis.annotatio