发表于: 2017-09-10 23:19:47

2 791


一、    今天完成的事情

1)        MyBatis

1) 对象属性名与列名不一致

当使用的实体类属性名与列名不一致时,MyBatis查询返回的结果无法封装成一个实体对象,这时有两种解决方式。

方式一:起别名。在查询语句中给字段起别名,要求别名与类属性名一致。

方式二:ResultMap。通过resultMap标签使列名映射属性名

2) Mapper动态代理

MyBatis可去除Dao的实现类,直接定位到映射文件mapper中的相应sql语句,对数据库操作,这要求接口中的API能定位到映射文件中相应的id

首先,通过接口全限定名定位到映射文件mapper

然后,确保dao中的方法在映射文件mapper中有对应的id

通过SqlSessiongetMapper获取dao的实现类对象

最后,记得操作完毕后提交会话,关闭会话

3) 多查询条件问题

当查询表时要求进行多个条件查询,且不能将这些条件封装成实体类时,可以怎么做?

现要求查询student表中姓名中有字,年龄大于23,且成绩优于指定的某同学

方式一:封装成map

这样一来,映射文件中如何取值呢?通过map中的key

方式二:索引

正常传入参数后,在mapper中按索引取值

4) 小结 #{}

      #{}可以放参数对象的属性

      #{}可以放随意内容,此时只是充当占位符

      parameterTypemap时,#{}可以放key

      parameterTypemap时,若key为对象,可以放入对象的属性

      #{}可以放参数的索引号

二、    明天计划的事情

1)学习mybatis

三、    遇到的问题

四、    收获



返回列表 返回列表
评论

    分享到