MyBatis学习总结(四):MyBatis映射文件中的<select>、<insert>、<update>、<delete>标签

1、 元素用于映射 SQL 的 select 语句,其示例代码如下:

    
    

 上述示例代码中,id 的值是唯一标识符,它接收一个 Integer 类型的参数,返回User 类型的对象,结果集自动映射到 User 属性。

select * from t_student where age > #{age} and username like #{nstart};

 (5)在SqlMapperConfig.xml中指定映射的配置文件

(6)测试。

    @Test
    public void testFindStudent() throws IOException {
        //1、读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapperConfig.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、使用工厂生产SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、使用SqlSession创建dao接口的代理对象
        IStudentDao studentDao = sqlSession.getMapper(IStudentDao.class);
        //5、使用代理对象执行方案
        Map map = new HashMap<>();
        map.put("age", 30);
        map.put("nstart","张%");
        List students = studentDao.findStudent(map);
        for(Student stu : students){
            System.out.println(stu);
        }
        //6、释放资源
        sqlSession.close();
        in.close();
    }

方式二:使用JavaBean传递多个参数

(1)IStudentDao添加方法findStudentNewWay();

List findStudentNewWay(Student student);

(2)在studentMapper.xml中添加查询语句。

(3)进行测试。

    @Test
    public void testFindStudent2() throws IOException {
        //1、读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapperConfig.xml");
        //2、创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3、使用工厂生产SqlSession对象
        SqlSession sqlSession = factory.openSession();
        //4、使用SqlSession创建dao接口的代理对象
        IStudentDao studentDao = sqlSession.getMapper(IStudentDao.class);
        //5、使用代理对象执行方案
        Student student = new Student();
        student.setAge(30);
        student.setUsername("张%");
        List students = studentDao.findStudentNewWay(student);
        for(Student stu : students){
            System.out.println(stu);
        }
        //6、释放资源
        sqlSession.close();
        in.close();
    }

建议:如果参数较少,建议选择 Map;如果参数较多,建议选择 Java Bean。

2、元素

元素用于映射插入语句,MyBatis 执行完一条插入语句后将返回一个整数表示其影响的行数。它的属性与 元素的属性差不多,执行后也返回一个整数,表示影响了数据库的记录行数。配置示例代码如下:

    
    
        delete from t_user where id = #{id}
    
    
    
        update t_user set username =#{username}, password= #{password} where id = #{id}
    

4、sql元素

sql元素标签用来定义可重复使用的SQL代码片段,使用时只需要用include元素标签引用即可,最终达到SQL语句重用的目的;同时它可以被静态地(在加载参数) 参数化,不同的属性值通过包含的实例变化,使用如下:

    
    
        
            and username like '%${username}%'
        
    
    
    

 

你可能感兴趣的:(MyBatis学习,mybatis,java,mysql)