mapper入参泛型
时间: 2023-08-19 17:08:55 浏览: 78
在Java中,Mapper的入参泛型通常指的是MapReduce框架中的Mapper类的输入键值对的数据类型。在Hadoop中,Mapper的入参泛型是由两个类型参数组成的,分别是输入键的类型和输入值的类型。通常情况下,Mapper类的定义如下:
```java
public class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
// ...
}
```
在上面的例子中,`LongWritable`表示输入键的类型,`Text`表示输入值的类型。根据实际需求,你可以根据自己的数据类型来调整这些参数。
相关问题
mapper文件写泛型方法代码
在MyBatis的mapper文件中,可以使用泛型方法来实现通用的增删改查操作。下面是一个示例代码:
```xml
<!-- 定义一个通用的mapper接口 -->
public interface BaseMapper<T> {
int insert(T record);
int deleteByPrimaryKey(Integer id);
int updateByPrimaryKey(T record);
T selectByPrimaryKey(Integer id);
}
<!-- 在mapper文件中使用泛型方法 -->
<mapper namespace="com.example.mapper.BaseMapper">
<insert id="insert" parameterType="T">
INSERT INTO ${tableName} (${columns}) VALUES (${values})
</insert>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
DELETE FROM ${tableName} WHERE id = #{id}
</delete>
<update id="updateByPrimaryKey" parameterType="T">
UPDATE ${tableName} SET ${setColumns} WHERE id = #{id}
</update>
<select id="selectByPrimaryKey" resultType="T">
SELECT * FROM ${tableName} WHERE id = #{id}
</select>
</mapper>
```
这样,我们就可以通过继承BaseMapper接口来实现对任意类型的表进行增删改查操作了。例如:
```java
public interface UserMapper extends BaseMapper<User> {
// 自定义查询方法
List<User> selectByUsername(String username);
}
```
在service层传入mapper 泛型方法
在 Service 层传入 Mapper 泛型方法,可以使用 Spring 提供的通用 Mapper 插件来简化开发。使用通用 Mapper 插件后,我们只需要编写对应实体类的 Mapper 接口,并让 Service 层继承通用 Service 接口即可。
以下是一个示例:
1. 实体类
```java
public class User {
private Long id;
private String name;
private Integer age;
// getter 和 setter 略
}
```
2. Mapper 接口
```java
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User> {
}
```
3. Service 接口
```java
public interface UserService extends IService<User> {
}
```
4. Service 实现类
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
```
在以上示例中,我们使用了通用 Mapper 插件提供的 `tk.mybatis.mapper.common.Mapper` 泛型接口来实现对应实体类的 Mapper 接口,Service 层继承了通用 Service 接口 `com.baomidou.mybatisplus.extension.service.IService`,并在实现类中指定了对应的 Mapper 类型,这样就可以使用 Mapper 中提供的 CRUD 方法了。
阅读全文