Mybatis学习的一些细节

最近几天一直在学习mybatis,看了一些源码,本文讲述mybatis的一些基本配置和基本的用法和注意到一些细节。个人时间和精力有限,本文属于流水账类型,不成体系,算是自己的个人笔记吧。

1.本案例所使用的数据库为mysql,数据库的脚本代码如下:

 
 

2.创建实体类

 
 

3.去官网下载mybatis ,导入相应的jar包。

创建配置文件configuration.xml

 
 

这个配置文件,需要一个对象跟数据库交互,这个对象是sqlsession,下面讲述sqlsession.

Sqlsession的作用:

    1. 向sql 语句传入参数
    1. 执行 sql语句
    1. 获取执行sql语句的结果
    1. 事物的控制

如何获取Sqlsession:

    1. 通过获取配置文件获取数据库连接相关信息
    1. 通过配置信息构建 sqlSessionFactory 的对象
    1. 通过sqlsessionFactory大家数据库会话。
 
 

3.SQL基本配置、执行

Message.xml文件配置:

 
 

其中使用到了ONGL表达式:

WX20161225-220301@2x.png

WX20161225-220208@2x.png

在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配置文件常用的标签如下:

WX20161226-213750@2x.png

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

猜你喜欢

转载自www.cnblogs.com/chenjunkang/p/9805585.html