spring boot和mybatis的整合
来源:互联网 发布:华为应用市场软件 编辑:程序博客网 时间:2024/05/17 08:54
创建一个名为springboot-mybatis的maven项目,记住:一定要maven哦,不懂maven的可以自己恶补一下maven知识,这里就不介绍maven了。
1.加入mybatis-spring-boot-stater的Maven依赖。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
2.配置数据源,这里使用的dbcp的数据源,具体大家可以看自己的情况来使用
在src/main/resource中,添加一个prop.properties配置文件,这里面添加了一些数据库连接的信息
#jdbc
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.137.2:3306/weichat?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
jdbc.maxActive=2335
jdbc.maxIdel=120
jdbc.maxWait=10
3.然后加上下面的代码注入数据源
@Configuration
//这个注解导入刚才增加的jdbc配置文件
@PropertySource("classpath:prop.properties")
public class DataSourceConfiguration {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Value("${jdbc.maxActive}")
private int maxActive;
@Value("${jdbc.maxIdel}")
private int maxIdel;
@Value("${jdbc.maxWait}")
private long maxWait;
@Bean
public BasicDataSource dataSource(){
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setMaxActive(maxActive);
dataSource.setMaxIdle(maxIdel);
dataSource.setMaxWait(maxWait);
dataSource.setValidationQuery("SELECT 1");
dataSource.setTestOnBorrow(true);
return dataSource;
}
}
4.增加MyBatis的配置
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;
/**
* @author zxj
*
*/
@Configuration
//加上这个注解,使得支持事务
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
@Autowired
private DataSource dataSource;
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean() {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
try {
return bean.getObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
5.然后需要配置MyBatis配置文件的路径,这个配置需要与上面的配置分开来写,因为它们有着一个先后顺序
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 扫描mybatis的接口
*
* @author zxj
*
*/
@Configuration
// 因为这个对象的扫描,需要在MyBatisConfig的后面注入,所以加上下面的注解
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
//获取之前注入的beanName为sqlSessionFactory的对象
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
//指定xml配置文件的路径
mapperScannerConfigurer.setBasePackage("com.framework.msg.mapper");
return mapperScannerConfigurer;
}
}
6.然后这就是配置完了,在这里,使用@Mapper注解来标识一个接口为MyBatis的接口,MyBatis会自动寻找这个接口,如下
import java.util.Map;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface TestDao {
@Select("select * from wx_userinfo;")
public Map<String,Object> find();
@Insert("insert into wx_userinfo(openid,status,nickname,sex,city,province,country,headimgurl,subscribe_time) "+
"values(#{id},1,'nick',1,'city','provi','contr','img',now())")
public int insert(@Param("id")int id);
}
这样就可以使用了,当然,在这之前,你得开启@ComponentScan注解,或者直接使用@SpringBootApplication(推荐)
- spring boot和mybatis的整合
- Spring boot和MyBatis的整合
- spring boot和mybatis整合
- Spring Boot 整合 Mybatis 和 MySQL
- Spring Boot整合MyBatis和Druid
- Spring Boot整合MyBatis
- spring boot 整合mybatis
- Spring Boot整合MyBatis
- Spring-boot整合Mybatis
- Spring Boot整合MyBatis
- spring boot 整合mybatis
- Spring Boot整合Mybatis
- spring boot mybatis整合
- spring boot整合mybatis
- Spring Boot 整合 MyBatis
- spring-boot整合mybatis
- Spring Boot整合Mybatis
- Spring Boot 整合 MyBatis
- BlueROV-10: Mission Command
- 2017年十大移动应用开发的测试工具
- 使用 maven 搭建 Spring Demo
- Ztree创建带有复选框的树
- [bzoj1266][AHOI2006] 上学路线 最小割+最短路
- spring boot和mybatis的整合
- Qt 工具下载
- sdutoj 3896 HEX 思维+组合数
- 清华大学计算机科学与技术的在读研究生、博士生和准研究生
- 蓝桥杯之二阶魔方旋转
- [DP]方格取数
- easyui获取对应一行的id方法可以用于删除和编辑
- Unity 3D中的内存管理
- 动态规划算法——C++实现经典案例——初级