對單表進行增刪改查是項目中不可避免的需求,Mybatis的通用Mapper插件使這些操作變得簡單
添加maven依賴
在對應工程的pom.xml文件中添加
<dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.1.2</version> </dependency>
配置攔截器
在mybatis-config.xml文件中添加通用Mapper
<plugin interceptor="tk.mybatis.mapper.mapperhelper.MapperInterceptor">
<!--================================================-->
<!--可配置參數說明(一般無需修改)-->
<!--================================================-->
<!--UUID生成策略-->
<!--配置UUID生成策略需要使用OGNL表達式-->
<!--默認值32位長度:@java.util.UUID@randomUUID().toString().replace("-", "")-->
<!--<property name="UUID" value="@java.util.UUID@randomUUID().toString()"/>-->
<!--主鍵自增回寫方法,默認值MYSQL,詳細說明請看文檔-->
<property name="IDENTITY" value="HSQLDB"/>
<!--序列的獲取規則,使用{num}格式化參數,默認值為{0}.nextval,針對Oracle-->
<!--可選參數一共3個,對應0,1,2,分別為SequenceName,ColumnName,PropertyName-->
<property name="seqFormat" value="{0}.nextval"/>
<!--主鍵自增回寫方法執行順序,默認AFTER,可選值為(BEFORE|AFTER)-->
<!--<property name="ORDER" value="AFTER"/>-->
<!--通用Mapper接口,多個通用接口用逗號隔開-->
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
</plugin>
繼承通用Mapper<T>,必須指定泛型<T>
public interface ClubMapper extends Mapper<TClub>
{
}
繼承了Mapper<T>之后,就擁有了Mapper中的各種通用方法,具體可以查看源碼
泛型(表對象實體類)<T>要求
實體類需要按照如下規則和數據庫表進行轉換,注解全部是JPA中的注解,所以我們在maven中添加了它的jar包依賴
Mapper還提供了主鍵自增的方式
@Id @GeneratedValue(generator = "JDBC") @Column(name = "id") private Integer id;
添加Mapper配置
將繼承的Mapper接口添加到mybatis-config.xml文件中
<mappers> <mapper class="com.ind4.iss.icp.dao.logic.map.mapper.club.clubMapper" /> </mappers>
具體使用
public List<TClub> queryList() throws CcpException
{
SqlSession sqlSession = CcpDB.getInstance().getSession();
try
{
ClubMapper mapper = getMapper(sqlSession);
TClub tClub = new TClub();
return mapper.select(tClub);
}
catch (Exception e)
{
CcpLogger.getInstance().error(e, "TClubDAO.queryList, status=" + status);
throw new CcpException(CcpErrorCode.ERROR_CLUB_DAO_DB_ERROR, e);
}
finally
{
CcpDB.getInstance().closeSession();
}
}
private ClubMapper getMapper(SqlSession sqlSession)
{
return sqlSession.getMapper(ClubMapper.class);
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。