1、原始dao的開發
1.1 創建映射文件
1.2 新建Dao接口
public interface UserDao {
User getUserById(Integer id);
List<User> getUserByUserName(String name);
void insertUser(User user);
}
1.3新建接口實現類
public class UserDaoImpl implements UserDao {
@Override
public User getUserById(Integer id) {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
User user = sqlSession.selectOne("user.getUserById", id);
sqlSession.close();
return user;
}
@Override
public List<User> getUserByUserName(String name) {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
List<User> list = sqlSession.selectList("user.getUserByName", name);
sqlSession.close();
return list;
}
@Override
public void insertUser(User user) {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
sqlSession.insert("user.insertUser", user);
sqlSession.commit();
sqlSession.close();
}
}
1.4 使用dao進行測試
public class UserDaoTest {
@Test
public void testGetUserById() {
UserDao userDao = new UserDaoImpl();
User user = userDao.getUserById(30);
System.out.println(user);
}
@Test
public void testGetUserByUserName() {
UserDao userDao = new UserDaoImpl();
List<User> list = userDao.getUserByUserName("張");
for (User user : list) {
System.out.println(user);
}
}
@Test
public void testInsertUser() {
UserDao userDao = new UserDaoImpl();
User user = new User();
user.setUsername("張飛3");
user.setAddress("深圳市黑馬");
user.setBirthday(new Date());
user.setSex("1");
userDao.insertUser(user);
}
}
2 動態代理dao開發規則
2.1 動態代理dao開發規則
- namespace必需是接口的全路徑名
- 接口的方法名必需與映射文件的sql id一致
- 接口的輸入參數必需與映射文件的parameterType類型一致
- 接口的返回類型必須與映射文件的resultType類型一致
2.2 開發步驟
2.2.1 創建映射文件
2.2.2 創建接口,注意開發規則
2.2.3 在覈心配置文件中加載映射文件
2.2.4 測試動態代理Dao
public class UserMapperTest {
@Test
public void testGetUserById() {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(30);
System.out.println(user);
sqlSession.close();
}
@Test
public void testGetUserByUserName() {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> list = userMapper.getUserByName("張");
for (User user : list) {
System.out.println(user);
}
sqlSession.close();
}
@Test
public void testInsertUser() {
SqlSession sqlSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User();
user.setUsername("張飛飛");
user.setAddress("上海市");
user.setBirthday(new Date());
user.setSex("1");
userMapper.insertUser(user);
sqlSession.commit();
sqlSession.close();
}
}