<mapper>是<mappers>子標簽
我們平常在做數據庫操作的時候先要獲取到sqlSession對象
String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); System.out.println(sqlSessionFactory); SqlSession sqlSession=sqlSessionFactory.openSession();
sqlSession操作數據有幾種方法
①sqlSession.selectOne("String",Object)(這里就舉一個select的例子)
User user=sqlSession.selectOne("dao.UserMapper.selectUserById", 2);
這里的dao.UserMapper.selectUserById就是mapper.xml中的 namespace+id(唯一標志符)
這個時候就與dao層沒有多大關系,因為直接調用xml文件。
②sqlSession.getMapper()方法
UserMapper userMapper=sqlSession.getMapper(dao.UserMapper.class); //創建出userMapper的代理對象
這里創建出UserMapper的代理對象,但是並不知道操作數據庫的語言。
所以就要進行動態綁定
方法一:
就是將xml文件里<mapper namespace=" UserMapper的全類名">
<mapper namespace="dao.UserMapper"> <select id="selectUserById" resultType="bean.User"> //這里的id是和Usermapper的方法名一樣 select * from user where id=#{id} </select> </mapper>
③注解的方式
在Dao層里的UserMapper接口上面用注解方式開發,但是<mapper 必須使用class=“xxx”>
public interface UserMapperAnnotion { @Select("select * from user where id=#{id}") public User getUserById(int id); }
<mapper 一共有三種引用的方式>
①:<mapper source=" "> :這種引用方式是引用類路徑下的引用xml文件
②:<mapper url=" "> :這種方式是使用絕對路徑或者是磁盤路徑,引用xml文件
③:<mapper class=" "> :這種方式是用來引用“接口”的文件,使用的時候切記將mapper.xml文件和mapper文件放在同一個包下面(猜測是會通過某種方式尋找到同名的xml文件,從而讀取sql語句)