时间:2021-05-20
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.配置数据源
在src/main/resource中,application.properties配置文件中,这里面添加了一些数据库连接的信息
spring.datasource.url=jdbc:mysql://localhost:3306/testspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=com.mysql.jdbc.Driver3.代码注入数据源
package com.example;import javax.sql.DataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletComponentScan;import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.core.env.Environment;import org.springframework.web.servlet.DispatcherServlet;import com.alibaba.druid.pool.DruidDataSource;import com.example.Listener.IndexListener;import com.example.filter.IndexFilter;import com.example.servlet.MyServlet;@SpringBootApplicationpublic class SpringBootSimpleApplication { @Autowired private Environment env; @Bean public DataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); 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("SELECT 1"); dataSource.setTestOnBorrow(false); dataSource.setTestWhileIdle(true); dataSource.setPoolPreparedStatements(false); return dataSource; } public static void main(String[] args) { SpringApplication.run(SpringBootSimpleApplication.class, args); }}4.增加MyBatis的配置
MyBatisConfig.java类:
package com.example.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;@Configuration//加上这个注解,使得支持事务@EnableTransactionManagementpublic 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); }}MyBatisMapperScannerConfig.java类:
package com.example.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的接口 */@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.example.mybatis.mapper"); return mapperScannerConfigurer; }}5.mybatis接口配置,这里使用student表作为示例
使用@Mapper注解来标识一个接口为MyBatis的接口,MyBatis会自动寻找这个接口
package com.example.mybatis.mapper;import java.util.List;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;@Mapperpublic interface StudentMapper { @Select("select * from student;") public List<Map<String,Object>> find(); @Insert("insert into student(id,name,age,score_sum,score_avg) "+ "values(#{id},'Jim',33,200,100)") public int insert(@Param("id")int id);}6.service业务层调用接口
package com.example.mybatis;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.example.mybatis.mapper.StudentMapper;@Servicepublic class StuMybatisService { @Autowired private StudentMapper studentMapper; public List<Map<String,Object>> find(){ return studentMapper.find(); } public int insert(int id){ return studentMapper.insert(id); }}7.controller控制层调用service业务层
package com.example.mybatis;import java.util.List;import java.util.Map;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/stumybatis")public class StuMybatisController { private static Logger logger = LogManager.getLogger(StuMybatisController.class); @Autowired private StuMybatisService stuMybatisService; @RequestMapping("/list") public List<Map<String,Object>> getStus(){ logger.info("从数据库读取Student集合"); return stuMybatisService.find(); } @RequestMapping("/add") public void addStus(){ logger.info("student表中插入数据"); stuMybatisService.insert(2); }}最终启动程序,进行访问:
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}]以上所述是小编给大家介绍的Spring Boot整合MyBatis的操作过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前期工作1.导入mybatis整合依赖org.mybatis.spring.bootmybatis-spring-boot-starter2.1.42.连接数据
一、使用mybatis-spring-boot-starter1、添加依赖org.mybatis.spring.bootmybatis-spring-boot-
sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置。接下来开始spring-boot与mybatis的整合。1、创建一个mav
导入mybatis依赖org.mybatis.spring.bootmybatis-spring-boot-starter2.0.1yml实现mybatis依赖
spring和mybatis整合整合思路需要spring通过单例方式管理SqlSessionFactory。spring和mybatis整合生成代理对象,使用S