通用mapper入門

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、 默認實現的方法
查詢

 // 根據實體中的屬性值進行查詢查詢條件使用等號     
 
    public List<Hobby> findHobby(Hobby t) throws Exception {
   
    
        return hobbyMapper.select(t);  
    }
    

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

添加


  //保存一個實體<br>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);
	};
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章