Dao层中创建了接口之后 然后又创建Mapper.xml配置文件有什么用?
时间: 2024-04-12 10:33:02 浏览: 161
在Dao层中创建接口是为了定义数据访问的操作方法,而Mapper.xml配置文件则是用来实现这些接口方法的体SQL语句。
Mapper.xml配置文件的作用如下:
1. SQL语句的存放:Mapper.xml文件中可以编写SQL语句,包括查询、插入、更新、删除等操作。这些SQL语句可以通过调用接口方法来执行,从而实现对数据库的操作。
2. 参数映射:Mapper.xml文件中可以定义SQL语句的参数映射,将Java对象的属性与SQL语句中的参数进行对应。这样,在调用接口方法时,可以将Java对象作为参数传入,Mapper.xml文件会将对象的属性值自动映射到SQL语句中。
3. 结果映射:Mapper.xml文件中可以定义SQL语句的结果映射,将查询结果与Java对象进行关联。通过配置结果映射,可以将查询结果自动映射到Java对象中,简化了数据的处理和转换过程。
4. SQL语句的复用:Mapper.xml文件中的SQL语句可以被多个接口方法共享和复用。通过在Mapper.xml文件中定义SQL语句,可以避免在每个接口方法中都写重复的SQL代码,提高代码的重用性和维护性。
总结起来,Mapper.xml配置文件的作用是将接口方法与具体的SQL语句进行关联,实现了数据访问层的解耦和灵活性。它是一种常用的将Java与数据库操作进行对接的方式。
相关问题
mapper.xml配置头文件
这个问题属于技术问题,我可以回答。在mapper.xml文件中,通常需要引入mybatis的命名空间,可以在头文件中添加以下代码:
```
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
```
同时,还需要引入对应的Java类,可以使用以下代码:
```
<mapper namespace="com.example.dao.UserDao">
```
其中,com.example.dao.UserDao是对应的Java类的全限定名。
口(添上@Mapper注解,表明这时一个mapper接口,使用其操作数据库),service实现类,mapper.xml文件(3).在application.yml配置文件中配置mybatis规则
在Spring Boot项目中,`@Mapper`注解用于MyBatis框架中,它是一个特殊的注解,标记在DAO层(Data Access Object)的接口上,表示这个接口对应着数据库的映射。当运行时,Spring会自动扫描带有`@Mapper`注解的接口,并生成相应的实现类(Mapper XML文件的编译结果),提供对数据库的操作。
例如,你可能会有一个这样的接口:
```java
// UserMapper.java
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper {
List<User> findAll();
User findById(int id);
}
```
在这个例子中,`UserMapper`接口定义了查询所有用户和单个用户的方法。
对应的`mapper.xml`文件(通常位于resources/mapper目录下)会有动态SQL的定义,如查询语句,这里不做展示,因为它是XML形式的。
在`application.yml`(或者`.properties`)配置文件中,你可以设置MyBatis的相关属性,比如数据源、事务管理等。例如:
```yaml
spring:
mybatis:
# 数据源配置
type-aliases-package: com.example.entity
mapper-locations: classpath:mapper/*.xml
# SQLSessionFactoryBean的配置
sqlSessionFactoryRef: sqlSessionFactory
# 自动扫描mapper接口
mapper-interfaces: com.example.mapper.*
# 其他配置项...
```
这里配置了数据源包路径、mapper XML文件的位置,以及自动扫描mapper接口的前缀。`sqlSessionFactoryRef`指定了Spring如何获取已经创建好的`SqlSessionFactory`实例。
阅读全文