1脖祈、Junit測試錯誤截圖:
2谓着、Junit測試書寫代碼:無問題
public class DBInfoTest extends BaseTest {
@Resource
private DBInfoService dbInfoService;
@Test
public void addDBInfo() {
DBInfo dbInfo = new DBInfo();
dbInfo.setDbName("mysql");
dbInfo.setDbUser("root");
dbInfo.setDbPwd("iesapp");
System.err.println(dbInfoService.addDBInfo(dbInfo));
}
}
3毙死、Service
public interface DBInfoService {
int addDBInfo(DBInfo dbInfo);
}
4嗤朴、Service實現(xiàn)
@Transactional(value = "baseDataSourceTransactionManager",
propagation = Propagation.REQUIRED,
isolation = Isolation.DEFAULT,
timeout=36000,
rollbackFor=Exception.class)
@Service("dbInfoService")
public class DBInfoServiceImpl implements DBInfoService {
@Autowired
private DBInfoMapper dbInfoDao;
@Override
public int addDBInfo(DBInfo dbInfo) {
dbInfoDao.addDBInfo(dbInfo);
return 1;
}
}
5贤姆、Dao 也就是MyBatis Mapper 映射
@Mapper
public interface DBInfoMapper {
void addDBInfo(DBInfo dbInfo);
}
6渔欢、Application.yml? Spirngboot屬性配置
spring:
? datasource: #數(shù)據(jù)源
? ? base:
? ? ? type: com.alibaba.druid.pool.DruidDataSource
? ? ? driverClassName: com.mysql.jdbc.Driver
? ? ? url: jdbc:mysql://127.0.01:3306/xx?useUnicode=true&characterEncoding=UTF-8
? ? ? username: root
? ? ? password: 123
? ? ? initialSize: 50
? ? ? maxActive: 200
? ? ? maxIdle: 10
? ? ? maxWait: 80
? ? ? validationQuery: SELECT 1
? ? ? timeBetweenEvictionRunsMillis: 60000
? ? ? minEvictableIdleTimeMillis: 7200000
? ? ? removeAbandoned: true
? ? ? removeAbandonedTimeout: 1800
? ? ? defaultAutoCommit: true
? ? ? logAbandoned: true
mybatis:
? mapper-locations: classpath:mapper/**/*Mapper.xml
7煎源、Mybatis Mapper映射配置文件
insert into dbinfo ( `dbName`, `dbUser`, `dbPwd`, `dbClass`, `dbType` ) values ( #{dbName}, #{dbUser}, #{dbPwd}, #{dbClass}, #{dbType} )
8色迂、數(shù)據(jù)庫連接配置類
@Configuration
@MapperScan(basePackages="cn.aa.bb.mapper", sqlSessionFactoryRef="baseSqlSessionFactory")
public class DataXDataSource {
@Bean("baseDataSource")
@ConfigurationProperties(prefix="spring.datasource.base")
@Primary
public DataSource baseDataSource() {
return DataSourceBuilder.create().build();
}
@Bean("baseSqlSessionFactory")
@Primary
public SqlSessionFactory baseSqlSessionFactory(@Qualifier("baseDataSource") DataSource baseDataSource) {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(baseDataSource);
try {
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*Mapper.xml"));
} catch (IOException e1) {
e1.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = null;
try {
sqlSessionFactory = bean.getObject();
} catch (Exception e) {
e.printStackTrace();
}
return sqlSessionFactory;
}
@Bean("baseDataSourceTransactionManager")
@Primary
public DataSourceTransactionManager baseDataSourceTransactionManager(@Qualifier("baseDataSource") DataSource baseDataSource) {
return new DataSourceTransactionManager(baseDataSource);
}
@Bean("baseSqlSessionTemplate")
@Primary
public SqlSessionTemplate baseSqlSessionTemplate(@Qualifier("baseSqlSessionFactory") SqlSessionFactory baseSqlSessionFactory) {
return new SqlSessionTemplate(baseSqlSessionFactory);
}
}
9、寫到這里似乎沒有人看到有問題
在網(wǎng)上也查找了很多的資料手销,都說命名空間不對歇僧、或者配置的參數(shù)類型不對
但是都不是。
10锋拖、上面是測試成功的馏慨,相信也都看到了,有一句話是
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*Mapper.xml"));
姑隅,綠色是我漏掉的写隶,加上這句,然后這句話的路徑不能有錯讲仰,這個坑就在這里記錄吧慕趴!
微信公眾號:ucissoftcom
博客:http://andot.org
Github:https://github.com/andotorg