• 整合springboot+mysql+mybatis之新增(一)


    结构

    1使用starter,访问maven仓库地址

    http://mvnrepository.com

    或者直接在pom.xml中添加依赖,注意,如果包不能被引用,把<scope>给注释掉

    <!-- 引入mybatis的starter的包 -->
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
    <!-- <scope>runtime</scope> -->
    </dependency>

    <!-- mysql的驱动包 -->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <!-- <scope>runtime</scope> -->
    </dependency>

    <!-- 引入第三方驱动源 -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.6</version>
    </dependency>

     2在application.properties中新增mysql配置文件

    #整合mysql的配置文件
    #mysql加载驱动
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    #jdbc数据库连接
    spring.datasource.url=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
    #mysql账号
    spring.datasource.username=root
    #mysql密码
    spring.datasource.password=456789
    #数据连接源,如果注释掉,数据源使用默认的(com.zaxxer.hikari.HikariDataSource)
    #spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

     3在数据库mysql中创建对应的表student

    CREATE TABLE `student` (
    `id` int(0) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    `age` int(0) NULL DEFAULT NULL,
    `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
    `money` int(0) NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

    SET FOREIGN_KEY_CHECKS = 1;

    4创建student类

    package springboot_mysql.bean;

    public class Student {
    /**
    * 自增id
    */
    private int id;

    /**
    * 学生姓名
    */
    private String name;
    /**
    * 学生年龄
    */
    private int age;
    /**
    * 学生性别
    */
    private String sex;
    /**
    * 学生电话
    */
    private String phone;
    /**
    * 学生存款
    */
    private int money;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public String getSex() {
    return sex;
    }
    public void setSex(String sex) {
    this.sex = sex;
    }
    public String getPhone() {
    return phone;
    }
    public void setPhone(String phone) {
    this.phone = phone;
    }
    public int getMoney() {
    return money;
    }
    public void setMoney(int money) {
    this.money = money;
    }
    public Student(int id, String name, int age, String sex, String phone, int money) {
    super();
    this.id = id;
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.phone = phone;
    this.money = money;
    }
    public Student() {
    super();
    }

    }

     

     2创建mapper接口StudentMapper

    package springboot_mysql.mapper;

    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Options;

    import springboot_mysql.bean.Student;

    /**
    * 访问数据库的接口
    * @author Administrator
    *
    */
    public interface StudentMapper {
    /**
    * sql语句中推荐使用#{},而不是${},因为存在sql注入的危险,#{}返回的值是?
    * @Insert("insert into student(name,age,sex,phone,money)values(#{name},#{age},#{sex},#{phone},#{money})")是新增的sql的方法
    * @Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id")是获取自增的主键id
    * useGeneratedKeys是是否返回值,true返回,flase不返回
    * keyColumn对应的是Student类中的属性id
    * keyProperty对应的是数据库mysql中的表Student中的字段id
    * @param student
    * @return
    */
    @Insert("insert into student(name,age,sex,phone,money)values(#{name},#{age},#{sex},#{phone},#{money})")
    @Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id")
    int insert(Student student);

    }

     3创建service接口,

    package springboot_mysql.service;

    import springboot_mysql.bean.Student;

    public interface StudentService {

    public int add(Student student);
    }

    4创建service的实现类

    package springboot_mysql.service.impl;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import springboot_mysql.bean.Student;
    import springboot_mysql.mapper.StudentMapper;
    import springboot_mysql.service.StudentService;
    /**
    * @Service 这个注解能够让controller扫描StudentServiceImpl
    * @author Administrator
    *
    */
    @Service
    public class StudentServiceImpl implements StudentService{

    @Autowired
    private StudentMapper studentmapper;

    @Override
    public int add(Student student) {
    studentmapper.insert(student);
    int id=student.getId();
    return id;
    }

    }

    5创建controller

    package springboot_mysql.controller;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;

    import springboot_mysql.bean.JsonData;
    import springboot_mysql.bean.Student;
    import springboot_mysql.service.StudentService;

    @RestController
    @RequestMapping("/api/v1/student")
    public class StudentController {

    @Autowired
    private StudentService studentService;

    @GetMapping("add")
    public Object add() {
    Student student =new Student();
    student.setName("李明");
    student.setAge(20);
    student.setSex("男");
    student.setPhone("13662626356");
    student.setMoney(1000);
    int id=studentService.add(student);
    return JsonData.buildSuccess(id);
    }
    }

    6创建JsonData类

    package springboot_mysql.bean;

    import java.io.Serializable;

    public class JsonData implements Serializable{

    private static final long serialVersionUID = 1L;

    //状态码,0表示成功,-1表示失败
    private int code;

    //结果
    private Object data;

    //返回错误消息
    private String msg;

    public int getCode() {
    return code;
    }

    public void setCode(int code) {
    this.code = code;
    }

    public Object getData() {
    return data;
    }

    public void setData(Object data) {
    this.data = data;
    }

    public String getMsg() {
    return msg;
    }

    public void setMsg(String msg) {
    this.msg = msg;
    }

    public JsonData(int code, Object data, String msg) {
    super();
    this.code = code;
    this.data = data;
    this.msg = msg;
    }

    public static Object buildSuccess(int id) {

    return id;
    }
    }

    7run application  ,然后访问http://localhost:8080//api/v1/student/add

    返回数据库表中新建数据的id,数据库中的数据会新增

  • 相关阅读:
    POJ1609 UVALive2815 UVA1196 ZOJ1787 Tiling Up Blocks【二维最长上升子序列+DP】
    UVALive3638 UVA12100 POJ3125 HDU1972 Printer Queue【队列+模拟】
    UVA10391 ZOJ1825 Compound Words【SET+暴力】
    NUC1157 To the Max【最大子段和+DP】
    NUC1399 Sum It Up【DFS】
    NUC1742 Subsequence【前缀和+二分搜索+尺取法】
    NUC1371 Who's in the Middle【中位数+排序】
    NUC1312 Sum【水题+数学题】
    POJ2100 Graveyard Design【尺取法】
    UVALive3399 UVA1210 POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
  • 原文地址:https://www.cnblogs.com/zhushilai/p/13573453.html
Copyright © 2020-2023  润新知