• MyBatis的增删改查SpringBoot方式


    使用IDEA建立一个SpringBoot项目。

    1、POM文件:

    <?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.5.6</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>MyBatisBoot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>MyBatisBoot</name>
        <description>Demo project for Spring Boot</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.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </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>
                    <configuration>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>

    2、建立实体类SysUser:

     1 package com.yas.entity;
     2 
     3 import lombok.AllArgsConstructor;
     4 import lombok.Data;
     5 import lombok.NoArgsConstructor;
     6 import lombok.ToString;
     7 
     8 import java.util.Date;
     9 
    10 @Data
    11 @NoArgsConstructor
    12 @AllArgsConstructor
    13 @ToString
    14 public class SysUser {
    15     private Integer id;
    16     private String account;
    17     private String username;
    18     private String pwd;
    19     private Date gmt_create;
    20     private Date gmt_modified;
    21 }

    3、增删改查的UserDAO,(使用注解方式):

     1 package com.yas.dao;
     2 
     3 import com.yas.entity.SysUser;
     4 import org.apache.ibatis.annotations.*;
     5 
     6 import java.util.List;
     7 import java.util.Map;
     8 
     9 @Mapper
    10 public interface UserDAO {
    11     @Select("SELECT * FROM sys_user WHERE id = #{id}")
    12     SysUser queryUserById(Integer id);
    13 
    14     //使用@Param注解,标注参数
    15     @Select("SELECT * FROM sys_user WHERE id = #{id} and username = #{username}")
    16     SysUser queryUserByIdAndUsername(@Param("id") Integer id,@Param("username") String username);
    17 
    18     //使用Map封装参数
    19     @Select("SELECT * FROM sys_user WHERE id = #{id} and username = #{username}")
    20     SysUser queryUserByMap(Map map);
    21 
    22     @Select("SELECT * FROM sys_user WHERE id = #{id} and username = #{username}")
    23     SysUser queryUserByEntity(SysUser user);
    24 
    25     @Select("SELECT * FROM sys_user WHERE username like concat('%',#{username},'%')")
    26     List<SysUser> queryUserByUsername(@Param("username") String username);
    27 
    28     @Delete("DELETE FROM sys_user WHERE id = #{id}")
    29     Integer deleteUser(@Param("id") Integer id);
    30 
    31     @Update("UPDATE sys_user SET username = #{username} WHERE id = #{id}")
    32     Integer updateUser(SysUser user);
    33 
    34     @Insert("INSERT INTO sys_user VALUES(#{id},#{account},#{username},#{pwd},#{gmt_create},#{gmt_modified})")
    35     @Options(useGeneratedKeys = true,keyProperty = "id")
    36     Integer insertUser(SysUser user);
    37 }

    4、在resources目录下的,application.properties文件中添加配置信息:

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/lending_management?characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=root
    
    #开启mybatis的数据库日志
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl 

    5、测试类:

     1 package com.yas;
     2 
     3 import com.yas.dao.UserDAO;
     4 import com.yas.entity.SysUser;
     5 import org.junit.jupiter.api.Test;
     6 import org.springframework.beans.factory.annotation.Autowired;
     7 import org.springframework.boot.test.context.SpringBootTest;
     8 
     9 import java.util.*;
    10 
    11 @SpringBootTest
    12 class MyBatisBootApplicationTests {
    13     @Autowired
    14     UserDAO userDAO;
    15 
    16     @Test
    17     void queryUserById() {
    18 //        SysUser user1 = userDAO.queryUserById(1);
    19 //        System.out.println(user1);
    20 
    21 //        SysUser user2 = userDAO.queryUserByIdAndUsername(2,"刘翔");
    22 //        System.out.println(user2);
    23 
    24 //        Map<String,String> map = new HashMap<>();
    25 //        map.put("id","1");
    26 //        map.put("username","管理员");
    27 //        SysUser user3 = userDAO.queryUserByMap(map);
    28 //        System.out.println(user3);
    29 
    30 //        SysUser user = new SysUser();
    31 //        user.setId(1);
    32 //        user.setUsername("管理员");
    33 //        SysUser user4 = userDAO.queryUserByEntity(user);
    34 //        System.out.println(user4);
    35 
    36 //        List<SysUser> users = userDAO.queryUserByUsername("C");
    37 //        for (SysUser user : users) {
    38 //            System.out.println(user);
    39 //        }
    40 
    41 //        userDAO.deleteUser(83);
    42 
    43         SysUser user = new SysUser(5,"manager","李白","000000",new Date(),new Date());
    44         userDAO.insertUser(user);
    45     }
    46 }

    补充,如果使用注解与xml配置文件混合开发的方式,可以在配置文件中添加如下地址:

    mybatis:
      config-location: classpath:mybatis/mybatis-config.xml
      mapper-locations: classpath:mybatis/mapper/*.xml

    在resources目录下建立一个mybatis文件夹,然后放置核心配置文件mybatis-config.xml,就可以读取xml文件中的配置了。

    在resources/mapper目录下建立以.xml为结尾的映射文件,可以使用xml配置的方式,编写增删改查的语句。

    但注意,对于同一个接口方法,使用注解或使用xml只能同时使用其中一种,否则就会报错。

  • 相关阅读:
    java程序员究竟应该掌握点什么
    Java程序员集合框架面试题
    数组名和数组名取地址的区别
    二维、三维数组转一维数组
    函数指针 行指针 指针数组
    转:如何成为一个优秀的程序员
    转:最小堆的数组实现
    for_each使用方法详解[转]
    c++虚函数的作用是什么?
    转:C语言 可变参数
  • 原文地址:https://www.cnblogs.com/asenyang/p/15471518.html
Copyright © 2020-2023  润新知