Day12(Mybatis的Dao層實現)49
阿新 • • 發佈:2021-08-02
1.Mybatis的Dao層實現
1.1 傳統開發方式
1.編寫UserDao介面
public interface UserDao {
List<User> findAll() throws IOException;•}
2.編寫UserDaoImpl實現
public class UserDaoImpl implements UserDao {
public List<User> findAll() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
List<User> userList = sqlSession.selectList("userMapper.findAll");
sqlSession.close();
return userList;
}
}
3.測試傳統方式
1.2 代理開發方式
1.代理開發方式介紹
採用 Mybatis 的代理開發方式實現 DAO 層的開發,這種方式是我們後面進入企業的主流。 Mapper 介面開發方法只需要程式設計師編寫Mapper 介面(相當於Dao 介面),由Mybatis 框架根據介面定義建立介面的動態代理物件,代理物件的方法體同上邊Dao介面實現類方法。 Mapper 介面開發需要遵循以下規範:
-
Mapper.xml檔案中的namespace與mapper介面的全限定名相同
-
Mapper介面方法名和Mapper.xml中定義的每個statement的id相同
-
Mapper介面方法的輸入引數型別和mapper.xml中定義的每個sql的parameterType的型別相同
-
Mapper介面方法的輸出引數型別和mapper.xml中定義的每個sql的resultType的型別相同
2.編寫UserMapper介面
3.測試代理方式
1.3 知識小結
MyBatis的Dao層實現的兩種方式:
-
手動對Dao進行實現:傳統開發方式
-
代理方式對Dao進行實現: UserMapper userMapper = sqlSession.getMapper(UserMapper.class);