Java学习Day7——mysql,mybatis开发流程

79 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

1.命令行进入mysql

image.png

创建表语法:

image.png

增删改查:

image.png

2.使用工具——DataGrip

注:是收费的,30天免费试用

下载安装教程:

blog.csdn.net/qq_31762741…

将csv文件导入数据库(只需更改一下列名和数据类型即可,非常方便)

image.png

image.png

3.mybatis

image.png

准备工作1——MyBatis FrameWork和Mysql Driver

需要加上MyBatis FrameWork和Mysql Driver

image.png

只需赋值这两块的Dependence即可

image.png 加入成功

image.png 准备工作2——准备数据库连接信息

image.png 查询数据

1.创建一个与数据库相对应的JavaBean

image.png

public class Student {
   private int id;
   private String name;

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

2.新建一个mapper接口 image.png

@Mapper //专用于增删改查的接口
//实现类由mybatis和spring实现,可以通过spring的依赖注入获取实现类对象
public interface StudentMapper {
    @Select("""
            select id, name
            from student
            """)
    List<Student> findAll();
}

编写单元测试

//单元测试
@SpringBootTest
public class TestStudentMapper {
    @Autowired
    StudentMapper studentMapper;
    @Test
    public void test(){
        List<Student> all = studentMapper.findAll();
        for (Student student : all) {
            System.out.println(student.getId());
            System.out.println(student.getName());
        }

    }
}

查询结果

image.png 相关知识点

1.Mapper接口,使用@Mapper关键字

2.@Select关键字,里面写上sql语句,当调用接口中的方法时就会执行该sql语句

3.编写单元测试:@SpringBootTest加在class前,@Test加在方法前

测试方法形式:public void 任意方法名();

根据编号查询学生

//根据编号查询学生
@Select("""
        select id, name
        from student 
        where id=#{id}
        """)
Student findById(int id);

相关知识点:#{id}

单元测试:

@Test
public void test1(){
    Student s = studentMapper.findById(3);
    System.out.println(s.getName());
}

结果:

image.png

新增学生

//新增学生
@Insert("""
        insert into student(id,name)
        values(#{id},#{name})
        """)
//多个参数时,要用@Param()告诉参数之间的对应关系
void insert(@Param("id") int id,@Param("name") String name);

相关知识点:

1.@Insert

2.多个参数时,要用@Param()告诉参数之间的对应关系

单元测试:

    public void test2(){
        studentMapper.insert(7,"周琦");
        List<Student> all = studentMapper.findAll();
        for (Student student : all) {
            System.out.println(student.getId());
            System.out.println(student.getName());
    }
}

结果:

image.png

改进:

@Insert("""
        insert into student(id,name)
        values(#{id},#{name})
        """)
    //尽量用一个参数
void insert(Student stu);
 @Test
    public void test2(){
        Student stu = new Student(8,"牛九");
        studentMapper.insert(stu);
        List<Student> all = studentMapper.findAll();
        for (Student student : all) {
            System.out.println(student.getId());
            System.out.println(student.getName());
    }
}

修改学生

@Update("""
        update student set name = #{name} where id =#{id}
        """)
void update(Student stu);

单元测试:

@Test
public void test3() {
    Student stu = new Student(1, "张小三");
    studentMapper.update(stu);
    List<Student> all = studentMapper.findAll();
    for (Student student : all) {
        System.out.println(student.getId());
        System.out.println(student.getName());
    }
}

删除学生

@Delete("""
        delete from student where id = #{id}
        """)
void delete(int id);

单元测试:

@Test
public void test4() {
    studentMapper.delete(7);
    List<Student> all = studentMapper.findAll();
    for (Student student : all) {
        System.out.println(student.getId());
        System.out.println(student.getName());
    }
}

至此,mybatis增删改查实现完毕