![f1954db2965909eecd2ca7b9cbcf66b5.png](https://i-blog.csdnimg.cn/blog_migrate/35d5871dee30594f1e140bde74fa3e6d.jpeg)
Mybatis终极案例之注解开发
一、注解开发实现CURD操作
1.环境搭建
参考入门案例,环境搭建主要分为如下几步:
1.配置pom.xml
<packaging>jar
2.配置SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
之所以采用外部文件(jdbcConfig.propertities)的方式对数据连接信息进行修改,是为了之后修改时更加方便,内容如下:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=12345678
log4j的配置文件(log4j.properties)如下:
# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %mn
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %mn
上述三个文件都在Resources目录下,同时注意:对于同一个dao接口映射配置文件和注解的方式只能选一种,如果采用注解的方式,该dao接口对应得resource就不能包括映射配置文件。
3.新建实体类
在src/main/java目录下,新建实体类domain.User。
public
2.配置数据库列名和实体关系类名的映射
由于实体类属性名和数据库列名并不一致,所以不能像入门案例一样,只使用Select标签。需要使用Results标签。在src/main/java目录下,新建接口dao.IUserDao:
public
3.测试
在test/java目录下,新建测试类UserTest:
public
![82649329355716c736b272de7d70d3db.png](https://i-blog.csdnimg.cn/blog_migrate/41c4b1f8c583be3efd272e119a3f0eaf.jpeg)
4.更加复杂的查询
我们已经实现了最基本的查询操作,现在在IUserDao接口中,添加更多的方法,以实现更加复杂的CRUD:
/**
在测试类UserTest中添加测试:
/**
二、注解开发实现复杂关系映射
1.一对一多表查询
1.新建Account类
在src/main/java目录下的domain包下,新建实体类Account:
public
2.添加dao接口
在src/main/java目录下的dao包下,新建接口IAccountDao:
public
3.测试
在test/java目录下,新建测试类AccountTest:
public
![02eb3f67242244602bcee071ac27c81d.png](https://i-blog.csdnimg.cn/blog_migrate/c45c41e3fa2431d3df05232c86703f06.jpeg)
2.一对多多表查询
1.在IAccountDao接口中添加根据用户id查询的方法
/**
2.在IUserDao接口中添加一对多查询的方法
/**
3.测试
在测试类UserTest中添加测试:
/**
![207b8b555081db297cc4ddd63cea2f8b.png](https://i-blog.csdnimg.cn/blog_migrate/9ad5618669bbafd4e0e770a4e9a264e4.jpeg)
三、基于注解的二级缓存
1.开启二级缓存配置
1.在主配置文件SqlMapConfig.xml中添加二级缓存的支持
<setting
2.对应的接口开启二级缓存的支持
在接口IUserDao接口名的上方添加:
@CacheNamespace
2.测试运行
在测试类UserTest中添加测试:
@Test