整合MyBatis
官方文檔:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
Maven倉庫地址:https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter/2.1.3
整合測試
-
導入 MyBatis 所需要的依賴(方式一)
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version> </dependency>
方式二:
-
配置數據庫連接信息(不變)
spring:datasource:username: rootpassword: 123456#?serverTimezone=UTC解決時區的報錯url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource#Spring Boot 默認是不注入這些屬性值的,需要自己綁定#druid 數據源專有配置initialSize: 5minIdle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: true#配置監控統計攔截的filters,stat:監控統計、log4j:日志記錄、wall:防御sql注入#如果允許時報錯 java.lang.ClassNotFoundException: org.apache.log4j.Priority#則導入 log4j 依賴即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4jfilters: stat,wall,log4jmaxPoolPreparedStatementPerConnectionSize: 20useGlobalDataSourceStat: trueconnectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500#properties方式spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/db_warehouse?serverTimezone=UTCspring.datasource.username=rootspring.datasource.password=123456#mybatis#指定sql映射文件位置mybatis.mapper-locations=classpath:mapper/*.xml#開啟駝峰命名規則mybatis.configuration.map-underscore-to-camel-case=true#開啟日志功能mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl#給實體起別名mybatis.type-aliases-package=com.liming.pojo
-
創建實體類,導入 Lombok!
User.java
package nuc.ss.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;@Data @AllArgsConstructor @NoArgsConstructor public class User {private int id;private String name;private String pwd; }
-
創建mapper目錄以及對應的 Mapper 接口
UserMapper.java
package nuc.ss.mapper;import nuc.ss.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository;import java.util.List;//或在啟動類上添加@MapperScan(basePackages = "com.liming.mapper") @Mapper// 這個注解表示了這是一個 mybatis 的 mapper 類 public interface UserMapper {List<User> queryUserList();User queryUserById(int id);int addUser(User user);int updateUser(User user);int deleteUser(int id); }
-
對應的Mapper映射文件
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace=綁定一個對應的Dao/Mapper接口--> <mapper namespace="nuc.ss.mapper.UserMapper"><select id="queryUserList" resultType="User">select * from mybatis.user;</select><select id="queryUserById" resultType="User">select * from mybatis.user where id = #{id};</select><insert id="addUser" parameterType="User">insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd});</insert><update id="updateUser" parameterType="User">update mybatis.user set name=#{name},pwd = #{pwd} where id = #{id};</update><delete id="deleteUser" parameterType="int">delete from mybatis.user where id = #{id}</delete> </mapper>
-
編寫部門的 UserController 進行測試!
@RestController public class UserController {@Autowiredprivate UserMapper userMapper;@GetMapping("/queryUserList")public List<User> queryUserList() {List<User> userList = userMapper.queryUserList();for (User user : userList) {System.out.println(user);}return userList;}//添加一個用戶@GetMapping("/addUser")public String addUser() {userMapper.addUser(new User(7,"阿毛","123456"));return "ok";}//修改一個用戶@GetMapping("/updateUser")public String updateUser() {userMapper.updateUser(new User(7,"阿毛","123456"));return "ok";}@GetMapping("/deleteUser")public String deleteUser() {userMapper.deleteUser(7);return "ok";} }
啟動項目訪問進行測試!