MyBatis的增删改查

MyBatis的增删改查

1、新增

<!--int insertUser();-->
    <insert id="insertUser">
        insert into t_user values(null,'hhh','123456',23,'女','12345@qq.com')
    </insert>
@Test
    public void testInsert() throws IOException {
        //读取MyBatis的核心配置文件
        InputStream is= Resources.getResourceAsStream("mappers/mybatis-config.xml");
        //获取SqlSessionFactoryBuilder对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//        // 获取sql的会话对象SqlSession对象(不会自动提交事务),是mybatis提供的操作数据库的对象
//        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 获取sql的会话对象SqlSession对象(会自动提交事务),是mybatis提供的操作数据库的对象
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //通过代理模式创建UserMapper接口的代理实现类对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,通过调用的方法名匹配映射文件中的SQL标签,并执行标签中的SQL语句
        int result = userMapper.insertUser();
        //提交事务
        //sqlSession.commit();
        System.out.println("结果:"+result);
        sqlSession.close();

这个写法会比较麻烦,每个测试都要重新获取,所以在com.mybatis.utils下再建一个类:
在这里插入图片描述

package com.mybatis.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class SqlSessionUtil {
    public static SqlSession getSqlSession(){
        SqlSession sqlSession=null;
        try {
            //读取MyBatis的核心配置文件
            InputStream is= Resources.getResourceAsStream("mybatis-config.xml");
            //获取SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //获取SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
            // 获取sql的会话对象SqlSession对象(会自动提交事务),是mybatis提供的操作数据库的对象
            sqlSession = sqlSessionFactory.openSession(true);
        }catch (Exception e){
            e.printStackTrace();
        }
        return sqlSession;
    }
}

创建完成后就可在测试类直接写下属代码:

@Test
    public void testInsert(){
        SqlSession sqlSession= SqlSessionUtil.getSqlSession();
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        int result = userMapper.insertUser();
        System.out.println("结果:"+result);
        sqlSession.close();
    }

2、删除

<!--void deleteUser();-->
    <delete id="deleteUser">
        delete from t_user where id=2;
    </delete>
@Test
    public void testDelete(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        userMapper.deleteUser();
      

3、修改

<!--void updateUser();-->
    <update id="updateUser">
        update t_user set username='root',password='123' where id=2;
    </update>
@Test
    public void testUpdate(){
        SqlSession sqlSession= SqlSessionUtil.getSqlSession();
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        userMapper.updateUser();
        sqlSession.close();
    }

4、查询一个实体类对象

ResultMap和ResultType的区别
resultType:设置结果类型,即查询的数据要转换为的java类型
resultMap:自定义映射,处理多对一或一对多的映射关系

<!--User getUserById();-->
    <select id="getUserById" resultType="com.mybatis.pojo.User">
        select * from t_user where id=1;
    </select>
@Test
    public void testGetUserById(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        User user=userMapper.getUserById();
        System.out.println(user);
        sqlSession.close();
    }

5、查询list集合

<!--  List<User> getAllUser();  -->
    <select id="getAllUser" resultType="User">
        select * from t_user;
    </select>
@Test
    public void testGetAllUser(){
        SqlSession sqlSession=SqlSessionUtil.getSqlSession();
        UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
        List<User> list=userMapper.getAllUser();
        list.forEach(System.out::println);
        sqlSession.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值