Spring与Mybatis的整合
时间:2022-07-22
本文章向大家介绍Spring与Mybatis的整合,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
提供一种Spring的IoC容器与Mybatis的整合方式,其中中,Mybatis采用纯注解方式配置,Spring采用XML方式配置。数据库源采用的是C3P0数据库连接池。
1. 在Spring的XML配置文件中添加相关配置
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
<property name="user" value="root"/>
<property name="password" value="password123"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.titan6.spring.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<bean id="userService" class="cn.titan6.spring.service.impl.UserServiceImpl"/>
这里采用的是mybatis-spring的MapperScannerConfigurer来实现将DAO对象置入IOC容器中,将会扫描并加入basePackage指定包下的所有DAO接口。
2. DAO接口与Service实现类
DAO简单的实现了一个查询所有信息的功能
package cn.titan6.spring.dao;
import cn.titan6.spring.bean.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserDao {
@Select("SELECT * FROM user")
List<User> findAllUser();
}
UserService实现类采用Spring的注解方式自动通过构造器进行依赖注入UserDao
package cn.titan6.spring.service.impl;
import cn.titan6.spring.bean.User;
import cn.titan6.spring.dao.UserDao;
import cn.titan6.spring.service.UserService;
import org.springframework.stereotype.Component;
import java.util.List;
@Component("userService")
public class UserServiceImpl implements UserService {
private final UserDao dao;
public UserServiceImpl(UserDao dao) {
this.dao = dao;
}
@Override
public List<User> findAllUser() {
return dao.findAllUser();
}
}
3. 进行JUnit测试
import cn.titan6.spring.bean.User;
import cn.titan6.spring.config.SpringConfiguration;
import cn.titan6.spring.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.List;
public class SpringTest {
@Test
public void findAllUser() {
ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml");
UserService userService = context.getBean("userService", UserService.class);
List<User> allUser = userService.findAllUser();
allUser.forEach(System.out::println);
}
}
- Codeforces 834D The Bakery【dp+线段树维护+lazy】
- memcached安装及.NET中的Memcached.ClientLibrary使用详解
- AtCoder Beginner Contest 069【A,水,B,水,C,数学,D,暴力】
- 2017"百度之星"程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】
- 洛谷 2634&&BZOJ 2152: 聪聪可可【点分治学习+超详细注释】
- 【经验总结】Java在ACM算法竞赛编程中易错点
- 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
- 类A是公共的,应在名为A.java的文件中声明错误
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
- 【Java学习笔记之七】java函数的语法规则总结
- BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
- BZOJ 3211: 花神游历各国【线段树区间开方问题】
- WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
- 【Java学习笔记之八】JavaBean中布尔类型使用注意事项
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Java停止线程的四种方法
- Educational Codeforces Round 95 (Rated for Div. 2) A-D
- Go服务迁到K8s后老抽风重启? 记一次完整的线上问题解决过程
- PHP的另一个高效缓存扩展:Yac
- 在PHP中操作临时文件
- 在线IDE开发入门之从零实现一个在线代码编辑器
- 树莓派4裸机基础教程:从hello world开始
- 基于f2从零实现移动端可视化编辑器
- GORM V2 读操作
- Kubernetes 1.19.0——Pod(1)
- GORM V2 写操作
- Selenium自动化最佳实践技巧(下)
- Selenium自动化最佳实践技巧(中)
- 图解内存匿名反向映射reverse mapping
- 2020-09-18:LRU手撸,说下时间复杂度和空间复杂度。