MyBatis--多案例让你熟练使用CRUD操作

 

目录

一、前期准备

二、两种实现CRUD方式

三、增加数据(INSERT)

四、删除数据(DELETE)

五、查询数据(SELECT)

六、更新数据(UPDATE)


一、前期准备

1.创建maven项目并在pom文件中导入相关jar包


        
        
            mysql
            mysql-connector-java
            8.0.33
        
        
        
            org.junit.jupiter
            junit-jupiter-api
            5.10.0
            test
        
        
        
            cn.itlym.shoulder
            lombok
            0.1
        
        
        
            org.mybatis
            mybatis
            3.5.7
        

2.创建CURD使用到的大学生实体类

@Data
public class UnderGraduate {
//    大学生的属性
    private String name;
    private String major;
    private int id;
    private  String gender;
}

3.数据库准备对应实体类的表

MyBatis--多案例让你熟练使用CRUD操作_第1张图片

 4.创建对应业务需求的接口

//业务接口
public interface UnderGraduateMapper {
//    增删查改
//    增加 
    public int insertNew(UnderGraduate underGraduate);

//    删除
    public int deleteById();
  
//    查找
    public UnderGraduate selsctById();

//    修改
    public int updateById();
}

5. 相关mappers与mybatis配置

mapper配置









jdbc资源类配置

jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/对应数据库名称
jdbc.username = mysql
jdbc.password = xxxxxx

 mybatis配置




    
    
    
        
            
            
                
                
                
                
            
        
    
    

        
    


6.建立对应测试类,测试代码

public class CRUDTEST {

    @Test
    public void Test() throws IOException {
//        获取mybatis配置资源
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//        创建SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//        根据获取资源is build一个对应SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//        通过SqlSessionFactory 获取SqlSession,并开启自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
//        通过SqlSession获取对应mapper对象
        UnderGraduateMapper mapper = sqlSession.getMapper(UnderGraduateMapper.class);

//        此处调用mapper对象测试功能


//      关闭SqlSession
        sqlSession.close();
    }
}

二、两种实现CRUD方式

在MyBatis中有两种方式可以实现增删查改的功能,分别是通过XML配置与注解类配置

1.XML配置

优点:

  1. 灵活性高:可以使用 MyBatis 提供的各种标签,构建复杂的查询语句。
  2. 易于维护:SQL 语句和 Java 代码分离,提高了程序的可读性和可维护性。
  3. 明确的映射关系:可以使用 resultMap 标签明确地指定查询结果和 Java 对象之间的映射关系。

缺点:

  1. 学习成本高:使用 MyBatis 的 XML 配置需要学习一些额外的标签和配置方式。
  2. 冗余度高:相对于注解配置,XML 配置要更冗长,需要编写大量的 XML 标签。
  3. 不够直观:XML 配置需要打开多个文件进行编辑,不如注解配置那样直观。

有四种基本的增删查改标签对应分别是 select * from undergraduate where id = #{id}

测试类:

//创建对象
        UnderGraduate graduate;
//        使用功能
        graduate = mapper.selectById(1);
//        输出用户
        System.out.println(graduate);

MyBatis--多案例让你熟练使用CRUD操作_第9张图片

2.根据多变量查询单一用户(xml配置)

当业务接口有多个变量时候,那么需要加上@Param注解

业务接口:

    //2.根据多参数查询单一用户
    public UnderGraduate selectByParams(@Param("name") String name,
                                        @Param("id") int id);

业务实现:


    

测试类:

        //创建对象
        UnderGraduate graduate;
//        使用功能
        graduate = mapper.selectByParams("admin",1);
//        输出用户
        System.out.println(graduate);

MyBatis--多案例让你熟练使用CRUD操作_第10张图片

3.根据条件查询多个用户(xml配置)

业务接口:

   //3.根据条件查询用户集合
    public List selectListByCondition(String condition);

业务实现:


测试代码:

        //创建list对象
        List list;
//        使用功能
        list = mapper.selectListByCondition("id > 1");
//        输出用户
        System.out.println(list);

4.自定义查询结果集(通过注解@select )

业务接口:

    //4.通过注解方式查询
    @Select("SELECT name , major  FROM  undergraduate.undergraduate where id = #{id}")
    public UnderGraduate selectByMap(int id);

测试类代码:

        UnderGraduate underGraduate = mapper.selectByMap(1);
        System.out.println(underGraduate);

MyBatis--多案例让你熟练使用CRUD操作_第11张图片 通过注解类配置实现功能

    //1.根据id查找用户
    @Select("select * from undergraduate.undergraduate where id = #{id}")
    public UnderGraduate selectById(int id);
    //2.根据多参数查询单一用户
    @Select("select * from undergraduate.undergraduate where name = #{name} and id = #{id}")
    public UnderGraduate selectByParams(@Param("name") String name,
                                        @Param("id") int id);
    //3.根据条件查询用户集合
    @Select("select * from undergraduate.undergraduate where ${condition}")
    public List selectListByCondition(String condition);

六、更新数据(UPDATE)

通过XML配置实现功能

1.根据id修改性别

业务接口:

    //通过id更改名称
    public int updateNameById(@Param("id") int id,
                              @Param("newName")String name);

业务实现:


    
        update  undergraduate
        set name = #{newName}
        where id = #{id}
    

测试类代码:

        mapper.updateNameById(1,"荒天帝");
        UnderGraduate underGraduate = mapper.selectByMap(1);
        System.out.println(underGraduate.getName());

 

通过注解类配置实现功能

    //通过id更改名称
    @Update("update undergraduate.undergraduate set name = #{name} where id = #{id}")
    public int updateNameById(@Param("id") int id,
                              @Param("newName")String name);

你可能感兴趣的:(SSM框架,mybatis,tomcat,java)