zoukankan      html  css  js  c++  java
  • spring boot集成mybatis(注解模式)

    一.所需材料

    spring boot、mybatis

    pom文件配置如下:

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.4.0</version>
            <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.38</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.0.1</version>
            </dependency>
        </dependencies>

    二.项目目录结构

    三.项目代码

    UserEntity.java

    public class UserEntity implements Serializable {
    
        private Long id;
    
        private String name;
    
        private Integer age;
    
        private Byte status;
    
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date createTime;
    
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date updateTime;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Byte getStatus() {
            return status;
        }
    
        public void setStatus(Byte status) {
            this.status = status;
        }
    
        public Date getCreateTime() {
            return createTime;
        }
    
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
    
        public Date getUpdateTime() {
            return updateTime;
        }
    
        public void setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
        }
    
    }

    UserMapper.java

    @Mapper
    public interface UserMapper {
    
        @Select("SELECT id, user_name AS name, age, status, create_time AS createTime, update_time AS updateTime FROM user WHERE user_name = #{name}")
        UserEntity findByName(@Param("name") String name);
    
        @Insert("INSERT INTO user VALUES (NULL, #{name}, #{age}, 1, NOW(), NOW())")
        int insert(@Param("name") String name, @Param("age") Integer age);
    
    }

    UserService.java

    @Service
    public class UserService {
    
        @Autowired
        private UserMapper userMapper;
    
        public boolean addUser(String userName, Integer age) {
            return userMapper.insert(userName, age) > 0 ? true : false;
        }
    
        public UserEntity getUserByName(String userName) {
            return userMapper.findByName(userName);
        }
    
    }

    UserController.java

    @RestController
    @RequestMapping("/user")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping("/add")
        public String addUser(String userName, Integer age) {
            return userService.addUser(userName, age) ? "success" : "fail";
        }
    
        @RequestMapping("/get")
        public UserEntity getUserByName(String userName) {
            return userService.getUserByName(userName);
        }
        @RequestMapping("/ok")
        public String getUserByName() {
            return "ok";
        }
    }

    application.properties

    spring.datasource.url=jdbc:mysql://localhost:3306/business?useUnicode=true&characterEncoding=utf8&useSSL=false
    spring.datasource.username=root
    spring.datasource.password=*****
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver

    Mybatis14Application.java

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Mybatis14Application {
        public static void main(String[] args) {
            SpringApplication.run(Mybatis14Application.class, args);
        }
    }

    user.sql

    CREATE TABLE `user`  (
      `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'ID,自增主键',
      `user_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名称',
      `age` int(11) NOT NULL COMMENT '年龄',
      `status` tinyint(2) NOT NULL DEFAULT 1 COMMENT '状态:-1:删除;0:正常;',
      `create_time` datetime(0) NOT NULL COMMENT '创建时间',
      `update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
    
    SET FOREIGN_KEY_CHECKS = 1;

    四.启动并测试

    输入:http://localhost:8080/user/get?userName=zry

    返回结果:

    参考:https://www.cnblogs.com/lvchengda/p/12619459.html

  • 相关阅读:
    QWidget在QPopupMenu显示
    QTable中header高度
    在OpenSSL中添加自定义加密算法
    LibXML2不支持中文补遗
    基于arm+uClinux的嵌入式系统的开发
    关于嵌入式系统的启动
    在Qt/Embedded 2.3.8中添加MX21Ads键盘处理
    QT/Embedded 2.3.8 MX21ADS板移植
    Windows/Linux/Solaris 软中断处理机制
    RMI原理及实现
  • 原文地址:https://www.cnblogs.com/jizhong/p/13974996.html
Copyright © 2011-2022 走看看