(5)Mybatis - 添加操作,简化代码

本文在前文(4)的基础上,详细介绍了如何在Mybatis中进行添加操作,包括在UserDao中添加方法,配置映射文件,设置parameterType以指定参数类型为User。同时,文章讲解了value值的正确写法,强调应与实体类属性对应。此外,还讨论了测试类的编写,如何初始化和释放资源,以及在测试前后使用注解管理资源。最后,针对插入数据库时出现问号问题给出了解决方案。
摘要由CSDN通过智能技术生成

我们在(4)中基础上,在添加增删改查的操作,代码和具体目录请看(4)Mybatis - 回顾实现查询所有功能

  1. 首先我们在UserDao中添加方法

在这里插入图片描述

  1. 映射文件中写一个对应的配置
  • 但是我们insert时value 我们不能写问号,我们要取值 所以取值的类型,我们要告诉sql语句 我们有一个什么样的参数
  • 我们添加属性 parameterType 的含义就是参数的类型,而目前我们的参数类型是User
  • 按照Mybatis的要求去写value值,注意:value中要与实体类的属性来提供,实体类的名称一致

在这里插入图片描述

  1. 添加测试类
  • 添加testSave()方法
  • 但是要关闭资源,我们把这个变量定义到外面去
  • 因为前面的代码都相同,我们再定义一个方法init ()用来创建
  • 在定义一个方法, destory()释放资源,注意:在释放资源之前,我们必须要提交事务
  • 在采用注解的方式,@Before,@After 在test之前创建资源和之后释放资源
import com.dao.UserDao;
import com.domain.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.io.InputStream;
import java.util.List;

public class MybatisTest {


    private InputStream in;
    private SqlSession sqlSession;
    private UserDao userDao;

    @Before//用于在测试方法之前执行
    public void init()throws Exception{
        //1.读取配置文件,生成字节输入流
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.获取SqlSessionFactory
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        //3.获取SqlSession对象
        sqlSession = factory.openSession();
        //4.获取dao的代理对象
        userDao = sqlSession.getMapper(UserDao.class);
    }

    @After//用于在测试方法之后执行
    public void destory()throws Exception{
        //5.提交事务
        sqlSession.commit();
        //6.释放资源
        sqlSession.close();
        in.close();
    }
    /**
     * 测试查询所有
     */
    @Test
    public void testFindAll(){
        //5.执行查询所有方法
        List<User> users = userDao.findAll();
        for(User user: users){
            System.out.println(user);
        }
    }

    /**
     * 测试保存操作
     */
    @Test
    public void testSave()throws Exception{
        User user = new User();
        user.setUsername("test");
        user.setAddress("成都市");
        user.setSex("男");
        user.setBirthday("2019");
        //5.执行查询所有方法
        userDao.saveUser(user);
    }
}


测试结果:
在这里插入图片描述
在这里插入图片描述
如果写入数据库的内容是??
解决办法:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值