Spring整合Mybatis注解方式
时间:2020-07-26
本文章向大家介绍Spring整合Mybatis注解方式,主要包括Spring整合Mybatis注解方式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Spring整合Mybatis(注解方式)
环境准备
jar包:
- Spring所需依赖:spring-context、spring-aspects、aspectjrt、aspectjweaver、spring-tx、spring-jdbc
- mybatis所需要:mybatis、mybatis-spring、mysql-connector-java、(druid、c3p0、HikariCP)
- 辅助性依赖:logback-classic、lombok、spring-test、junit、mapper(可选)、pagehelper(可选)
数据库:mysql
服务层代码
@Service
@Data
public class UserService implements IUserService {
private SqlSessionTemplate sqlSession;
private UserMapper mapper;
public UserService(SqlSessionTemplate sqlSession){
this.sqlSession=sqlSession;
mapper=sqlSession.getMapper(UserMapper.class);
}
@Override
public List<User> getAll() {
return mapper.getAll();
}
}
mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hello.mapper.UserMapper">
<select id="getAll" resultType="user">
select * from user
</select>
</mapper>
纯注解方式
纯注解方式需要一个配置类来代替xml配置文件的作用,需在配置文件上注
//注解扫描
@ComponentScan(basePackages = "com.hello")
//声明当前类为配置类
@Configuration
配置类中@Bean相当于xml的
通过@Bean将类放入spring容器,也可以通过注解扫描
配置类具体内容
@ComponentScan(basePackages = "com.hello")
@Configuration
public class Config {
//配置数据库连接池
@Bean
public DataSource dataSource(){
//使用HikariCP连接池
HikariDataSource hikariDataSource = new HikariDataSource();
//配置连接池的jdbcUrl属性
hikariDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm?servexrTimezone=GMT%2B8");
//账号
hikariDataSource.setUsername("root");
//密码
hikariDataSource.setPassword("root");
//驱动Driver
hikariDataSource.setDriverClassName("com.mysql.jdbc.Driver");
return hikariDataSource;
}
//配置sqlSessionFactory
@Bean
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
//在spring和Mybatis整合中采用mybatis提供的SQLSessionFactoryBean对象
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
//为sqlSessionFatoryBean设置连接池属性
sqlSessionFactoryBean.setDataSource(dataSource());
//获取PathMatchingResourcePatternResolver对象为扫描mapper文件做准备
PathMatchingResourcePatternResolver path = new PathMatchingResourcePatternResolver();
//设置mapper文件位置
sqlSessionFactoryBean.setMapperLocations(path.getResources("classpath*:com/hello/mapper/**/*.xml"));
//为javaBean对象设置别名
sqlSessionFactoryBean.setTypeAliasesPackage("com.hello.bean");
//返回SqlSessionFactory对象
return sqlSessionFactoryBean.getObject();
}
//配置sqlSession
@Bean
public SqlSessionTemplate sqlSessionTemplate() throws Exception {
//将SqlSessionFactory作为参数传入构造方法
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactoryBean());
return sqlSessionTemplate;
}
@Bean
public UserService userService() throws Exception {
UserService userService = new UserService(sqlSessionTemplate());
return userService;
}
}
测试类具体内容
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {Config.class})
public class AppTest
{
@Autowired
public UserService userService;
@Test
public void getALL(){
List<User> users = userService.getAll();
for (User user:users) {
System.out.println(user);
}
}
}
原文地址:https://www.cnblogs.com/ygfcoder/p/13381727.html
- 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 文档注释
- Vue框架av88732281笔记
- iOS-组件化(OC篇)
- Angular async pipe在html模板中的一个实际应用
- 3D引擎中LOD技术的理论基础
- one-hot encoding不是万能的,这些分类变量编码方法你值得拥有
- 【5分钟玩转Lighthouse】爬取JavaScript动态渲染页面
- 科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码
- mac快捷键
- 浅谈Kotlin的Checked Exception机制
- 自研网关:特殊URL功能的开发
- centos7多网卡配置
- vuecli3 build之后静态文件出现404
- Muti-Similarity Loss:考虑了batch中整体距离分布的对比损失函数
- AkShare-中国宏观-社会消费品零售总额
- AkShare-中国宏观-存款准备金率