spring整合mybais
需要提交 配置文件[mybatis-config.xml, spring.xml]以及 一个service和实现类,保证测试一个方法通过的截图。
记得配置事务,注解事务以及xml事务
mybatis:
package com.cdcas.config;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
public class MybatisConfig {
// 连接工厂对象这里的DataSource对象可以直接获取
// 这里可能会出现循环依赖
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
// 给实体类取别名,告诉mybatis实体类在哪里
sqlSessionFactoryBean.setTypeAliasesPackage("com.cdcas.pojo");
return sqlSessionFactoryBean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mp = new MapperScannerConfigurer();
// 找到mapper
mp.setBasePackage("com.cdcas.mapper");
return mp;
}
}
Spring:
package com.cdcas.config;
import org.springframework.context.annotation.*;
import org.springframework.transaction.annotation.EnableTransactionManagement;
//Configuration标识这个类为一个配置类
@Configuration
//扫描我们的包
@ComponentScan("com.cdcas")
//导入要加载的配置类
@Import({jdbcConfig.class,MybatisConfig.class})
//导入要加载的配置文件
@PropertySource("classpath:jdbc.properties")
//告诉Spring开启了Aop注解
@EnableAspectJAutoProxy
//告诉Spring用注解事务驱动
@EnableTransactionManagement
public class SpringConfig {
}
jdbc:
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource;
public class jdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.user}")
private String userName;
@Value("${jdbc.password}")
private String password;
//1.定义一个方法获得要管理的对象
// 一个druid的连接池
@Bean
public DataSource dataSource() {
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
// 事务管理器
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);
return transactionManager;
}
}
service接口:
import com.cdcas.pojo.Emp;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Transactional
public interface EmpService {
// 添加
// 开事务
void add(Emp emp);
// 修改
// 开事务
void update(Emp emp);
// 查看
List<Emp> select();
}
实现类:
package com.cdcas.service.impl;
import com.cdcas.mapper.EmpMapper;
import com.cdcas.pojo.Emp;
import com.cdcas.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service(value = “empServiceImpl”)
public class EmpServiceImpl implements EmpService {
@Autowired
private EmpMapper empMapper;
@Override
public void add(Emp emp) {
empMapper.add(emp);
}
@Override
public void update(Emp emp) {
empMapper.update(emp);
}
@Override
public List select() {
return empMapper.select();
}
}
测试通过:
