发表于: 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
通过SqlSession的getMapper获取dao的实现类对象
最后,记得操作完毕后提交会话,关闭会话
3) 多查询条件问题
当查询表时要求进行多个条件查询,且不能将这些条件封装成实体类时,可以怎么做?
现要求查询student表中姓名中有”李”字,年龄大于23,且成绩优于指定的某同学
方式一:封装成map
这样一来,映射文件中如何取值呢?通过map中的key
方式二:索引
正常传入参数后,在mapper中按索引取值
4) 小结 #{}
① #{}可以放参数对象的属性
② #{}可以放随意内容,此时只是充当占位符
③ parameterType为map时,#{}可以放key
④ parameterType为map时,若key为对象,可以放入对象的属性
⑤ #{}可以放参数的索引号
二、 明天计划的事情
1)学习mybatis
三、 遇到的问题
四、 收获
评论