mybatis框架的關聯配置:
首先假設我們數據庫中有兩個表,一個表示move,另一個是moveType,move里面有一個字段typeid,與moveType表里面的id相對應。相信大家已經看出來了,一個moveType對應多個move,我們查詢move字段的時候,必要的時候得顯示moveType的內容,比如我的move的name是:《A計劃>,那么對應的我的moveType就是動作片,而不是直接顯示的id,有人說這不就是sql的內連接查詢么?非也,你用sql的內連接是顯示不出來MoveType里面的name的,那么,對于這種情況我們該怎么查詢呢?怎么配置呢?
從最基本的實體類開始:
首先我們創建一個Move的實體類,與數據庫中的move表相對應,代碼如下:
public class Move {
private Long id; //電影id
private MoveType type; //電影類型
private String name; //電影名稱
private String actor; //電影主演
private String director; //電影導演
private Integer price; //電影價格
}
在這里我們省略getter和setter方法,直接在創建一個實體類,MoveType,此類與數據庫中的moveType表相對應,代碼如下:
public class MoveType {
private Integer id;
private String typeName;
}
同樣我們省略getter和setter方法,咱們在去建一個dao接口,IMoveDao,與Move類相對應,代碼如下:
public interface IMoveDao {
/**
*
* @Title: saveMove
* @Description: 添加電影
* @param @param move
* @param @return 設定文件
* @return int 返回類型
* @throws
*/
public int saveMove(Move move);
/**
*
* @Title: queryMoveByTerm
* @Description: 動態查詢電影
* @param @param mt
* @param @return 設定文件
* @return List
* @throws
*/
public List
}
接著在創建個IMoveTypeDao接口類,與實體類MoveType相對應:
public interface IMoveTypeDao {
/**
*
* @Title: getAllMoveTypes
* @Description: 查詢全部的電影類型
* @param @return 設定文件
* @return List
* @throws
*/
public List
}
光有了實體類和dao接口還遠遠不夠,正兒八經的配置還沒開始呢。
我們先配置MoveDaoMapper.xml的映射文件,同樣,此映射文件對應的是IMoveDao接口,這個比較復雜,咱們慢慢的來,代碼如下:
(1)先把頭部拿出來:
<?xml version=“1.0” encoding=“UTF-8” ?>
<!DOCTYPE mapper>
PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>
(2)映射Move實體類的字段屬性
<!-- 映射Move實體類的字段屬性 -->
<!-- type=“move” 等價于type=“org.entity.Move”-->
<!-- 關聯MoveType實體類, -->
<!-- type:實體類Move中的type對象 -->
<!-- typeid:數據表Move的typeid -->
<!-- selectMoveType:映射的是實體類MoveType -->
select=“selectMoveType” />
(3)映射實體類MoveType
<!-- 映射實體類MoveType -->
<!-- type=“moveType” 等價于type=“org.entity.MoveType”一樣 -->
(4)對應的moveType的映射
<!-- selectMoveType與上面MoveType實體類的select相對應 -->
<!-- moveTypeMapper與上面映射實體類MoveType的id相對應 -->
select * from movetype where id=#{typeid}
(5)下面就是咱們在Dao層里面方法的sql實現了
<!-- 添加電影 -->
insert into
move
(id,typeId,name,actor,director,price)
values
(#{id},#{type.id},#{name},#{actor},#{director},#{price})
<!-- 動態查詢電影 -->
最后記得用
到此,我們的MoveDaoMapper.xml的配置就結束了,下面我們來配置一下MoveTypeDaoMapper.xml,請看代碼:
?<?xml version=“1.0” encoding=“UTF-8” ?>
<!DOCTYPE mapper>
PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>
select * from movetype
這里面只有一個查詢所有電影類型的方法,所以比較簡單,重點和難點還是都在MoveDaoMapper.xml里面,最后我在附加一個動態查詢的條件類吧:
?public class MoveTerm {
private Long id; //電影id
private MoveType type; //電影類型
private String name; //電影名稱
private String actor; //主演
private String director; //導演
private Integer smallPrice; //最低價格
private Integer bigPrice; //最高價格
}
省略getter和setter方法。
好了,配置到此結束。
評論
查看更多