博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(六)mybatis-spring集成完整版
阅读量:6045 次
发布时间:2019-06-20

本文共 5474 字,大约阅读时间需要 18 分钟。

mybatis-spring集成完整版

一、项目整体

  1. mybatis接口层、mapper层
  2. Service层
  3. Test调用测试

二、自动生成代码-

  主要修改:

    接口、mapper、实体类的包结构

    需要生成的数据库表

  生成的包目录结构:

                            

三、配置mybatis-config.xml

  1. 配置数据源:安装derby,使用网络模式连接
  2. 映射器
  3. 事务管理器、别名、插件之类
  4. 加级联,mapper.xml和实体类
  5. 配置setting懒加载
  6. 详细配置见--九、mybatis-config.xml

四、整合spring,配置applicationContext.xml

  1. 配置数据源
  2. 配置sqlSessionFactory:DataSource、引入mybatis-config.xml
  3. 自动加载映射文件
  4. 配置自动扫描接口
  5. 开启注解
  6. 详细配置见--九、applicationContext.xml(33-89行)

  【注】此处使用

五、配置注解方式(自动创建bean)

  1. 启动aop注解
  2. service实现类上添加@service,并声明private mapper接口(添加@Autowired)
  3. 测试类上声明service接口(添加@Autowired)
  4. applicationContext.xml配置(16-21行)

User为例:

  接口类:

@Component("USERMAPPER")  //配置自动生成的bean的名字public interface UserMapper {    。。。}

  service实现类

@Service("USERSERVICEIMP")public class UserServiceImpl implements UserService{    @Autowired    private UserMapper userMapper;    //...}

  test类

public class UserTest extends SpringTestCase{    @Autowired    private UserService userService;    //...}

  SpringTestCase类(此类是加载applicationContext.xml文件,可直接写个初始化方法启动加载)

import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@ContextConfiguration(locations={"classpath:applicationContext.xml"})@RunWith(SpringJUnit4ClassRunner.class)public class SpringTestCase extends AbstractJUnit4SpringContextTests{}

六、配置事务

  Xml添加事务管理器配置,开启事务注解(详细配置见applicationContext.xml    91-95行)

  在需要添加事务的方法或类上添加注解:

  @Transactional(value="transactionManager",propagation=Propagation.REQUIRES_NEW,isolation=Isolation.READ_COMMITTED)

  //事务名、传播方式、隔离级别

七、配置ehcache

  1. ApplicationContext.xml:(1)添加cache配置;(2)引入ehcache.xml;(3)开启cache注解;(详细配置见applicationContext.xml  23-31行)
  2. ehcache.xml:配置自定义缓存(需要配置属性)(见 九、ehcache.xml)
  3. 添加cache注解:

    @Cacheable 属性,value、key和condition

    @CachePut  属性,value、key和condition检查相同key的缓存元素

    @CacheEvict 属性value、key、condition、allEntries和beforeInvocation清除缓存元素

  【注】实体类需要序列化,否则写缓存出错

事务+cache运用

@Service("USERSERVICEIMP")public class UserServiceImpl implements UserService{    @Autowired    private UserMapper userMapper;    @Transactional(value="transactionManager",propagation=Propagation.REQUIRES_NEW,isolation=Isolation.READ_COMMITTED)    public void Transaction(){        User user=new User();        user.setId(14);        user.setAccount("admin");        user.setName("管理员");        user.setPassword("123456");        user.setRoleId(1);        int i=userMapper.insert(user);        User user1=new User();        user1.setId(14);        user1.setAccount("admin");        user1.setName("管理员");        user1.setPassword("123456");        user1.setRoleId(2);        int j=userMapper.insert(user1);        System.out.println(i+"--"+j);    }        @Cacheable(value="sampleCache",key="#id")    public User selectByPrimaryKey(Integer id) {        User user=userMapper.selectByPrimaryKey(id);        System.out.println(user);        return user;    }    @Override    @CacheEvict(value="sampleCache",key="#id",allEntries=true,beforeInvocation=true)    public int updateByPrimaryKeySelective(User record) {        // TODO Auto-generated method stub        int i=userMapper.updateByPrimaryKeySelective(record);        return i;    }}

八、配置log4j、junit4

见 九、配置文件

九、配置文件

  applicationContext.xml

1 
2
15 16
17
18
19
20
21
22 23
24
25
26
27
28
29
30
31
32 33
34
35 36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 75
76 77
78
79
80
81
82
83
84 85
86
87
88
89
90 91
92
93
94
95
96 97

  jdbc.properties

driver=org.apache.derby.jdbc.ClientDriverurl=jdbc:derby://localhost:1527/E:/my/derby/mydburl_slave=jdbc:derby:E://shiny/DdlUtils-test/mydb

  mybatis.xml

1 
2 5
6
7
8
9
10
11
1213

  ehcache.xml

1 
2
5 6
7
8 9
10
18 19
22
24 25
26 27

  log4j.properties

log4j.rootLogger=DEBUG, stdoutlog4j.logger.org.mybatis=DEBUGlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

 

 

 

 

转载于:https://www.cnblogs.com/zuzZ/p/8194286.html

你可能感兴趣的文章
2.4 salt grains与pillar jinja的模板
查看>>
VDI序曲二十 桌面虚拟化和RemoteApp集成到SharePoint 2010里
查看>>
移动互联网,入口生死战
查看>>
JAVA多线程深度解析
查看>>
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
获取post传输参数
查看>>
ASP生成静态页面的方法
查看>>
HDU 1325 Is It A Tree? 判断是否为一棵树
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>