spring boot+mysql数据库+mybatis库

任务
通过spring boot实现一个简单的报名系统。
1.了解下mysql数据库,能够在数据库创建一张数据表user。数据表需要这几个字段,id,name, gender。通过mysql命令插入数据,删除数据,查找数据,修改数据。
2.spring boot如何通过链接传递参数。链接上传递两个参数a和b,返回a和b相加的和。
3.通过spring boot操作mysql数据库。需要用mybatis这个库去操作数据库。通过spring boot去实现user表插入数据,删除数据,查找数据,修改数据。通过链接传参操作增删改查。

准备工作

1. IDEA
2. MySQL(关于mysql数据库,及在数据库创建一张数据表,可以参考这个视频教程,链接

# 创建一张表user
 



create database if not exists exercise character set utf8;
use exercise;
create table user(
id int,
name varchar(20),
gender varchar(1)
);
INSERT INTO USER(id,NAME,gender) VALUES(1,'小王','男');//插入
SELECT * FROM USER; //查看
DELETE FROM USER WHERE id=1; //删除
UPDATE USER SET gender='女' WHERE id=1; //修改


显示
图片 1

1. 新建项目
(方法一:根据之前博文,点击链接,在之前添加Web的地方再输入MySQL、MyBatis字样)
方法二:勾选图中三个选项
项目建成后可以在**pom.xml**看到如图依赖
图片2

2. **application.properties**中添加下列语句连接数据库
 

spring.datasource.url=jdbc:mysql://localhost:3306/exercise?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.type-aliases-package=com.examplemybatis.demo.mapper

(备注:spring.datasource.url 数据库连接字符串,3306是MySQL的端口,exercise是表所在的库,后面的参数直接复制就好了,之前有个时区参数忘记加上去总是报错 

spring.datasource.username 数据库用户名

spring.datasource.password 数据库密码

spring.datasource.driver-class-name 驱动类型(注意MySQL 8.0的值是com.mysql.cj.jdbc.Driver和之前不同)

mybatis.type-aliases-package 配置mapper包名,这个到看后面就知道了

———————————————— 版权声明:本段参考为CSDN博主「Len丶」的原创文章 原文链接

#源文件编写

简单一些,我们分为三部分:实体类、Mapper接口、Controller类,Controller类直接调用Mapper接口进行数据持久化处理

如图

图片3

##实体类

新建一个entity包,新建一个User类

package com.examplemybatis.demo.entity;

public class User {
    		private int id;
    		private String name;
    		private String gender;
}

全选,右键-Generate…-Getter and Setter

Alt+Insert+Getter and Setter

全都选上点击OK,IDEA就是这么舒服

##Mapper接口

新建一个mapper包
在这个包新建一个UserMapper接口,利用注解实现SQL指令

package com.examplemybatis.demo.mapper;
import com.examplemybatis.demo.entity.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository

public interface UserMapper {
    @Select("SELECT * FROM user")
    @Results({
            @Result(property = "name", column = "name")
    })
    List<User> getAll();
    @Select("select * from user where id=#{id}")
    User getById(int id);
    @Insert({
            "insert into user(id,name,gender) values(#{id},#{name},#{gender})"
    })
    void install(User user);
    @Update({"update user set name=#{name},id=#{id} where gender=#{gender}"})
    void Update(User user);
    @Delete("delete from user where id=#{id}")
    void delete(int id);
}

(备注:

@Select 查询注解

@Result 结果集标识,用来对应数据库列名的,如果实体类属性和数据库属性名保持一致,可以忽略此参数

@Insert 插入注解

@Update 修改注解

@Delete 删除注解)

完成这步之后我们在主程序入口(DemoApplication)添加一个

@MapperScan("com.examplemybatis.demo.mapper")

这样就不用每个Mapper都注解一次了,记得改成自己的mapper目录

 ##Controller类

package com.examplemybatis.demo;


import com.examplemybatis.demo.entity.User;
import com.examplemybatis.demo.mapper.UserMapper;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
public class Controller {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/getAll")
    public List<User> getAll(){
        return userMapper.getAll();
    }
    @GetMapping("/install")
    public List<User> install(User user){
        userMapper.install(user);
        return userMapper.getAll();
    }
    @GetMapping("/delete")
    public List<User> delete(int id){
        userMapper.delete(id);
        return userMapper.getAll();
    }
    @GetMapping("/update")
    public List<User> update(User user){
        userMapper.Update(user);
        return userMapper.getAll();
    }
    @GetMapping("/get")
    public User get(int id){
        return userMapper.getById(id);
    }
}

 #测试

查询:

http://localhost:8080/getAll

 图片4

增加:

	http://localhost:8080/install?id=3&name=小张&gender=男

 图片5

删除(忘记截图了)

	http://localhost:8080/delete?id=3

修改

    

http://localhost:8080/update?gender=男&name=小汤&id=2


图片6

(特此声明,以上步骤均借鉴刚才链接中那位博主内容,详情请戳链接)

#解决问题2 返回参数之和

可以在主程序入口写如下代码(根据hello word改变)


package com.examplemybatis.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;




@SpringBootApplication
@RestController
@MapperScan("com.examplemybatis.demo.mapper")
public class DemoApplication {


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

    @GetMapping("/sum")
    public int sum(@RequestParam(value = "first", defaultValue = "1") int first,@RequestParam(value = "second", defaultValue = "2") int second) {
        return first+second;
    }
}
 

8

end

猜你喜欢

转载自blog.csdn.net/qq_46392282/article/details/105131538