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就失效了:
一级缓存例子:
下面第二次查的时候查缓存的(如果有增删改语句,会刷新缓存,再查询得去数据库了)