通过generatorConfig.xml文件生成DAO对象、映射文件
在generatorConfig.xml上右键菜单,执行”Generate MyBatis/iBATIS Artifacts”项,自动在:xml,domain,dao三个文件夹中生成映射文件、模型pojo、DAO接口类。
JDBC驱动 JAR包
复制JDBC驱动 JAR包到工程中,这里是ORACLEojdbc14.jar
新建mybatis-config.xml
在src根目录下新建出mybatis-config.xml文件,内容如下:
以上配置文件中的内容仅用作单独测试mybatis时使用,到最后与spring整合后里面的内容基本用不上,可以直接注释掉。
做一个简单的查询测试
1) 准备一个工具类:MyBatisUtil.java 。这个文件在官方文档和各类教程中都有涉及到,
主要用作创建session,到最后与spring整合后基本用不上。 MyBatisUtil.java packagecom.jsdz.util; importjava.io.IOException; importjava.io.Reader; importorg.apache.ibatis.io.Resources; importorg.apache.ibatis.session.SqlSessionFactory; importorg.apache.ibatis.session.SqlSessionFactoryBuilder; publicclassMyBatisUtil { privatefinalstaticSqlSessionFactorysqlSessionFactory ; static {
String resouce = \;
Reader reader = null;
try {
reader = Resources.getResourceAsReader(resouce);
} catch (IOException e) {
System.out.println(e.getMessage()); }
sqlSessionFactory = newSqlSessionFactoryBuilder().build(reader); }
publicstaticSqlSessionFactorygetSqlSessionFactory() { returnsqlSessionFactory ; } }
2) 准备两个测试桩文件,一个为主测试类Test.java,调各个具体的测试类,今后可以复用,
另外一个面向UserMapper类的测试。
TestMapperUser.java packagecom.jsdz.test;
import …
publicclassTestMapperUser {
staticSqlSessionFactorysqlSessionFactory = null ;
static {
sqlSessionFactory = MyBatisUtil.getSqlSessionFactory(); }
voidtestQueryByUserNameAndPassword() {
SqlSessionsqlSession = sqlSessionFactory.openSession();
try{
UserMapper mapper = sqlSession.getMapper(UserMapper.class) ; UserExample example = newUserExample();
example.clear();
example.or().andUsernameEqualTo(\).andPasswordEqualTo(\) ; List
Test.java packagecom.jsdz.test; import … publicclass Test { publicstaticvoid main(String[] args) { TestMapperUsertestMapperUser = newTestMapperUser(); testMapperUser.testQueryByUserNameAndPassword(); System.exit(0); } }
3) 以Application方式运行Test.java文件,输出:
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
query item count:1 1,admin,1234
说明可以查询到记录。
日志中提示log4j的告警,解决方法:
log4j属性文件
在src目录下创建文件:log4j.properties,内容如下
# Rules reminder: # DEBUG < INFO < WARN < ERROR < FATAL # Global logging configuration log4j.rootLogger=INFO,stdout # My logging configuration... log4j.logger.java.sql=DEBUG log4j.logger.org.apache.mybatis=DEBUG ## Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p%d%C:%m%n 以上设置sql输出和mybatis级别DEBUG模式,保证了日志中能打印出mybatis执行的SQL语句,方便跟踪。
完成MyBatis与Spring的整合
目标:
? 由 spring来创建session,避免过多的session创建、销毁代码编写; ? 由spring来管理事务
? 将mapper接口的实例化创建交由spring管理
1) 安装整合插件:从mybatis-spring-1.1.1-bundle.zip包中复制包到WEB-INF/lib目录下: 主JAR包是mybatis-spring-1.1.1.jar