Spring Boot整合MyBatis操作过程
1.加入mybatis-spring-boot-stater的Maven依赖
org.mybatis.spring.boot mybatis-spring-boot-starter 1.1.1
2.配置数据源
在src/main/resource中,application.properties配置文件中,这里面添加了一些数据库连接的信息
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3.代码注入数据源
packagecom.example;
importjavax.sql.DataSource;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
importorg.springframework.boot.web.servlet.FilterRegistrationBean;
importorg.springframework.boot.web.servlet.ServletComponentScan;
importorg.springframework.boot.web.servlet.ServletListenerRegistrationBean;
importorg.springframework.boot.web.servlet.ServletRegistrationBean;
importorg.springframework.context.annotation.Bean;
importorg.springframework.core.env.Environment;
importorg.springframework.web.servlet.DispatcherServlet;
importcom.alibaba.druid.pool.DruidDataSource;
importcom.example.Listener.IndexListener;
importcom.example.filter.IndexFilter;
importcom.example.servlet.MyServlet;
@SpringBootApplication
publicclassSpringBootSimpleApplication{
@Autowired
privateEnvironmentenv;
@Bean
publicDataSourcedataSource(){
DruidDataSourcedataSource=newDruidDataSource();
dataSource.setUrl(env.getProperty("spring.datasource.url"));
dataSource.setUsername(env.getProperty("spring.datasource.username"));//用户名
dataSource.setPassword(env.getProperty("spring.datasource.password"));//密码
dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
dataSource.setInitialSize(2);
dataSource.setMaxActive(20);
dataSource.setMinIdle(0);
dataSource.setMaxWait(60000);
dataSource.setValidationQuery("SELECT1");
dataSource.setTestOnBorrow(false);
dataSource.setTestWhileIdle(true);
dataSource.setPoolPreparedStatements(false);
returndataSource;
}
publicstaticvoidmain(String[]args){
SpringApplication.run(SpringBootSimpleApplication.class,args);
}
}
4.增加MyBatis的配置
MyBatisConfig.java类:
packagecom.example.mybatis;
importjavax.sql.DataSource;
importorg.apache.ibatis.session.SqlSessionFactory;
importorg.mybatis.spring.SqlSessionFactoryBean;
importorg.mybatis.spring.SqlSessionTemplate;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.jdbc.datasource.DataSourceTransactionManager;
importorg.springframework.transaction.PlatformTransactionManager;
importorg.springframework.transaction.annotation.EnableTransactionManagement;
importorg.springframework.transaction.annotation.TransactionManagementConfigurer;
@Configuration
//加上这个注解,使得支持事务
@EnableTransactionManagement
publicclassMyBatisConfigimplementsTransactionManagementConfigurer{
@Autowired
privateDataSourcedataSource;
@Override
publicPlatformTransactionManagerannotationDrivenTransactionManager(){
returnnewDataSourceTransactionManager(dataSource);
}
@Bean(name="sqlSessionFactory")
publicSqlSessionFactorysqlSessionFactoryBean(){
SqlSessionFactoryBeanbean=newSqlSessionFactoryBean();
bean.setDataSource(dataSource);
try{
returnbean.getObject();
}catch(Exceptione){
e.printStackTrace();
thrownewRuntimeException(e);
}
}
@Bean
publicSqlSessionTemplatesqlSessionTemplate(SqlSessionFactorysqlSessionFactory){
returnnewSqlSessionTemplate(sqlSessionFactory);
}
}
MyBatisMapperScannerConfig.java类:
packagecom.example.mybatis;
importorg.mybatis.spring.mapper.MapperScannerConfigurer;
importorg.springframework.boot.autoconfigure.AutoConfigureAfter;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
/**
*扫描mybatis的接口
*/
@Configuration
//因为这个对象的扫描,需要在MyBatisConfig的后面注入,所以加上下面的注解
@AutoConfigureAfter(MyBatisConfig.class)
publicclassMyBatisMapperScannerConfig{
@Bean
publicMapperScannerConfigurermapperScannerConfigurer(){
MapperScannerConfigurermapperScannerConfigurer=newMapperScannerConfigurer();
//获取之前注入的beanName为sqlSessionFactory的对象
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
//指定xml配置文件的路径
mapperScannerConfigurer.setBasePackage("com.example.mybatis.mapper");
returnmapperScannerConfigurer;
}
}
5.mybatis接口配置,这里使用student表作为示例
使用@Mapper注解来标识一个接口为MyBatis的接口,MyBatis会自动寻找这个接口
packagecom.example.mybatis.mapper;
importjava.util.List;
importjava.util.Map;
importorg.apache.ibatis.annotations.Insert;
importorg.apache.ibatis.annotations.Mapper;
importorg.apache.ibatis.annotations.Param;
importorg.apache.ibatis.annotations.Select;
@Mapper
publicinterfaceStudentMapper{
@Select("select*fromstudent;")
publicList
6.service业务层调用接口
packagecom.example.mybatis;
importjava.util.List;
importjava.util.Map;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importcom.example.mybatis.mapper.StudentMapper;
@Service
publicclassStuMybatisService{
@Autowired
privateStudentMapperstudentMapper;
publicList
7.controller控制层调用service业务层
packagecom.example.mybatis;
importjava.util.List;
importjava.util.Map;
importorg.apache.logging.log4j.LogManager;
importorg.apache.logging.log4j.Logger;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/stumybatis")
publicclassStuMybatisController{
privatestaticLoggerlogger=LogManager.getLogger(StuMybatisController.class);
@Autowired
privateStuMybatisServicestuMybatisService;
@RequestMapping("/list")
publicList
最终启动程序,进行访问:
http://localhost:8080/stumybatis/list
返回结果:
[{"score_sum":180.0,"name":"张三","id":1,"age":25,"score_avg":90.0},{"score_sum":200.0,"name":"Jim","id":2,"age":33,"score_avg":100.0}]
以上所述是小编给大家介绍的SpringBoot整合MyBatis的操作过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。