1. 程式人生 > >Mybatis的一些小技巧

Mybatis的一些小技巧

提升sql執行效率的小技巧

<!--為什麼要這麼寫?這樣寫可以提高sql的執行效率。而寫*,需要Oracle去資料庫查出欄位名,再拼接查詢-->
<sql id="Base_Column_List" >
    ID, PRO_PARAM_DETAIL_ID, START_VALUE, END_VALUE, SCORE_CONTENT, CREATE_DATE, DATA_FLAG
</sql>
<select id="selectStuProScoreList" resultMap="BaseResultMap">
	select
	<include refid="Base_Column_List"/>
	from ASSESS_STU_PRO_SCORE
</select>
查詢主表是一條資料、副表是多條資料時的小技巧。展開的一對多的資料格式。多對多則外面接List


po實體類
public class BaseLoginUser{
    private Integer id;

    private String userName;

    private List<BaseRoleList> roleList;

    get和set方法。
}

Mapper層
public BaseLoginUser updUserById(Integer id);

<resultMap type="com.jykj.po.powermanage.BaseLoginUser" id="baseLoginRoleInfo">
    //表1的資料一一對應
    <id column="id" property="id"/>
    <result column="username" property="userName"/>
    <collection property="roleList" ofType="com.jykj.po.powermanage.BaseRoleList">
        //表2的資料一一對應
		<id column="roleId" property="id"/>
		<result column="rolename" property="roleName"/>
	</collection>
</resultMap>
<!-- magen 2018/8/7 使用者管理,修改使用者,查詢使用者資訊。輸入使用者ID -->
<select id="updUserById" parameterType="Integer" resultMap="baseLoginRoleInfo">
	select * from 表1 left join 表2 on 表1.列=表2.列 where 表1.id=#{id}
</select>