• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

通用mapper入门

互联网 diligentman 2周前 (01-14) 6次浏览

1、了解通用mapper

通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。极其方便的使用MyBatis单表的增删改查。支持单表操作,不支持通用的多表联合查询。

2、通用mapper使用

1、 引入依赖

<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper</artifactId>
   <version>4.1.5</version>
</dependency>

2、 spring集成

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
		<!--扫描所有dao接口的实现,加入到ioc容器中 -->
	<property name="basePackage" value="cn.jiyun.dao"></property>
	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

3、实体类

通用mapper中,每个实体类,就对应一个表,通过使用一些注解(全部是JPA中的注解),可以关联到每个字段,具体使用demo如下:

注解 含义 使用
@Table 指定关联的表,用在类上 @Table(name=“表名”)
类名和表名默认对应规则为:驼峰转下划线
如果符合默认规则,此注解可以省略
@Column 指定列名,用在字段上 @Column(name = “字段名称”)
字段名和列名默认对应规则为:驼峰转下划线
如果符合默认规则,此注解可以省略
@Id 标识字段为主键,用在字段上 @Id,用在主键对应的字段上即可,必填,可以有多个此注解,代表联合主键
@Transient 标识此字段不对应表中的列 @Transient,用在实体类中自定义的额外字段
不对应具体表中字段,添加修改时会自动忽略
如果有自定义的额外字段,此注解必填
@GeneratedValue 指定主键生成策略 @GeneratedValue(generator = “JDBC”)数据库自增ID,可以取出由数据库内部生成的主键
@GeneratedValue(strategy = GenerationType.IDENTITY)数据库自增ID,不能取回ID值
@GeneratedValue(generator = “UUID”),随机数ID
@Table(name="dept")//对应数据库表明dept2
public class Dept2{
    @Id
    private Integer id;
    private String deptName;//对应数据库字段为:dept_name
    private String deptcode;//默认对应数据库字段为:deptcode
}

4、dao层使用

继承tk.mybatis.mapper.common.Mapper<T>,T对应泛型,就是实体类,代表要操作的表

public interface CountryMapper extend Mapper<Country2>{
    //不用动也不用管,直接在service调用对应方法即可
}

5、 默认实现的方法

方法 说明
T selectByPrimaryKey(Object key); 根据主键字段进行查询
方法参数必须包含完整的主键属性
查询条件使用等号
实体类必须有@Id注解标识,否则所有字段都会作为查询条件
List<T> select(T record); 根据实体中的属性值进行查询
查询条件使用等号
List<T> selectAll(); 查询全部结果,select(null)方法能达到同样的效果
T selectOne(T record); 根据实体中的属性进行查询
只能有一个返回值,有多个结果是抛出异常,查询条件使用等号
int selectCount(T record); 根据实体中的属性查询总数
查询条件使用等号
  • 添加
方法 说明
int insert(T record); 保存一个实体
null的属性也会保存,不会使用数据库默认值
int insertSelective(T record); 保存一个实体
null的属性不会保存,会使用数据库默认值
  • 修改
方法 说明
int updateByPrimaryKey(T record); 根据主键更新实体全部字段,null值会被更新
int updateByPrimaryKeySelective(T record); 根据主键更新属性不为null的值
  • 删除
方法 说明
int delete(T record); 根据实体属性作为条件进行删除,查询条件使用等号
int deleteByPrimaryKey(Object key); 根据主键字段进行删除,方法参数必须包含完整的主键属性

喜欢 (0)