1、前言java
最近在跟着視頻作碼匠社區項目,視頻中鏈接H2數據庫,可是我這個社區版的IDEA沒法集成H2,暫時還未找到解決辦法。mysql
所以想到了以前練習的鏈接MySQL,爲了能繼續下去,只能先這樣了,之後找到解決辦法再改爲H2吧!web
2、項目架構spring
pom.xmlsql
<?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.4.RELEASE</version> <relativePath/> </parent> <groupId>life.majiang.community</groupId> <artifactId>community</artifactId> <version>0.0.1-SNAPSHOT</version> <name>community</name> <description>community</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.3.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </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>
3、springboot集成MySQL數據庫
若是不作更改,test connection不會成功。apache
4、註解版實現增刪改查springboot
我習慣從controller開寫mybatis
package life.majiang.community.controller; import life.majiang.community.bean.User; import life.majiang.community.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class UserController { @Autowired UserMapper userMapper; @Autowired User user; @GetMapping("/getUserById") public String getUserById(@RequestParam(name="id") String id){ System.out.println(userMapper.getUserById(id).name); return "index"; } @GetMapping("/getUsers") public String getUsers(){ return "index"; } @GetMapping("/insertUser") public String insertUser(@RequestParam(name="id") String id,@RequestParam(name="name") String name,@RequestParam(name="password") String password){ user.setId(id); user.setName(name); user.setPassword(password); userMapper.insertUser(user); return "index"; } }
UserMapper架構
package life.majiang.community.mapper; import life.majiang.community.bean.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface UserMapper { @Select("select * from user where id=#{id}") public User getUserById(String id); @Insert("insert into user(ID,name,password) values (#{id},#{name},#{password})") public void insertUser(User user); @Select("select * from user") public User getUsers(); }
測試
5、配置實現增刪改查
package life.majiang.community.controller; import life.majiang.community.bean.User; import life.majiang.community.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class UserController { @Autowired UserMapper userMapper; @Autowired User user; @GetMapping("/getUserById2") public String getUserById2(@RequestParam(name="id") String id){ System.out.println(userMapper.getUserById2(id).name); return "index"; } @GetMapping("/insertUser2") public String insertUser2(@RequestParam(name="id") String id,@RequestParam(name="name") String name,@RequestParam(name="password") String password){ user.setId(id); user.setName(name); user.setPassword(password); userMapper.insertUser2(user); return "index"; } @GetMapping("/deleteUserById") public String deleteUserById(@RequestParam(name="id") String id){ userMapper.deleteUserById(id); return "index"; } }
UserMapper
package life.majiang.community.mapper; import life.majiang.community.bean.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface UserMapper { public User getUserById2(String id); public void insertUser2(User user); public void deleteUserById(String id); }
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="life.majiang.community.mapper.UserMapper"> <select id="getUserById2" resultType="life.majiang.community.bean.User"> SELECT * FROM user WHERE id=#{id}; </select> <insert id="insertUser2"> insert into user(ID,name,password) values (#{id},#{name},#{password}); </insert> <delete id="deleteUserById"> delete from user where id=#{id}; </delete> </mapper>
application.yml
測試
6、總結
springboot經過mybatis實現增刪改查仍是挺簡單的,但也有不少問題須要注意,好比@MapperScan,application.yml的配置,駝峯的設置等等。