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);
}
}