mybatis2
crud:


注意:

使用map插入部分字段:
DAO:

xml:

测试:

模糊查询:

xml可以配置多个环境,default选择使用哪个环境:

能引入外部文件的变量,其中properties中的property是新增的属性,也能定义在外部,如果内外都定义了属性,则外部定义的优先级高于内部:


起别名 typeAlias:


或者换成package也行:





解决方法1:

解决方法2:使用ResultMap
其实id和name那俩行不用写

日志显示(注意settings位置):

log4j:
日志输出

日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。定义了前面的级别,则后面级别的信息就不打印了,只打印>=该级别的。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
导包与设置日志的输出:



sql limit:limit 0,2从第0个开始,选出2个,第二个是-1,则是到最后一个结束
limit 10:查询10条数据,索引从0到9
使用mybatis实现分页显示:



使用RowBounds分页:

其中1是起始,2是个数

mybatis分页插件:pageHelper
使用注解开发:



多个参数情况:其中sql中的{},要和@Param里面的保持一致
一个参数可以不加@param
引用类型不需要加@param

这里设置为true后,以后的都不用再commit了:


其他注解语句:

lombock插件(不推荐):
省去了写get、set等方法


多对一:
假定一个老师对应多个学生,每个学生都有老师属性,下面查询学生:
数据库表:





property是java实体类属性,column是数据库表,javaType是该属性类,select是再做子查询

查询结果:

方法2:

一对多:




小结:

动态SQL中的 where:
带有where的sql可以单独拿出where来,下图中,如果后面没有条件了,最终生成的sql就没有where,如果2个条件都有,则会动态加入and


choose和when就相当于switch和case:

set标签能处理逗号:

片段引用:

foreach会按照open、close、分隔符拼接出sql:


一级缓存离开了close就失效了:

一级缓存例子:
下面第二次查的时候查缓存的(如果有增删改语句,会刷新缓存,再查询得去数据库了)


浙公网安备 33010602011771号