springboot學習-整合mybatis

        MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。

官網:http://mybatis.org/

在傳統的ssm框架中,使用mybatis需要大量的XML配置,而在springboot中,mybatis提供了一套自動化配置方案,可以做到mybatis開箱即用。

1.創建springboot項目

添加mybatis依賴、數據庫驅動以及數據庫連接池依賴,代碼如下:

        <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.2</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.9</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>

2.創建數據庫、表、實體類

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50625
Source Host           : localhost:3306
Source Database       : chapter05

Target Server Type    : MYSQL
Target Server Version : 50625
File Encoding         : 65001

Date: 2020-02-01 17:13:17
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(128) DEFAULT NULL,
  `password` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '123', '123');
INSERT INTO `user` VALUES ('2', '456', '456');
INSERT INTO `user` VALUES ('3', '789', '789');
INSERT INTO `user` VALUES ('4', 'liyu', 'test');

application.properties

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql:///chapter05
spring.datasource.username=root
spring.datasource.password=abcdABCD123

User.java

public class User {
    private Integer id;
    private String username;
    private String password;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

3.創建數據庫訪問層

創建UserMapper,代碼如下:

@Mapper
public interface UserMapper {
    int addUser(User user);
    //int deleteUserById(Integer id);
    //int updateUserById(User user);
    //User getUserById(Integer id);
    List<User> getAllUsers();
}

4.創建UserMapper.xml

和使用ssm框架相同,在與UserMapper相同的位置創建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="org.sang.mapper.UserMapper">
    <insert id="addUser" parameterType="org.sang.model.User">
        INSERT INTO user(username,password) VALUES (#{username},#{password})
    </insert>
    <select id="getAllUsers" resultType="org.sang.model.User">
        SELECT * FROM user
    </select>
</mapper>

Ps:在idea中,配置mybatis的mapper.xml文件模板(現學現用)

菜單中選擇

File-> Edit->File and Code Templates 

按提示配置一個就行

mapper.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="">
    
    
</mapper>

5.創建Service和Controller

創建UserService和UserController,代碼如下:

@Service
public class UserService {
    @Autowired
    UserMapper userMapper;
    public int addUser(User user){
        return userMapper.addUser(user);
    }
    public List<User> getALLUsers(){
        return userMapper.getAllUsers();
    }
}
@RestController
public class UserController {
    @Autowired
    UserService userService;
    @GetMapping("/userOps")
    public void userOps(){
        //addUser
        User user = new User();
        user.setUsername("liyu");
        user.setPassword("test");
        int i = userService.addUser(user);
        System.out.println("addUser>>>" + i);
        //查詢全部用戶
        List<User> userList = new ArrayList<>();
        userList = userService.getALLUsers();
        System.out.println("getALLUser"+userList);
    }
}

6.配置pom.xml文件

在Maven工程中,XML配置文件建議寫在resource目錄下,但是上文的Mapper文件寫在包下,Maven在運行時會忽略包下的XML文件,因此需要在pom.xml文件中重新指明資源文件位置,配置如下:

	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

接下來在瀏覽器中輸入: http://localhost:8080/userOps

控制檯:

數據庫:

確實很靈活啊

嘻嘻

再見

祝您平安

武漢加油!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章