springboot集成mybatis(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_40802017/article/details/102751203

springboot集成mybatis(一)

项目结构:
在这里插入图片描述
创建项目的过程:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

配置及Java文件:
pom.xml

<?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.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ccb</groupId>
    <artifactId>springboot-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-demo</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>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.22</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>

SpringbootDemoApplication.java

package com.ccb;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.ccb.mapper")
public class SpringbootDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }
}

UserController.java

package com.ccb.controller;

import com.ccb.pojo.User;
import com.ccb.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("user")
public class UserController {


    @Autowired
    private UserService userService;

    @PostMapping
    public ResponseEntity<Void> insert(User user) {
        userService.insert(user);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }

    @DeleteMapping("{id}")
    public ResponseEntity<Void> deleteUserById(@PathVariable Long id) {
        userService.deleteUserById(id);
        return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
    }

    @PutMapping
    public ResponseEntity<Void> updateUserById(User user) {
        userService.updateUserById(user);
        return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
    }

    @GetMapping
    public ResponseEntity<User> selectUserById(@RequestParam("id") Long id) {
        return ResponseEntity.ok(userService.selectUserById(id));

    }

}

UserService.java

package com.ccb.service;

import com.ccb.mapper.UserMapper;
import com.ccb.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    @Transactional
    public void insert(User user) {
        userMapper.insert(user);
    }

    /*public void test(User user) {
        insert(user);
        int i = 1 / 0;
    }*/

    public void deleteUserById(Long id) {
        userMapper.deleteUserById(id);
    }

    public void updateUserById(User user) {
        userMapper.updateUserById(user);
    }

    public User selectUserById(Long id) {
        return userMapper.selectUserById(id);
    }
}

UserMapper.java

package com.ccb.mapper;

import com.ccb.pojo.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {

    void insert(User user);

    void deleteUserById(Long id);

    void updateUserById(User user);

    User selectUserById(Long id);
}

User.java

package com.ccb.pojo;

import lombok.Data;

import java.util.Date;

@Data
public class User {
    private Long id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private Integer sex;
    private Date birthday;
    private Date created;
    private Date updated;
    private String note;
}

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="com.ccb.mapper.UserMapper">

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
        INSERT INTO tb_user (
        user_name,
        password,
        name,
        age,
        sex,
        birthday,
        note,
        created,
        updated
    )
      VALUES
	(
		#{userName},
		#{password},
		#{name},
		#{age},
		#{sex},
		#{birthday},
		#{note},
		now(),
		now()
	);
    </insert>

    <delete id="deleteUserById">
        delete from tb_user where id = #{id};
    </delete>

    <update id="updateUserById">
        UPDATE tb_user
        SET
         user_name = #{userName},
         password = #{password},
         name = #{name},
         age = #{age},
         sex = #{sex},
         birthday = #{birthday},
         note = #{note},
         updated = now()
        WHERE
            (id = #{id});
    </update>

    <select id="selectUserById" resultType="User">
        select
        id,
        user_name,
        password,
        name,
        age,
        sex,
        birthday,
        note,
        created,
        updated
        from
        USER where id = #{id};
    </select>

</mapper>

application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springbootdemo?serverTimezone=UTC
    username: root
    password: root

mybatis:
  type-aliases-package: com.ccb.pojo
  mapper-locations: classpath:mappers/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

**github链接 **

猜你喜欢

转载自blog.csdn.net/qq_40802017/article/details/102751203