zoukankan      html  css  js  c++  java
  • 整合springboot+mybatis+mysql之增删改查(三)

    废话少说,上代码

    结构

     1application.properties

    web.upload-path=G:study_toolmaven_workspaceimages
    #u9759u6001u8D44u6E90u6587u4EF6
    spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path},classpath:/thymeleaf/
    #u6307u5B9Au67D0u4E9Bu6587u4EF6u4E0Du8FDBu884Cu76D1u542CuFF0Cu5373u4E0Du8FDBu884Cu70EDu52A0u8F7D
    #spring.devtools.restart.exclude=application.properties
    #通过触发器,来控制什么时候进行加载热部署的文件
    spring.devtools.restart.trigger-file=trigger.txt
    #端口地址
    server.port=8080
    #文件上传路径
    web.file.path=G:\study_tool\maven_workspace\demo\src\main\resources\static\image\
    #u6D4Bu8BD5u670Du52A1u5668u7684u8BBFu95EEu540Du79F0
    test.name=jimao
    #u6D4Bu8BD5u670Du52A1u5668u7684u8BBFu95EEu5730u5740
    test.domain=liming

    #Freemarker的基础配置
    #Freemarker是否开启thymeleaf缓存,本地为flase,生产改为true
    spring.freemarker.cache=false
    #Freemarker编码格式
    spring.freemarker.charset=UTF-8
    spring.freemarker.allow-request-override=false
    spring.freemarker.check-template-location=true

    #Freemarker类型
    spring.freemarker.content-type=text/html; charset=utf-8
    spring.freemarker.expose-request-attributes=true
    spring.freemarker.expose-session-attributes=true

    #Freemarker文件后缀
    spring.freemarker.suffix=.ftl
    #Freemarker路径
    spring.freemarker.template-loader-path=classpath:/templates/


    #整合thymeleaf相关配置
    #开发时关闭缓存,不然没法看见实时页面
    spring.thymeleaf.cache=false
    spring.thymeleaf.mode=HTML5
    #thymeleaf路径
    spring.thymeleaf.prefix=classpath:/templates/tl/
    #thymeleaf编码格式
    spring.thymeleaf.encoding=UTF-8
    #thymeleaf类型
    spring.thymeleaf.servlet.content-type=text/html; charset=utf-8
    #thymeleaf名称后缀
    spring.thymeleaf.suffix=.html


    #整合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

    #控制台打印mybtics的sql语句
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

     2SpringbootMysqlApplication

    package springboot_mysql;

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


    @SpringBootApplication
    @MapperScan("springboot_mysql.mapper")
    public class SpringbootMysqlApplication {

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

    }

     3Student  

    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();
    }

    }

    4JsonData

    package springboot_mysql.bean;

    import java.io.Serializable;
    import java.util.List;

    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;
    }

    public static Object buildSuccess(List<Student> all) {
    return all;
    }

    public static Object buildSuccess(Student findById) {
    return findById;
    }

    public static Object buildSuccess() {
    return null;
    }
    }

    5StudentMapper

    package springboot_mysql.mapper;

    import java.util.List;

    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Options;
    import org.apache.ibatis.annotations.Result;
    import org.apache.ibatis.annotations.Results;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;

    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);

    /**
    * 查询student所有的数据
    * @return
    * @Results({
    @Result(column="name",property = "name"),
    @Result(column="age",property = "age"),
    @Result(column="sex",property = "sex"),
    @Result(column="phone",property = "phone"),
    @Result(column="money",property = "money")
    })
    中column对应的是数据库中的字段,property对应的是Student类中的属性,主要是用来对付属性名称不一致使用,这里可以注释掉
    */
    @Select("select * from student")
    @Results({
    @Result(column="name",property = "name"),
    @Result(column="age",property = "age"),
    @Result(column="sex",property = "sex"),
    @Result(column="phone",property = "phone"),
    @Result(column="money",property = "money")
    })
    List<Student> findAll();

    /**
    * 根据id查询student
    * @param id
    * @return
    */
    @Select("select * from student where id=#{id}")
    Student findById(int id);

    /**
    * 根据id修改Student
    * @param student
    */
    @Update("update student set name=#{name} where id=#{id} ")
    void update(Student student);

    /**
    * 根据id删除Student
    * @param id
    * @return
    */
    @Delete("delete from student where id =#{id} ")
    void deleteById(int id);




    }

    6StudentService

    package springboot_mysql.service;

    import java.util.List;

    import springboot_mysql.bean.Student;

    public interface StudentService {
    /**
    * 新增student的数据接口
    *
    * @param student
    * @return
    */
    int add(Student student);

    /**
    * 查询student的所有数据接口
    *
    * @return
    */

    List<Student> findAll();

    /**
    * 根据id查询student的数据接口
    *
    * @param id
    * @return
    */

    Student findById(int id);

    /**
    * 根据id删除student的数据接口
    *
    * @param id
    * @return
    */

    void deleteById(int id);

    /**
    * 根据student对象数据进行修改的接口
    *
    * @param student
    */
    void update(Student student);

    }

    7StudentServiceImpl

    package springboot_mysql.service.impl;

    import java.util.List;

    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;

    /**
    * 新增student的接口实现
    */
    @Override
    public int add(Student student) {
    return studentmapper.insert(student);
    }

    @Override
    public List<Student> findAll() {
    return studentmapper.findAll();
    }

    @Override
    public Student findById(int id) {
    return studentmapper.findById(id);
    }

    @Override
    public void deleteById(int id) {
    studentmapper.deleteById(id);
    }

    @Override
    public void update(Student student) {
    studentmapper.update(student);
    }

    }

    8StudentController

    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.mapper.StudentMapper;
    import springboot_mysql.service.StudentService;

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

    @Autowired
    private StudentService studentService;

    @Autowired
    private StudentMapper studentMapper;

    @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);
    }

    @GetMapping("findAll")
    public Object findAll() {
    return JsonData.buildSuccess(studentMapper.findAll());

    }

    @GetMapping("findById")
    public Object findById(int id) {
    return JsonData.buildSuccess(studentMapper.findById(id));

    }

    @GetMapping("deleteById")
    public Object deleteById(int id) {
    studentMapper.deleteById(id);
    return JsonData.buildSuccess();
    }

    @GetMapping("update")
    public Object update(String name, int id) {
    Student student = new Student();
    student.setName(name);
    student.setId(id);
    studentMapper.update(student);
    return JsonData.buildSuccess();

    }

    }

    9run application 通过接口访问Controller中的接口,可以查看数据的增删改查

  • 相关阅读:
    multiprocessing 源码解析 更新中......
    loadrunner 更新中......
    Java IO
    echarts水球图小数点不显示问题+组件默认值
    双柱表格组件
    表格生成后修改echarts图表样式
    vue中引入单张图片+两张壁纸手动切换
    配置全局组件
    vue使用babel-plugin-import按需引入Ant Design View + babel-plugin-component按需引入element-ui
    vue深浅拷贝的思索
  • 原文地址:https://www.cnblogs.com/zhushilai/p/13579462.html
Copyright © 2011-2022 走看看