02mybatis添加数据操作(xml配置的方式)

mybatis添加数据操作(xml配置的方式)

第一步:在上一个的基础上,在IUserDao接口中添加保存用户的方法

    /**
     * 保存用户
     * @param user
     */
    void saveUser(User user);

第二步:在IUserDao.xml映射文件下添加保存用户的sql语句

<!--    保存用户-->
    <insert id="saveUser" parameterType="chen.domain.User">
        insert into user(username,birthday,sex,address)values (#{username},#{birthday},#{sex},#{address})
    </insert>

第三步:test文件下测试saveUser方法

把一些重复的部分整合为到init()方法以及destroy() 方法下分别使用@Before和@After注解

以在测试之前和测试之后自动执行init()和destroy()方法。

package chen;

import chen.dao.IUserDao;
import chen.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.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;

/**
 * 测试mybatis的crud操作
 */
public class test {
    private InputStream in;
    private SqlSession session;
    private IUserDao userDao;
    @Before
    public void init() throws IOException {
        //读取配置文件,生成字节输入流
        in= Resources.getResourceAsStream("SqlMapConfig.xml");
        //获取sqlsessionfactory对象
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);
        //获取sqlsession对象
        session=factory.openSession();
        //获取dao的代理对象
        userDao=session.getMapper(IUserDao.class);
    }
    @After
    public void destroy() throws IOException {
        //提交事务
        session.commit();
        //关闭资源
        session.close();
        in.close();
    }
    /**
     * 查询所有
     */
    @Test
    public void testFindAll() throws IOException {
        //执行查询所有方法
        List<User> users=userDao.findAll();
        for (User u:users) {
            System.out.println(u);
        }
    }

    /**
     * 测试保存操作
     */
    @Test
    public void testsave() throws IOException {
        User user=new User();
        user.setUsername("王康");
        user.setAddress("钓鱼岛");
        user.setBirthday(new Date());
        user.setSex("男");
        //执行保存方法
            userDao.saveUser(user);

    }
}
posted @ 2020-05-26 20:25  陈国松  阅读(978)  评论(0编辑  收藏  举报