Web前端(十一)-Mybatis框架

MyBatis框架

  • 此框架是目前最流行的数据持久化框架,使用此框架可以完全免去JDBC代码操作数据(本质是将JDBC代码完全封装) ,从而大大提高了开发效率;

  • MyBatis框架工作原理: 通过注解或xml配置文件写好对象属性和表字段的映射关系, 然后此框架会根据映射关系对数据进行操作。

如何使用MyBatis框架?

  • 创建工程打钩时需要多两个

    分别是: MyBatis Framework和 MySQL Driver,注意不要勾选MariaDB Driver

  • 创建完包含了MyBatis框架的工程, 此功能直接运行会报错,需要配置数据库连接信息, 在application.properties配置文件中添加以下代码:

     spring.datasource.url=jdbc:mysql://localhost:3306/bootdb?characterEncoding=utf8&serverTimezone=Asia/Shanghai
     spring.datasource.username=root
     spring.datasource.password=root
  • 创建Emp实体类,属性:id、name、salary、job,添加set、get、toString方法

  • 创建EmpMapper接口,创建完之后添加@Mapper注解,里面添加如下代码:

     package cn.tedu.boot31.mapper;
     
     import cn.tedu.boot31.entity.Emp;
     import org.apache.ibatis.annotations.*;
     
     import java.util.List;
     
     @Mapper //告诉编译器当前接口是一个映射接口 负责为Mybatis框架服务
     public interface EmpMapper {
         //#{变量}会自动从方法的参数列表中找到对应的数据,如果找不到
         //会自动查看已有对象里面是否包含同名的属性
         @Insert("insert into emp values(null,#{name},#{salary},#{job})")
         void insert(Emp emp);
         //MyBaitis框架会自动根据上面两行代码生成方法的实现(方法里面写的是jdbc代码)
     
         @Select("select id,name,salary,job from emp")
         List<Emp> selectAll();
     
         @Delete("delete from emp where id=#{id}")
         int delete(int id);
     
         @Update("update emp set name=#{name}," +
                 "salary=#{salary},job=#{job} where id=#{id}")
         void update(Emp emp);
     
     }
     
  • 在测试类里面添加以下代码:

     package cn.tedu.boot31;
     
     import cn.tedu.boot31.entity.Emp;
     import cn.tedu.boot31.mapper.EmpMapper;
     import org.junit.jupiter.api.Test;
     import org.springframework.beans.factory.annotation.Autowired;
     import org.springframework.boot.test.context.SpringBootTest;
     
     import java.util.List;
     
     @SpringBootTest
     class Boot31ApplicationTests {
         //自动装配, Spring框架会自动帮助我们对该接口进行实例化操作
         @Autowired(required = false)
         EmpMapper mapper;
         @Test
         void contextLoads() {
             System.out.println("xxx");
             Emp emp = new Emp();
             emp.setName("司马懿");
             emp.setSalary(500);
             emp.setJob("军师");
             mapper.insert(emp);
             System.out.println("执行完成!");
        }
     
         @Test
         void select(){
             List<Emp> list = mapper.selectAll();
             System.out.println(list);
        }
     
         @Test
         void delete(){
             int row = mapper.delete(6);
             System.out.println("删除完成:"+row);
        }
     
         @Test
         void update(){
             Emp emp = new Emp();
             emp.setId(7);
             emp.setName("诸葛亮");
             emp.setJob("程序员");
             emp.setSalary(20000);
             mapper.update(emp);
             System.out.println("修改完成!");
        }
     }

 

英雄表增删改查练习

  1. 创建hero表

    create table hero(id int primary key auto_increment,name varchar(50),type varchar(20))charset=utf8;

  1. 创建新工程3-2 11改8 打3个√

  1. application.properties配置文件中添加 连接数据库的信息

 

商品表Item

  • create table item(id int primary key auto_increment,title varchar(50),price int,category_id int,user_id int)charset=utf8;

 

Mybatis版员工管理系统

  1. 创建工程3-4 11改8 打钩3个

  2. 在application.properties里面添加数据库连接信息

  3. 创建index.html,add.html,update.html页面

  4. 创建entity.Emp,创建mapper.EmpMapper(添加注解),创建controller.EmpController(添加注解)

  5. 在EmpMapper中把增删改查四个方法和注解一起写完

  6. 在EmpController里面依次实现处理添加的方法, 处理查询的方法,处理删除的方法,处理修改的方法

 

posted @ 2021-08-06 22:00  Coder_Cui  阅读(209)  评论(0编辑  收藏  举报