通用mapper入门

1、了解通用mapper

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

2、通用mapper使用


1、 引入依赖

<dependency>
   <groupId>tk.mybatisgroupId>
   <artifactId>mapperartifactId>
   <version>4.1.5version>
dependency>

2、 spring集成

<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
		
	<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对应泛型,就是实体类,代表要操作的表

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

5、 默认实现的方法
查询

 // 根据实体中的属性值进行查询查询条件使用等号     
 
    public List<Hobby> findHobby(Hobby t) throws Exception {
     
        return hobbyMapper.select(t);  
    }
    

 // 查询所有
 
    public List<Hobby> findHobby() throws Exception {
     
        return hobbyMapper.selectAll();  
    }
    

添加


  //保存一个实体
null的属性也会保存,不会使用数据库默认值
public void addUser(User t) throws Exception { userMapper.insert(t); };

删除


  // 根据主键字段进行删除,方法参数必须包含完整的主键属性
	public void deleteUser(Integer id) throws Exception {
     
		userMapper.deleteByPrimaryKey(id);
	};
    

修改


 // 根据主键更新属性不为null的值    
	public void updateUser(User t) throws Exception {
     
		userMapper.updateByPrimaryKeySelective(t);
	};
    

你可能感兴趣的