这里介绍两种整合SpringBoot和Mybatis的模式,分别是“全注解版” 和 “注解xml合并版”。
开发环境
Mybatis plus、创建项目
项目结构
maven java?
Maven依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>demo</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
SpringBoot配置文件
Springboot框架,这里使用yml格式的配置文件,将application.properties改名为application.yml。
#配置数据源
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/dianping?useUnicode=true&characterEncoding=utf8username: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver
SpringBoot会自动加载application.yml相关配置,数据源就会自动注入到sqlSessionFactory中,sqlSessionFactory会自动注入到Mapper中。
实体类
public class Happiness {private Long id;private String city;private Integer num;//getters、setters、toString
}
Mybatis框架。映射类
@Mapper
public interface HappinessDao {@Select("SELECT * FROM happiness WHERE city = #{city}")Happiness findHappinessByCity(@Param("city") String city);@Insert("INSERT INTO happiness(city, num) VALUES(#{city}, #{num})")int insertHappiness(@Param("city") String city, @Param("num") Integer num);
}
Service类
事务管理只需要在方法上加个注解:@Transactional
@Service
public class HappinessService {@Autowiredprivate HappinessDao happinessDao;public Happiness selectService(String city){return happinessDao.findHappinessByCity(city);}@Transactionalpublic void insertService(){happinessDao.insertHappiness("西安", 9421);int a = 1 / 0; //模拟故障happinessDao.insertHappiness("长安", 1294);}
}
MyBatis。Controller类
@RestController
@RequestMapping("/demo")
public class HappinessController {@Autowiredprivate HappinessService happinessService;@RequestMapping("/query")public Happiness testQuery(){return happinessService.selectService("北京");}@RequestMapping("/insert")public Happiness testInsert(){happinessService.insertService();return happinessService.selectService("西安");}
}
测试
http://localhost:8080/demo/query
http://localhost:8080/demo/insert
项目结构
SpringBoot配置文件
#配置数据源
spring:datasource:url: jdbc:mysql://127.0.0.1:3306/dianpingusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driver#指定mybatis映射文件的地址
mybatis:mapper-locations: classpath:mapper/*.xml
映射类
@Mapper
public interface HappinessDao {Happiness findHappinessByCity(String city);int insertHappiness(HashMap<String, Object> map);
}
映射文件
<mapper namespace="com.example.demo.dao.HappinessDao"><select id="findHappinessByCity" parameterType="String" resultType="com.example.demo.domain.Happiness">SELECT * FROM happiness WHERE city = #{city}</select><insert id="insertHappiness" parameterType="HashMap" useGeneratedKeys="true" keyProperty="id">INSERT INTO happiness(city, num) VALUES(#{city}, #{num})</insert>
</mapper>
Service类
事务管理只需要在方法上加个注解:@Transactional
@Service
public class HappinessService {@Autowiredprivate HappinessDao happinessDao;public Happiness selectService(String city){return happinessDao.findHappinessByCity(city);}@Transactionalpublic void insertService(){HashMap<String, Object> map = new HashMap<String, Object>();map.put("city", "西安");map.put("num", 9421);happinessDao.insertHappiness(map);int a = 1 / 0; //模拟故障happinessDao.insertHappiness(map);}
}
Controller类
@RestController
@RequestMapping("/demo")
public class HappinessController {@Autowiredprivate HappinessService happinessService;@RequestMapping("/query")public Happiness testQuery(){return happinessService.selectService("北京");}@RequestMapping("/insert")public Happiness testInsert(){happinessService.insertService();return happinessService.selectService("西安");}
}
测试
http://localhost:8080/demo/query
http://localhost:8080/demo/insert
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态