mybatis dao接口与mapper怎么映射的
时间: 2024-05-02 21:20:16 浏览: 108
MyBatis中的DAO接口与Mapper是通过XML文件进行映射的。具体来说,DAO接口定义了数据库操作的方法,而Mapper则定义了这些方法在XML文件中的实现。
例如,假设有一个UserDAO接口和对应的UserMapper.xml文件:
```java
public interface UserDAO {
User selectUserById(int id);
}
```
```xml
<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
<select id="selectUserById" parameterType="int" resultType="com.example.model.User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
```
在这里,UserDAO接口中的selectUserById方法对应了UserMapper.xml中的select语句。MyBatis会根据namespace和id属性值来确定对应的SQL语句,并将参数和结果映射到Java对象中。
在使用MyBatis时,可以通过SqlSession.getMapper()方法获取DAO接口的实现,从而进行数据库操作。例如:
```java
SqlSession session = sessionFactory.openSession();
UserDAO userDao = session.getMapper(UserDAO.class);
User user = userDao.selectUserById(1);
session.close();
```
这会执行UserMapper.xml中定义的select语句,并将查询结果映射为User对象返回。
阅读全文