文章依照官网文档所写,使用的mybatis版本为3.5.4,使用数据库为mysql
本文以使用案例为主,基础性讲解较少,请结合文档阅读。也是初学者,能力有限,有错麻烦指正,谢谢
本文所用代码上传至个人GitHub,全部运行方法都在测试实例中,数据库生成与数据添加代码在sql.sql内,为了演示不同的功能,不同功能的测试代码和配置文件完全分离。
为了更好的理解,阅读本博客之前请先阅读上一篇内容
纯注解无配置文件使用
本章测试代码在test/java/sqlSession
中,对应的dao在dao.sqlSession
中
本章演示了java api构建基础配置加上纯注解的方式应用mybatis。文档中提到了构建SqlSessionFactory
的构建方法包括一个SqlSessionFactory build(InputStream inputStream, Properties properties)
,其中Properties代表的是配置文件中的properties
标签,优先顺序如下:
- xml配置文件中的
properties
标签体里写好的property
优先级最低; - 然后是
properties
标签头上resource
属性文件读取的属性; - 优先级最高的是直接作为方法参数传入的属性,即
build(InputStream inputStream, Properties properties)
注意,构建PooledDataSource
的时候传入的Properties
,用户名的key需要叫user,而并非username
不过仍然搞不清sqlSession.select
的用法,返回的是void,这个方法有什么用呢?存疑
@Select,@Insert,@Delete
本章测试代码在test/java/rud
中,对应的dao在dao.rud
中。跟在XML里配置差不太多
@Results
本章测试代码在test/java/resultMap
中,对应的dao在dao.resultMap
中。
注解中,resultMap的association和collection好像只支持nested select操作
@mapKey
本章测试代码在test/java/mapKey
中,对应的dao在dao.mapKey
中。
就是把结果的list转换成map