mybatis中DAO实现(四)

来源:互联网 发布:危险品资格证考试软件 编辑:程序博客网 时间:2024/06/05 06:42

    今天我们简单来看一下mybatis中DAO的实现,mybatis是如何开发dao的,我们一起简单学习一下。


    1、创建dao包,首先我们在dao包下建立userdao.java接口,代码如下

public interface UserDao {   //根据ID查询用户public User findUserById(int id) throws Exception;//模糊查询用户public List<User> findUserByName(String name) throws Exception;//添加用户public void insertUser(User user) throws Exception;//删除用户public void deleteUser(int id) throws Exception;  }

    2、在dao包下,建立userdao.java接口的实现类userdaoimpl.java,实现代码如下

public class UserDaoImpl implements UserDao{// 向DAO实现类中注入sqlsessionfactory // 通过构造方法注入private SqlSessionFactory sqlSessionFactory;public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}@Overridepublic User findUserById(int id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();User user = sqlSession.selectOne("test.findUserById", id);// 释放资源sqlSession.close();return user;}@Overridepublic List<User> findUserByName(String name) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();List<User> list = sqlSession.selectList("test.findUserByName", name);// 释放资源sqlSession.close();return list;}@Overridepublic void insertUser(User user) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();//执行插入操作sqlSession.insert("test.insertUser", user);// 提交事务sqlSession.commit();// 释放资源sqlSession.close();}@Overridepublic void deleteUser(int id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();//执行删除操作sqlSession.delete("test.deleteUser", id);// 提交事务sqlSession.commit();// 释放资源sqlSession.close();}}
    3、单元测试,测试写的dao是否可用。在dao实现类上右击,new--others--junit--junit test cast,点击next,在source folder处选择将测试文件夹放在哪个目录下。完成后,会有一个新建的类userdaoimpltest.java,在该类下写测试代码

public class UserDaoImplTest {private SqlSessionFactory sqlSessionFactory;// 此方法是在执行testFindUserById之前执行@Beforepublic void setUp() throws Exception {// 创建sqlSessionFactory// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);// 创建会话工厂,传入mybatis的配置文件信息sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {// 创建UserDao的对象UserDao userDao = new UserDaoImpl(sqlSessionFactory);// 调用UserDao的方法User user = userDao.findUserById(1);System.out.println(user);}}
    4、运行测试方法。在usredaoimpltest.java下,选中测试的方法名,右击debug as--junit test,观察输出结果,完成测试。


    至此,整个dao的开发测试完成,在此基础上,下篇博客我们学习mapper代理是如何实现的。