Mybatis中編寫dao層實現類

User的實現類

public class IUserDaoImpl implements IUserDao {
    private SqlSessionFactory factory;

    public IUserDaoImpl() {
    }

    public IUserDaoImpl(SqlSessionFactory factory) {
        this.factory = factory;
    }

    @Override
    public List<User> findAll() {
        SqlSession session = factory.openSession();
        List<User> users = session.selectList("com.sx.dao.IUserDao.findAll");
        session.close();
        return users;
    }

    @Override
    public void saveUser(User user) {
        SqlSession session = factory.openSession();
        session.insert("com.sx.dao.IUserDao.saveUser", user);
        session.commit();
        session.close();
    }

    @Override
    public void updateUser(User user) {
        SqlSession session = factory.openSession();
        session.update("com.sx.dao.IUserDao.updateUser", user);
        session.commit();
        session.close();
    }

    @Override
    public void deleteUser(Integer userId) {
        SqlSession session = factory.openSession();
        session.delete("com.sx.dao.IUserDao.deleteUser", userId);
        session.commit();
        session.close();
    }

    @Override
    public User findById(Integer userId) {
        SqlSession session = factory.openSession();
        User user = session.selectOne("com.sx.dao.IUserDao.findById", userId);
        session.close();
        return user;
    }

    @Override
    public List<User> findByName(String username) {
        SqlSession session = factory.openSession();
        List<User> users = session.selectList("com.sx.dao.IUserDao.findByName", username);
        session.close();
        return users;
    }

    @Override
    public int countUsers() {
        SqlSession session = factory.openSession();
        int count = session.selectOne("com.sx.dao.IUserDao.countUsers");
        session.close();
        return count;
    }
}

測試類

public class MybatisTest {
    private InputStream is;
    private IUserDao iud;

    @Before
    public void init() throws IOException {
        is = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
        SqlSessionFactory ssf = ssfb.build(is);
        iud = new IUserDaoImpl(ssf);
    }

    @After
    public void destroy() throws Exception {
        is.close();
    }

    /**
     * 查詢所有
     *
     * @throws Exception
     */
    @Test
    public void testFindAllUser() throws Exception {
        List<User> users = iud.findAll();
        for (User user : users) {
            System.out.println(user);
        }
    }

    /**
     * 測試保存用戶
     */
    @Test
    public void testSave() throws Exception {
        User user = new User();
        user.setUsername("趙六");
        user.setBirthday(new Date());
        user.setSex("男");
        user.setAddress("福建福州");
        iud.saveUser(user);
    }

    /**
     * 測試更新用戶信息
     *
     * @throws Exception
     */
    @Test
    public void testUpdate() throws Exception {
        User user = new User();
        user.setId(42);
        user.setUsername("李四");
        user.setBirthday(new Date());
        user.setSex("男");
        user.setAddress("福建福州");

        iud.updateUser(user);
    }

    /**
     * 根據id刪除用戶信息
     *
     * @throws Exception
     */
    @Test
    public void testDelete() throws Exception {
        iud.deleteUser(42);
    }

    /**
     * 根據id查找用戶信息
     *
     * @throws Exception
     */
    @Test
    public void testFindById() throws Exception {
        User user = iud.findById(49);
        System.out.println(user);
    }

    /**
     * 根據姓名模糊查找用戶信息
     *
     * @throws Exception
     */
    @Test
    public void testFindByName() throws Exception {
        //List<User> users = iud.findByName("張%");
        List<User> users = iud.findByName("張");
        for (User user : users) {
            System.out.println(user);
        }
    }

    /**
     * 聚合函數的使用
     *
     * @throws Exception
     */
    @Test
    public void testCountUsers() throws Exception {
        int count = iud.countUsers();
        System.out.println(count);
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章