その他の点MyBatisの知識ベース(B)xmlファイル

いくつかのタグを使用してMyBatisのxmlファイル

  1. この構成は主にラベル「エイリアス」として使用されている
    場合は、エンティティクラスのフィールド名は、小文字を区別しない同じ場合には、データベースに
    MySQLデータベースが大文字と小文字を区別しませんので、それは、このresultMapの設定を必要としない、直接にマッピングすることができます

    データベースのフィールド名にエンティティクラスが同じでない場合は、私たちは、このプログラムは3つのソリューションから構成することができます
    1. 直接データベースのフィールド名を変更し、そのエンティティクラスに対応する上で
    2. 変換SQL文、別名、そのマッピングエンティティクラスのためのプログラムファイル内に配置された(SQLステートメントが直接、より効率を動作させる)
      など:usergender、など年齢と性別を選択し 、ユーザからuserage。
    3. コンフィギュレーション・ファイルこのresultMapを書く、マップようにしていますが、このresultMap =「ユーザマップ」(簡単に)としてresultTypeと=「com.mybatis.entry.User」を変更する必要があります
 <resultMap id="userMap" type="com.mybatis.entry.User">
        <!--首先配置主键对应-->
        <id column="uid" property="userUid"></id>
        <!--其他属性配置-->
        <result column="username" property="userName"></result>
        <result column="gender" property="userGender"></result>
        <result column="age" property="userAge"></result>
</resultMap>

2.typeAliasesタグ
の主な役割は、テキストの一部の開発を容易にします、別名である
ところ効果typeAlias:タイプ指定されたクラス、エイリアスエイリアス

如这里修改了User.class的名字为user,  则在User.xml中的com.mybatis.entry.User全部可以改成user  或者 他的任意大小写形式,这里不区分大小写的
package的作用: 指定包,该包下所有的类都建立的别名,别名默认为该类的小写形式,同样不区分大小写
    <typeAliases>
        <!--        <typeAlias type="com.mybatis.entry.User" alias="user"></typeAlias>-->
        <package name="com.mybatis.entry"></package>
    </typeAliases>

3。

<mappers>
                <mapper resource="com/mybatis/dao/IUserDao.xml"></mapper>
        <!--package 指定dao接口所在的包,当指定后不需要再写mapper以及resource或者class了-->
<!--        <package name="com.mybatis.dao"></package>-->
    </mappers>

4.時間は、実質的にエンティティ・クラスを含む他の条件は、エンティティが全ての条件が新しいエンティティクラスによって必要とされるにクラスを作成することができたときに複数の条件は、タグ問合せ条件のために使用することができる含む場合アクセス条件を実行します

<select id="findByCondition" parameterType="user"  resultType="user">
        select * from user
        <!-- 这里的userName 对应的也是实体类中的属性-->
        <where>
            <if test="userName!=null">
                 username=#{userName}
            </if>
            <if test="gender!=null">
                and gender=#{gender}
            </if>
        </where>
    </select>

     <!--多个id,新建实体类,传入id集合,并用foreach标签遍历ids-->
    <select id="findByIds" parameterType="vo"  resultType="user">
        select * from user
        <!-- 这里的userName 对应的也是实体类中的属性-->
        <where>
            <if test="ids !=null and ids.size()>0">
                <foreach collection="ids" open=" uid in (" close=")"  item="uid" separator=",">
                    #{uid}
                </foreach>
             </if>
        </where>
    </select>

繰り返されるSQLステートメントを使用することができる5. 抽出SQLタグを付ける。そして、文の中で使用さ それを含めます

 <!--提取sql语句,避免重复-->
    <sql id="defaultUser" >
        select * from user
    </sql>
    <!--获得所有用户列表-->
    <!--<select id="getUsers" resultMap="userMap">-->
    <select id="getUsers" resultType="com.mybatis.entry.User">
        <include refid="defaultUser"></include>
        // select * from user
    </select>

おすすめ

転載: www.cnblogs.com/chq1024/p/11564726.html