1.整合Mybatis
-
引入相关的jar包(Mybatis Spring Boot Starter)
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.10.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.ddf</groupId> <artifactId>springboot-data03</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-data03</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--mybatis自己的--> <!--org.mybatis.spring.boot:整合jar包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <!--Druid--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--官方的--> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--JDBC--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--mysql--> <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> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
配置application.properties文件
spring.datasource.username=root spring.datasource.password=123 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&userUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-
测试是否连接成功(出现:com.mysql.cj.jdbc.ConnectionImpl@4f9a6c2d表示连接成功)
package com.ddf.springbootdata03; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; @SpringBootTest class SpringbootData03ApplicationTests { @Autowired DataSource dataSource; @Test void contextLoads() throws SQLException { //查看一下默认的数据源:com.zaxxer.hikari.HikariDataSource System.out.println(dataSource.getClass()); //获取数据连接 Connection connection = dataSource.getConnection(); System.out.println(connection); //关闭连接 connection.close(); } }
-
新建实体类和mapper类:
package com.ddf.pojo; public class User { private Integer id; private String name; private String pwd; public User(){} public User(Integer id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
package com.ddf.mapper; import com.ddf.pojo.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import java.util.List; //这个注解表示了这是一个mybatis的mapper类:Dao //加入@Repository就被Spring整合了,表示了这是一个Mybatis的Mapper类 @Mapper @Repository public interface UserMapper { List<User> queryUserList(); User queryUserBuId(Integer id); int addUser(User user); int updateUser(User user); int deleteUser(Integer id); }
-
在resource目录下新建mybatis的mapper目录:(之前的话我们是要在mapper接口下建映射文件,但现在不需要了)
-
创建UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ddf.mapper.UserMapper"> <!--加入<cache/>表示开始缓存--> <select id="queryUserList" resultType="User"> select * from user </select> <select id="queryUserBuId" resultType="User"> select * from user where id = #{id} </select> </mapper>
-
去application.properties文件中整合mybatis,并且被Spring识别
spring.datasource.username=root spring.datasource.password=123 spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&userUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #整合mybatis #给实体类取别名 mybatis.type-aliases-package=com.ddf.pojo #识别配置的mapper文件 mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
-
-
创建Controller层
1.创建UserController
package com.ddf.controller; import com.ddf.mapper.UserMapper; import com.ddf.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/queryUserList") public List<User> queryUserList(){ List<User> list = userMapper.queryUserList(); for (User user: list){ System.out.println(user); } return list; } }
-
测试运行查询结果:http://localhost:8080/queryUserList