Mybatis学习的一些细节
最近几天一直在学习mybatis,看了一些源码,本文讲述mybatis的一些基本配置和基本的用法和注意到一些细节。个人时间和精力有限,本文属于流水账类型,不成体系,算是自己的个人笔记吧。
1.本案例所使用的数据库为mysql,数据库的脚本代码如下:
2.创建实体类
3.去官网下载mybatis ,导入相应的jar包。
创建配置文件configuration.xml
这个配置文件,需要一个对象跟数据库交互,这个对象是sqlsession,下面讲述sqlsession.
Sqlsession的作用:
- 向sql 语句传入参数
- 执行 sql语句
- 获取执行sql语句的结果
- 事物的控制
如何获取Sqlsession:
- 通过获取配置文件获取数据库连接相关信息
- 通过配置信息构建 sqlSessionFactory 的对象
- 通过sqlsessionFactory大家数据库会话。
3.SQL基本配置、执行
Message.xml文件配置:
其中使用到了ONGL表达式:
在configuration.xml中配置
执行:
由于mybatis的sql语句写在了xml中,导致调试比较困难,不能打断点。这时需要日志去调。
下载log4j jar包,并配置log4j.propertites
log的级别:
log.debug
log.info
log.warm
log.error
级别从小到大,也就是og4j.rootLogger=DEBUG;可以输出所有的日志类型;og4j.rootLogger=info ,新航道雅思班只能够输出 info,warm ,error
要想mybtis 显示日志,必须log4j.rootLogger=DEBUG;
项目中配置了log4j,mybatis 会自动应用log4j
mybatis sql配置文件常用的标签如下:
mapper文件下的标签含义:
nameSpace 标签区分可以用来区分sql文件
parameterType 将会传入这条语句的参数类的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过 TypeHandler 推断出具体传入语句的参数,默认值为 unset。
resultMap 外部 resultMap 的命名引用。结果集的映射是 MyBatis 最强大的特性,对其有一个很好的理解的话,许多复杂映射的情形都能迎刃而解。使用 resultMap 或 resultType,但不能同时使用。
java实体内Command包含了一个List contentList集合。
在mapper中配置:
CommandContent.xml配置
经过这样的配置,在DAO层执行,就可以取出command中的属性。
六.取自增长 key
七、一点细节
另外:
敲黑板划重点,mybatis的所有知识都可以在官网上都有,建议看十遍,……_,地址:http://www.mybatis.org/mybatis-3/zh/configuration.html