日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

Mybatis基于XML配置SQL映射器(二)

發(fā)布時(shí)間:2023/12/20 asp.net 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis基于XML配置SQL映射器(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Mybatis之XML注解

之前已經(jīng)講到通過?mybatis-generator 生成mapper映射接口和相關(guān)的映射配置文件:

?

下面我們將詳細(xì)的講解具體內(nèi)容

首先我們新建映射接口文檔 ?sysUserExtMapper.java,同時(shí)新增相關(guān)配置文件sysUserExtMapper.xml。通過操作這兩個(gè)類我們來講解具體內(nèi)容。

映射語句

MyBatis提供了多種元素來配置不同類型的語句,如SELECT,INSERT,UPDATE,DELETE。接下來讓我們看看如何具體配置映射語句。

INSERT語句

?一個(gè)INSERT SQL語句可以在<insert>元素在sysUserExtMapper.xml中配置,如下所示:

1 <insert id="insertsysUser" parameterType="com.goku.mybatis.model.sysUser"> 2 insert into sys_user (id, username, password, 3 name, sex, status, org_id, 4 email, idcard, is_admin, 5 sort, mobile, stationid 6 ) 7 values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 8 #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{orgId,jdbcType=VARCHAR}, 9 #{email,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR}, #{isAdmin,jdbcType=VARCHAR}, 10 #{sort,jdbcType=BIGINT}, #{mobile,jdbcType=VARCHAR}, #{stationid,jdbcType=LONGVARCHAR} 11 ) 12 </insert> View Code

同時(shí)在?sysUserExtMapper.java接口中添加相應(yīng)的方法

1 package com.goku.mybatis.mapper.ext; 2 3 import com.goku.mybatis.model.sysUser; 4 import org.apache.ibatis.annotations.Param; 5 6 import java.util.List; 7 import java.util.Map; 8 9 /** 10 * Created by nbfujx on 2017/10/14. 11 */ 12 public interface sysUserExtMapper { 13 14 int insertsysUser(sysUser sysuser)); 15 } View Code

?增加相對(duì)應(yīng)單元測(cè)試查看相關(guān)效果

1 package test.com.goku.mybatis.mapper.ext; 2 3 import com.goku.mybatis.WebapiApplication; 4 import com.goku.mybatis.mapper.ext.sysUserExtMapper; 5 import com.goku.mybatis.model.sysUser; 6 import com.goku.mybatis.service.impl.sysUserServiceImpl; 7 import org.junit.Test; 8 import org.junit.runner.RunWith; 9 import org.slf4j.Logger; 10 import org.slf4j.LoggerFactory; 11 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.boot.test.context.SpringBootTest; 13 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 14 15 import static org.junit.Assert.*; 16 17 /** 18 * Created by nbfujx on 2017/10/23. 19 */ 20 @RunWith(SpringJUnit4ClassRunner.class) 21 @SpringBootTest(classes = WebapiApplication.class) 22 public class sysUserExtMapperTest { 23 24 private Logger logger = LoggerFactory.getLogger(sysUserExtMapperTest.class); 25 26 @Autowired 27 private sysUserExtMapper sysuserextmapper; 28 29 @Test 30 public void insertsysUser() throws Exception { 31 sysUser sysuser=new sysUser(); 32 sysuser.setId("222"); 33 sysuser.setOrgId("2"); 34 int i=sysuserextmapper.insertsysUser(sysuser); 35 this.logger.info("執(zhí)行成功個(gè)數(shù):"+i); 36 } 37 38 } View Code

執(zhí)行效果

【自動(dòng)生成主鍵】

在上述的INSERT語句中,我們?yōu)榭梢宰詣?dòng)生成(auto-generated)主鍵的列 id 插入值。

我們可以使用useGeneratedKeys?和?keyProperty屬性讓數(shù)據(jù)庫生成AUTO_INCREMENT列的值,并將生成的值設(shè)置到其中一個(gè)輸入對(duì)象屬性內(nèi),如下所示:

1 <insert id="insertsysUser2" parameterType="com.goku.mybatis.model.sysUser" useGeneratedKeys="true" 2 keyProperty="id"> 3 insert into sys_user ( username, password, 4 name, sex, status, org_id, 5 email, idcard, is_admin, 6 sort, mobile, stationid 7 ) 8 values ( #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 9 #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{orgId,jdbcType=VARCHAR}, 10 #{email,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR}, #{isAdmin,jdbcType=VARCHAR}, 11 #{sort,jdbcType=BIGINT}, #{mobile,jdbcType=VARCHAR}, #{stationid,jdbcType=LONGVARCHAR} 12 ) 13 </insert> View Code

有些數(shù)據(jù)庫如Oracle并不支持 AUTO_INCREMENT 列,其使用序列(SEQUENCE),或者其他查詢(uuid)來生成主鍵值,如下所示:

1 <insert id="insertsysUser3" parameterType="com.goku.mybatis.model.sysUser"> 2 <selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE"> 3 SELECT replace(uuid(),'-','') AS id 4 </selectKey> 5 insert into sys_user (id, username, password, 6 name, sex, status, org_id, 7 email, idcard, is_admin, 8 sort, mobile, stationid 9 ) 10 values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, 11 #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{orgId,jdbcType=VARCHAR}, 12 #{email,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR}, #{isAdmin,jdbcType=VARCHAR}, 13 #{sort,jdbcType=BIGINT}, #{mobile,jdbcType=VARCHAR}, #{stationid,jdbcType=LONGVARCHAR} 14 ) 15 </insert> View Code
UPDATE 語句

一個(gè)UPDATE SQL語句可以在<update>元素在映射器XML配置文件中配置,如下所示:

1 <update id="updateUser" parameterType="com.goku.mybatis.model.sysUser"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 update sys_user 7 set username = #{username,jdbcType=VARCHAR}, 8 password = #{password,jdbcType=VARCHAR}, 9 name = #{name,jdbcType=VARCHAR}, 10 sex = #{sex,jdbcType=VARCHAR}, 11 status = #{status,jdbcType=CHAR}, 12 org_id = #{orgId,jdbcType=VARCHAR}, 13 email = #{email,jdbcType=VARCHAR}, 14 idcard = #{idcard,jdbcType=VARCHAR}, 15 is_admin = #{isAdmin,jdbcType=VARCHAR}, 16 sort = #{sort,jdbcType=BIGINT}, 17 mobile = #{mobile,jdbcType=VARCHAR}, 18 stationid = #{stationid,jdbcType=LONGVARCHAR} 19 where id = #{id,jdbcType=VARCHAR} 20 </update> View Code

同時(shí)在映射器接口中添加相應(yīng)的方法

1 int updateUser(sysUser sysuser); View Code

?增加相對(duì)應(yīng)單元測(cè)試查看相關(guān)效果

1 @Test 2 public void updateUser() throws Exception { 3 sysUser sysuser=sysuserextmapper.selectByUsername("1"); 4 sysuser.setPassword("3"); 5 sysuser.setOrgId("2"); 6 int i=sysuserextmapper.updateUser(sysuser); 7 this.logger.info("執(zhí)行成功個(gè)數(shù):"+i); 8 } View Code

測(cè)試效果

DELETE 語句

一個(gè)DELETE?SQL語句可以在<delete>元素在映射器XML配置文件中配置,如下所示:

1 <delete id="deleteByUserName" parameterType="java.lang.String"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 delete from sys_user 7 where username = #{username,jdbcType=VARCHAR} 8 </delete> View Code

同時(shí)在映射器接口中添加相應(yīng)的方法

1 int deleteByUserName(@Param("username") String username); View Code

?增加相對(duì)應(yīng)單元測(cè)試查看相關(guān)效果

1 @Test 2 public void deleteByUserName() throws Exception { 3 int i=sysuserextmapper.deleteByUserName("1"); 4 this.logger.info("執(zhí)行成功個(gè)數(shù):"+i); 5 } View Code

測(cè)試效果

SELECT 語句

一個(gè)SELECT?SQL語句可以在<select>元素在映射器XML配置文件中配置,如下所示:

1 <select id="selectByUsername" parameterType="java.lang.String" resultMap="BaseResultExtMap"> 2 select 3 <include refid="Base_Ext_Column_List" /> 4 from sys_user 5 where username = #{username,jdbcType=VARCHAR} 6 </select> View Code

同時(shí)在映射器接口中添加相應(yīng)的方法

1 sysUser selectByUsername(String username); View Code

?增加相對(duì)應(yīng)單元測(cè)試查看相關(guān)效果

1 @Test 2 public void selectByUsername() throws Exception { 3 sysUser user= sysuserextmapper.selectByUsername("444"); 4 System.out.println(user.getId()); 5 } View Code

測(cè)試效果

?結(jié)果集映射ResultMaps

簡(jiǎn)單ResultMap

在<select>語句中,我們使用了resultMap屬性,而不是resultType來引用映射。

當(dāng)<select>語句中配置了resutlMap屬性,MyBatis會(huì)使用此數(shù)據(jù)庫列名與對(duì)象屬性映射關(guān)系來填充JavaBean中的屬性。

1 <select id="selectByUsername" parameterType="java.lang.String" resultMap="BaseResultExtMap"> 2 select 3 <include refid="Base_Ext_Column_List" /> 4 from sys_user 5 where username = #{username,jdbcType=VARCHAR} 6 </select> View Code

讓我們來看另外一個(gè)<select>映射語句定義的例子,怎樣將查詢結(jié)果填充到HashMap中。如下所示:

1 <select id="selectUserByUsername" resultType="java.util.HashMap"> 2 select username,password from sys_user where username = #{username,jdbcType=VARCHAR} 3 </select> View Code

在上述的<select>語句中,我們將resultType配置成map,即java.util.HashMap的別名。在這種情況下,結(jié)果集的列名將會(huì)作為Map中的key值,而列值將作為Map的value值。

映射器接口中添加相應(yīng)的方法

1 Map<String, String> selectUserByUsername(@Param("username") String username); View Code

讓我們?cè)倏匆粋€(gè) 使用resultType=”map”,返回多行結(jié)果的例子:

1 <select id="selectUserByOrgid" resultType="java.util.HashMap"> 2 select username,password from sys_user where org_id = #{orgid,jdbcType=VARCHAR} 3 <if test="orderFiled != null" > 4 order by ${orderFiled} 5 <if test="orderSort != null" > 6 ${orderSort} 7 </if> 8 </if> 9 </select> View Code

映射器接口中添加相應(yīng)的方法

1 List<Map<String, String>> selectUserByOrgid(@Param("orgid") String orgid, @Param("orderSort") String orderSort, @Param("orderFiled") String orderFiled); View Code
拓展ResultMap

首先我們要在?sys_User中增加 sys_user_info對(duì)象。下面同理

1 private sysUserInfo sysuserinfo; 2 3 public sysUserInfo getSysuserinfo() { 4 return sysuserinfo; 5 } 6 7 public void setSysuserinfo(sysUserInfo sysuserinfo) { 8 this.sysuserinfo = sysuserinfo; 9 } View Code

?我們可以從從另外一個(gè)<resultMap>,拓展出一個(gè)新的<resultMap>,這樣,原先的屬性映射可以繼承過來,以實(shí)現(xiàn)。

1 <resultMap id="UserinfoBaseResultExtMap" type="com.goku.mybatis.model.sysUser" extends="BaseResultExtMap"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 <result column="address" jdbcType="VARCHAR" property="sysuserinfo.address" /> 7 <result column="post_code" jdbcType="VARCHAR" property="sysuserinfo.postCode" /> 8 <result column="height" jdbcType="VARCHAR" property="sysuserinfo.height" /> 9 <result column="weight" jdbcType="VARCHAR" property="sysuserinfo.weight" /> 10 <result column="birthday" jdbcType="DATE" property="sysuserinfo.birthday" /> 11 <result column="blood" jdbcType="VARCHAR" property="sysuserinfo.blood" /> 12 <result column="culture" jdbcType="VARCHAR" property="sysuserinfo.culture" /> 13 <result column="finish_school_date" jdbcType="DATE" property="sysuserinfo.finishSchoolDate" /> 14 <result column="folk" jdbcType="VARCHAR" property="sysuserinfo.folk" /> 15 <result column="government" jdbcType="VARCHAR" property="sysuserinfo.government" /> 16 <result column="homepage" jdbcType="VARCHAR" property="sysuserinfo.homepage" /> 17 <result column="householder" jdbcType="VARCHAR" property="sysuserinfo.householder" /> 18 <result column="marriage" jdbcType="VARCHAR" property="sysuserinfo.marriage" /> 19 <result column="msn" jdbcType="VARCHAR" property="sysuserinfo.msn" /> 20 <result column="nativity_address" jdbcType="VARCHAR" property="sysuserinfo.nativityAddress" /> 21 <result column="qq" jdbcType="VARCHAR" property="sysuserinfo.qq" /> 22 <result column="speciality" jdbcType="VARCHAR" property="sysuserinfo.speciality" /> 23 <result column="description" jdbcType="VARCHAR" property="sysuserinfo.description" /> 24 <result column="version" jdbcType="BIGINT" property="sysuserinfo.version" /> 25 </resultMap > View Code

擴(kuò)展方法來使用它

1 <select id="selectextends" parameterType="java.lang.String" resultMap="UserinfoBaseResultExtMap"> 2 select 3 u.id, username, password, name, sex, status, org_id, email, idcard, is_admin, sort, 4 mobile,address, post_code, height, weight, birthday, blood, culture, finish_school_date, 5 folk, government, homepage, householder, marriage, msn, nativity_address, qq, speciality, 6 description, version 7 from sys_user u LEFT OUTER JOIN sys_user_info ui ON u.id=ui.id 8 where username = #{username,jdbcType=VARCHAR} 9 </select> View Code

一對(duì)一映射

使用嵌套結(jié)果ResultMap實(shí)現(xiàn)一對(duì)一關(guān)系映射

在我們的域模型樣例中,每一個(gè)用戶都有一個(gè)與之關(guān)聯(lián)的用戶擴(kuò)展信息。表sys_user有一個(gè)id列,是sys_user_info表的外鍵。我們定義一個(gè)resultMap中,sys_user_info的屬性使用了圓點(diǎn)記法被賦上了對(duì)應(yīng)列的值。

1 <resultMap id="BaseResultExtMapext" type="com.goku.mybatis.model.sysUser"> 2 <id column="id" jdbcType="VARCHAR" property="id" /> 3 <result column="username" jdbcType="VARCHAR" property="username" /> 4 <result column="password" jdbcType="VARCHAR" property="password" /> 5 <result column="name" jdbcType="VARCHAR" property="name" /> 6 <result column="sex" jdbcType="VARCHAR" property="sex" /> 7 <result column="status" jdbcType="CHAR" property="status" /> 8 <result column="org_id" jdbcType="VARCHAR" property="orgId" /> 9 <result column="email" jdbcType="VARCHAR" property="email" /> 10 <result column="idcard" jdbcType="VARCHAR" property="idcard" /> 11 <result column="is_admin" jdbcType="VARCHAR" property="isAdmin" /> 12 <result column="sort" jdbcType="BIGINT" property="sort" /> 13 <result column="mobile" jdbcType="VARCHAR" property="mobile" /> 14 <result column="address" jdbcType="VARCHAR" property="sysuserinfo.address" /> 15 <result column="height" jdbcType="VARCHAR" property="sysuserinfo.height" /> 16 <result column="weight" jdbcType="VARCHAR" property="sysuserinfo.weight" /> 17 <result column="birthday" jdbcType="DATE" property="sysuserinfo.birthday" /> 18 <result column="blood" jdbcType="VARCHAR" property="sysuserinfo.blood" /> 19 <result column="culture" jdbcType="VARCHAR" property="sysuserinfo.culture" /> 20 <result column="finish_school_date" jdbcType="DATE" property="sysuserinfo.finishSchoolDate" /> 21 <result column="folk" jdbcType="VARCHAR" property="sysuserinfo.folk" /> 22 <result column="government" jdbcType="VARCHAR" property="sysuserinfo.government" /> 23 <result column="homepage" jdbcType="VARCHAR" property="sysuserinfo.homepage" /> 24 <result column="householder" jdbcType="VARCHAR" property="sysuserinfo.householder" /> 25 <result column="marriage" jdbcType="VARCHAR" property="sysuserinfo.marriage" /> 26 <result column="msn" jdbcType="VARCHAR" property="sysuserinfo.msn" /> 27 <result column="nativity_address" jdbcType="VARCHAR" property="sysuserinfo.nativityAddress" /> 28 <result column="qq" jdbcType="VARCHAR" property="sysuserinfo.qq" /> 29 <result column="speciality" jdbcType="VARCHAR" property="sysuserinfo.speciality" /> 30 <result column="description" jdbcType="VARCHAR" property="sysuserinfo.description" /> 31 <result column="version" jdbcType="BIGINT" property="sysuserinfo.version" /> 32 </resultMap > View Code

擴(kuò)展方法來使用它

1 <select id="selectextends2" parameterType="java.lang.String" resultMap="BaseResultExtMapext"> 2 select 3 u.id, username, password, name, sex, status, org_id, email, idcard, is_admin, sort, 4 mobile,address, post_code, height, weight, birthday, blood, culture, finish_school_date, 5 folk, government, homepage, householder, marriage, msn, nativity_address, qq, speciality, 6 description, version 7 from sys_user u LEFT OUTER JOIN sys_user_info ui ON u.id=ui.id 8 where username = #{username,jdbcType=VARCHAR} 9 </select> View Code
使用嵌套Select語句實(shí)現(xiàn)一對(duì)一關(guān)系映射

上述樣例展示了一對(duì)一關(guān)聯(lián)映射的一種方法。然而,使用這種方式映射,如果sysuserinfo結(jié)果需要在其他的SELECT映射語句中映射成Address對(duì)象,我們需要為每一個(gè)語句重復(fù)這種映射關(guān)系。MyBatis提供了更好地實(shí)現(xiàn)一對(duì)一關(guān)聯(lián)映射的方法:嵌套結(jié)果ResultMap和嵌套select查詢語句。

嵌套結(jié)果ResultMap

1 <resultMap id="userinfoBaseResultMap" type="com.goku.mybatis.model.sysUserInfo"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 <id column="id" jdbcType="VARCHAR" property="id" /> 7 <result column="address" jdbcType="VARCHAR" property="address" /> 8 <result column="post_code" jdbcType="VARCHAR" property="postCode" /> 9 <result column="height" jdbcType="VARCHAR" property="height" /> 10 <result column="weight" jdbcType="VARCHAR" property="weight" /> 11 <result column="birthday" jdbcType="DATE" property="birthday" /> 12 <result column="blood" jdbcType="VARCHAR" property="blood" /> 13 <result column="culture" jdbcType="VARCHAR" property="culture" /> 14 <result column="finish_school_date" jdbcType="DATE" property="finishSchoolDate" /> 15 <result column="folk" jdbcType="VARCHAR" property="folk" /> 16 <result column="government" jdbcType="VARCHAR" property="government" /> 17 <result column="homepage" jdbcType="VARCHAR" property="homepage" /> 18 <result column="householder" jdbcType="VARCHAR" property="householder" /> 19 <result column="marriage" jdbcType="VARCHAR" property="marriage" /> 20 <result column="msn" jdbcType="VARCHAR" property="msn" /> 21 <result column="nativity_address" jdbcType="VARCHAR" property="nativityAddress" /> 22 <result column="qq" jdbcType="VARCHAR" property="qq" /> 23 <result column="speciality" jdbcType="VARCHAR" property="speciality" /> 24 <result column="description" jdbcType="VARCHAR" property="description" /> 25 <result column="version" jdbcType="BIGINT" property="version" /> 26 </resultMap> 27 <resultMap type="com.goku.mybatis.model.sysUser" id="BaseResultExtMapext3"> 28 <id column="id" jdbcType="VARCHAR" property="id" /> 29 <result column="username" jdbcType="VARCHAR" property="username" /> 30 <result column="password" jdbcType="VARCHAR" property="password" /> 31 <result column="name" jdbcType="VARCHAR" property="name" /> 32 <result column="sex" jdbcType="VARCHAR" property="sex" /> 33 <result column="status" jdbcType="CHAR" property="status" /> 34 <result column="org_id" jdbcType="VARCHAR" property="orgId" /> 35 <result column="email" jdbcType="VARCHAR" property="email" /> 36 <result column="idcard" jdbcType="VARCHAR" property="idcard" /> 37 <result column="is_admin" jdbcType="VARCHAR" property="isAdmin" /> 38 <result column="sort" jdbcType="BIGINT" property="sort" /> 39 <result column="mobile" jdbcType="VARCHAR" property="mobile" /> 40 <association property="sysuserinfo" resultMap="userinfoBaseResultMap" /> 41 </resultMap> View Code

相對(duì)應(yīng)的擴(kuò)展方法來使用它

1 <select id="selectextends5" parameterType="java.lang.String" resultMap="BaseResultExtMapext3"> 2 select 3 u.id, username, password, name, sex, status, org_id, email, idcard, is_admin, sort, 4 mobile,address, post_code, height, weight, birthday, blood, culture, finish_school_date, 5 folk, government, homepage, householder, marriage, msn, nativity_address, qq, speciality, 6 description, version 7 from sys_user u LEFT OUTER JOIN sys_user_info ui ON u.id=ui.id 8 where username = #{username,jdbcType=VARCHAR} 9 </select> View Code

元素<association>被用來導(dǎo)入“有一個(gè)”(has-one)類型的關(guān)聯(lián)。在上述的例子中,我們使用了<association>元素引用了另外的在同一個(gè)XML文件中定義的<resultMap>。也可以使用<association>定義內(nèi)聯(lián)的resultMap。

1 <resultMap type="com.goku.mybatis.model.sysUser" id="BaseResultExtMapext4"> 2 <id column="id" jdbcType="VARCHAR" property="id" /> 3 <result column="username" jdbcType="VARCHAR" property="username" /> 4 <result column="password" jdbcType="VARCHAR" property="password" /> 5 <result column="name" jdbcType="VARCHAR" property="name" /> 6 <result column="sex" jdbcType="VARCHAR" property="sex" /> 7 <result column="status" jdbcType="CHAR" property="status" /> 8 <result column="org_id" jdbcType="VARCHAR" property="orgId" /> 9 <result column="email" jdbcType="VARCHAR" property="email" /> 10 <result column="idcard" jdbcType="VARCHAR" property="idcard" /> 11 <result column="is_admin" jdbcType="VARCHAR" property="isAdmin" /> 12 <result column="sort" jdbcType="BIGINT" property="sort" /> 13 <result column="mobile" jdbcType="VARCHAR" property="mobile" /> 14 <association property="sysuserinfo" javaType="com.goku.mybatis.model.sysUserInfo"> 15 <id column="id" jdbcType="VARCHAR" property="id" /> 16 <result column="address" jdbcType="VARCHAR" property="address" /> 17 <result column="post_code" jdbcType="VARCHAR" property="postCode" /> 18 <result column="height" jdbcType="VARCHAR" property="height" /> 19 <result column="weight" jdbcType="VARCHAR" property="weight" /> 20 <result column="birthday" jdbcType="DATE" property="birthday" /> 21 <result column="blood" jdbcType="VARCHAR" property="blood" /> 22 <result column="culture" jdbcType="VARCHAR" property="culture" /> 23 <result column="finish_school_date" jdbcType="DATE" property="finishSchoolDate" /> 24 <result column="folk" jdbcType="VARCHAR" property="folk" /> 25 <result column="government" jdbcType="VARCHAR" property="government" /> 26 <result column="homepage" jdbcType="VARCHAR" property="homepage" /> 27 <result column="householder" jdbcType="VARCHAR" property="householder" /> 28 <result column="marriage" jdbcType="VARCHAR" property="marriage" /> 29 <result column="msn" jdbcType="VARCHAR" property="msn" /> 30 <result column="nativity_address" jdbcType="VARCHAR" property="nativityAddress" /> 31 <result column="qq" jdbcType="VARCHAR" property="qq" /> 32 <result column="speciality" jdbcType="VARCHAR" property="speciality" /> 33 <result column="description" jdbcType="VARCHAR" property="description" /> 34 <result column="version" jdbcType="BIGINT" property="version" /> 35 </association> 36 </resultMap> View Code

嵌套select查詢語句

1 <resultMap type="com.goku.mybatis.model.sysUser" id="BaseResultExtMapext2"> 2 <id column="id" jdbcType="VARCHAR" property="id" /> 3 <result column="username" jdbcType="VARCHAR" property="username" /> 4 <result column="password" jdbcType="VARCHAR" property="password" /> 5 <result column="name" jdbcType="VARCHAR" property="name" /> 6 <result column="sex" jdbcType="VARCHAR" property="sex" /> 7 <result column="status" jdbcType="CHAR" property="status" /> 8 <result column="org_id" jdbcType="VARCHAR" property="orgId" /> 9 <result column="email" jdbcType="VARCHAR" property="email" /> 10 <result column="idcard" jdbcType="VARCHAR" property="idcard" /> 11 <result column="is_admin" jdbcType="VARCHAR" property="isAdmin" /> 12 <result column="sort" jdbcType="BIGINT" property="sort" /> 13 <result column="mobile" jdbcType="VARCHAR" property="mobile" /> 14 <association property="sysuserinfo" column="id" select="findsysUserInfoById"/> 15 </resultMap> View Code

相對(duì)應(yīng)的擴(kuò)展方法來使用它

1 <select id="findsysUserInfoById" parameterType="String" 2 resultMap="userinfoBaseResultMap"> 3 SELECT * FROM sys_user_info where id = #{id,jdbcType=VARCHAR} 4 </select> 5 <select id="selectextends4" parameterType="java.lang.String" resultMap="BaseResultExtMapext2"> 6 select * from sys_user where username = #{username,jdbcType=VARCHAR} 7 </select> View Code

一對(duì)多映射

我們創(chuàng)建一張機(jī)構(gòu)表一個(gè)機(jī)構(gòu)包含多個(gè)用戶。在sys_org中增加sys_user對(duì)象。

1 public List<sysUser> getSysuser() { 2 return sysuser; 3 } 4 5 public void setSysuser(List<sysUser> sysuser) { 6 this.sysuser = sysuser; 7 } 8 9 private List<sysUser> sysuser; View Code
使用內(nèi)嵌結(jié)果ResultMap實(shí)現(xiàn)一對(duì)多映射
1 <resultMap id="OrgBaseResultMapext1" type="com.goku.mybatis.model.sysOrg"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 <id column="id" jdbcType="VARCHAR" property="id" /> 7 <result column="version" jdbcType="BIGINT" property="version" /> 8 <result column="level" jdbcType="BIGINT" property="level" /> 9 <result column="type" jdbcType="CHAR" property="type" /> 10 <result column="description" jdbcType="VARCHAR" property="description" /> 11 <result column="image" jdbcType="VARCHAR" property="image" /> 12 <result column="isparent" jdbcType="VARCHAR" property="isparent" /> 13 <result column="name" jdbcType="VARCHAR" property="name" /> 14 <result column="sort" jdbcType="BIGINT" property="sort" /> 15 <result column="url" jdbcType="VARCHAR" property="url" /> 16 <result column="parent_id" jdbcType="VARCHAR" property="parentId" /> 17 <result column="operate" jdbcType="VARCHAR" property="operate" /> 18 <collection property="sysuser" resultMap="userBaseResultMap" /> 19 </resultMap> View Code

相對(duì)應(yīng)的擴(kuò)展方法來使用它

1 <select id="selectextend1" parameterType="java.lang.String" resultMap="OrgBaseResultMapext1"> 2 select o.id, version, level, type, description, image, isparent, o.name, o.sort, url, parent_id, 3 u.id as uid, username, password, u.name, sex, status, org_id, email, idcard, is_admin, u.sort, 4 mobile from sys_org o LEFT OUTER JOIN sys_user u 5 on o.id=u.org_id where o.id = #{id,jdbcType=VARCHAR} 6 </select> View Code

級(jí)聯(lián)查詢的時(shí)候,主表和從表有一樣的字段名的時(shí)候,在mysql上命令查詢是沒問題的。但在mybatis中主從表需要為相同字段名設(shè)置別名。

<collection>元素被用來將多行結(jié)果映射成一個(gè)對(duì)象的一個(gè)集合。

使用嵌套Select語句實(shí)現(xiàn)一對(duì)多映射
1 <resultMap id="OrgBaseResultMapext2" type="com.goku.mybatis.model.sysOrg"> 2 <!-- 3 WARNING - @mbg.generated 4 This element is automatically generated by MyBatis Generator, do not modify. 5 --> 6 <id column="id" jdbcType="VARCHAR" property="id" /> 7 <result column="version" jdbcType="BIGINT" property="version" /> 8 <result column="level" jdbcType="BIGINT" property="level" /> 9 <result column="type" jdbcType="CHAR" property="type" /> 10 <result column="description" jdbcType="VARCHAR" property="description" /> 11 <result column="image" jdbcType="VARCHAR" property="image" /> 12 <result column="isparent" jdbcType="VARCHAR" property="isparent" /> 13 <result column="name" jdbcType="VARCHAR" property="name" /> 14 <result column="sort" jdbcType="BIGINT" property="sort" /> 15 <result column="url" jdbcType="VARCHAR" property="url" /> 16 <result column="parent_id" jdbcType="VARCHAR" property="parentId" /> 17 <result column="operate" jdbcType="VARCHAR" property="operate" /> 18 <collection property="sysuser" column="id" select="findsysUserByOrgId" /> 19 </resultMap> View Code

相對(duì)應(yīng)的擴(kuò)展方法來使用它

1 <select id="findsysUserByOrgId" parameterType="String" 2 resultMap="userBaseResultMap"> 3 SELECT * FROM sys_user where org_id = #{id,jdbcType=VARCHAR} 4 </select> 5 <select id="selectextend2" parameterType="java.lang.String" resultMap="OrgBaseResultMapext2"> 6 select * from sys_org where id = #{id,jdbcType=VARCHAR} 7 </select> View Code

GITHUB

github : ?https://github.com/nbfujx/learn-java-demo/tree/master/Goku.MybatisDemo.XML

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Mybatis基于XML配置SQL映射器(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美日韩一区二区在线观看 | 欧美视频网址 | av蜜桃在线 | 国产亚洲精品久久久久久移动网络 | 国产麻豆视频在线观看 | 亚洲成人国产精品 | 在线电影日韩 | 国产精品综合久久久久 | 天天操天天摸天天干 | 四虎永久免费 | av在线播放国产 | 国产精品久久久久久久久久久久久久 | 精壮的侍卫呻吟h | 国产成人精品一区二区三区在线观看 | 天天鲁天天干天天射 | 色搞搞| 超碰在线个人 | 亚洲三级视频 | 久久看免费视频 | 日韩无在线 | 国产精品嫩草在线 | 99r在线视频 | 97热视频| av解说在线 | 久久精品日韩 | 国产精品a成v人在线播放 | 黄色一级动作片 | 国内视频1区 | 国产区精品视频 | 日韩欧美视频免费观看 | 麻豆传媒视频在线免费观看 | 麻豆国产网站 | 在线精品视频免费观看 | 日本不卡123区 | 亚洲六月丁香色婷婷综合久久 | 日韩免费高清在线观看 | 在线观看成人毛片 | 一区二区三区高清在线观看 | 国产又黄又爽又猛视频日本 | 91女神的呻吟细腰翘臀美女 | 日韩a在线播放 | 久久成人黄色 | 97精品国产97久久久久久粉红 | 成年人在线免费看视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久最新 | 青青草国产在线 | 91免费视频网站在线观看 | 久久网址| 成人免费在线播放 | 久久国产精品久久w女人spa | 久久免费视频在线观看30 | 欧美少妇18p| www.午夜 | 国产区第一页 | 日韩在线一二三区 | 国产精品久久久久久一区二区三区 | 日黄网站| 成人性生交大片免费看中文网站 | 日韩欧美在线观看一区 | 精品视频成人 | 亚洲视频2 | 国产一区成人在线 | av超碰免费在线 | 韩国精品视频在线观看 | 日本久久中文字幕 | 亚洲激情电影在线 | 国产精品18久久久久久首页狼 | 黄色小说免费观看 | 日韩av一区二区在线 | 超碰在线观看99 | 99久久99久久精品国产片果冰 | 精品欧美一区二区精品久久 | 国产欧美三级 | 美女视频一区二区 | 亚洲人成人在线 | 成人黄在线观看 | 欧美色综合天天久久综合精品 | 久久久久成人精品亚洲国产 | japanesexxxxfreehd乱熟 | 亚洲砖区区免费 | 久久免费播放 | 久久国产精品色av免费看 | 91在线观看视频网站 | 色综合久久88色综合天天人守婷 | 91麻豆传媒| 91中文字幕网 | 久久夜色精品国产欧美乱 | 国产一区二区播放 | 视频在线一区二区三区 | 亚洲一二视频 | 亚洲毛片久久 | 国产流白浆高潮在线观看 | 日韩久久精品一区二区三区下载 | 草久在线观看 | 久久国产精品免费 | 午夜av免费看| 国内精品久久久久影院日本资源 | 最新日韩在线观看视频 | 国产99亚洲| 国产免费影院 | 99这里只有精品视频 | 欧美视频在线观看免费网址 | 中文字幕在线免费观看视频 | 日韩电影一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 久久影视一区二区 | 欧美色噜噜 | 午夜视频播放 | 中文国产在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 西西44人体做爰大胆视频 | 日韩视频1 | 99精品在线| 欧美日韩中文国产一区发布 | 婷婷丁香五 | 国产精品视频你懂的 | 午夜影院先| 久久精品国产精品亚洲 | 久久免费激情视频 | 免费网址你懂的 | www..com黄色片 | 丁香国产视频 | 在线观看免费黄视频 | 精品毛片一区二区免费看 | 狠狠色综合网站久久久久久久 | 91视视频在线直接观看在线看网页在线看 | 亚洲国内精品视频 | 日韩性xxxx| 日韩肉感妇bbwbbwbbw | 免费看一级黄色大全 | 91麻豆看国产在线紧急地址 | www国产在线| 国产精品一区二区免费 | 人人草在线视频 | 国产又粗又猛又黄 | 国产精品丝袜 | www.国产在线视频 | 色综合久久久久 | 免费久久网 | 亚洲最大av网 | 黄色一级动作片 | 波多野结衣一区三区 | 99国产精品一区二区 | 伊人狠狠操 | 成人久久| 超碰97网站 | 九色视频自拍 | 国产又粗又硬又爽的视频 | 黄色一区二区在线观看 | 在线免费成人 | 一二三区高清 | 日韩电影在线看 | 国产精品成人久久久久 | 国产精品毛片久久久久久久久久99999999 | 人人爽人人做 | 国产精品视频app | 国产精品亚洲视频 | 成人亚洲精品久久久久 | 涩av在线| 97涩涩视频 | 午夜天天操 | 青草视频在线 | 国产我不卡 | 国产 视频 久久 | 成片免费观看视频999 | 在线 国产 亚洲 欧美 | 五月婷婷丁香综合 | 黄色福利网 | 欧美午夜理伦三级在线观看 | 欧美日韩xx | 夜夜狠狠 | 亚洲欧美国产日韩在线观看 | 国产 在线观看 | 午夜色大片在线观看 | 日韩欧美精品一区 | 国产精品黑丝在线观看 | 日韩va欧美va亚洲va久久 | 全黄网站 | 国模一区二区三区四区 | 黄色一级动作片 | 日韩 在线 | 中文综合在线 | 国产精品久久久久永久免费 | 日韩欧美在线高清 | 久操视频在线播放 | 黄色免费网 | 欧美成人猛片 | 国产97碰免费视频 | 99精品视频免费在线观看 | 国内一区二区视频 | 五月婷婷,六月丁香 | 五月婷在线观看 | 精品日韩中文字幕 | 米奇四色影视 | av免费在线观看网站 | 国产精品久久久99 | 日韩综合一区二区三区 | av在线免费播放网站 | 最新极品jizzhd欧美 | 免费观看www7722午夜电影 | 国产精品久久久久久久免费大片 | 亚洲国产免费网站 | 超碰国产在线播放 | 久久久免费精品国产一区二区 | 97人人模人人爽人人喊网 | 日韩va亚洲va欧美va久久 | 99久免费精品视频在线观看 | 免费成人在线电影 | 成人精品视频久久久久 | 亚洲全部视频 | 97精品国自产拍在线观看 | 久久精品精品电影网 | 久久九九久久九九 | 久综合网| 国产理论免费 | 五月婷婷香蕉 | 一级a毛片高清视频 | 国产小视频在线观看免费 | 国产亚洲精品美女久久 | 亚洲国产日韩在线 | 日韩欧美在线一区 | 88av视频 | 久久精品影视 | 久久久久久久久久久久国产精品 | 久久久久久国产精品亚洲78 | 国产香蕉97碰碰碰视频在线观看 | 天天综合色天天综合 | 在线黄色av | 又粗又长又大又爽又黄少妇毛片 | 久久久国产成人 | www.天堂av | 99热这里只有精品免费 | 国产伦精品一区二区三区免费 | 麻豆免费视频 | 国产原创在线 | 日韩高清在线一区二区 | 亚洲日本一区二区在线 | 久久久久欧美精品999 | 99精品视频在线观看视频 | 亚洲精品国偷拍自产在线观看 | 成人资源在线观看 | 麻豆久久久 | 亚洲精品视频一 | 91漂亮少妇露脸在线播放 | 在线观看av国产 | 激情欧美丁香 | 亚洲婷婷在线 | 天堂av一区二区 | 97国产一区二区 | 午夜精品久久久久久99热明星 | 狠狠干电影| 久久免费播放视频 | 久久蜜臀av | www.69xx| 国产成人a亚洲精品v | 色91在线视频| 日日麻批40分钟视频免费观看 | av三级在线免费观看 | 国产视频 亚洲视频 | 久久久久久久久久久免费 | 91精品国| 婷婷久久综合网 | 国产3p视频 | 最近中文字幕国语免费av | 欧美一区二区三区在线看 | 天天干,天天操,天天射 | av高清一区二区三区 | 亚洲欧洲在线视频 | 97人人模人人爽人人喊中文字 | 日韩综合在线观看 | 在线 国产 亚洲 欧美 | 在线观看小视频 | 国产免费a| 999日韩| 中文av日韩 | www.亚洲精品在线 | 国产精品久久久影视 | 日韩av一区二区在线播放 | 亚洲综合视频在线 | 97人人人| 91精品免费视频 | 成人免费av电影 | 婷婷 综合 色 | 欧美一区二区三区在线播放 | 欧美日韩国产精品爽爽 | 伊人五月天.com | 五月婷婷在线播放 | 国产小视频你懂的 | 中文字幕在线观看91 | 国产一级黄色片免费看 | 99久久综合狠狠综合久久 | 国产对白av | 综合网av | 亚洲国产97在线精品一区 | 国产精品美女在线观看 | 国产精品色婷婷 | 精品女同一区二区三区在线观看 | 精品国产乱码久久久久久三级人 | 美女视频黄的免费的 | 毛片永久新网址首页 | 国产高清视频免费在线观看 | 91精品免费视频 | 国产精品大片免费观看 | 国内揄拍国产精品 | 日日夜夜天天久久 | 黄色三级视频片 | 国产又粗又猛又爽又黄的视频免费 | 婷婷在线视频观看 | 国产一区黄色 | japanese黑人亚洲人4k | 国产在线91精品 | 日韩高清在线不卡 | 欧美a级成人淫片免费看 | 99这里只有久久精品视频 | 精品久久久久久电影 | av一区二区三区在线 | 伊人色综合久久天天网 | 美女精品在线 | 亚洲天堂网在线视频观看 | 91网页版在线观看 | 2018好看的中文在线观看 | 国语精品免费视频 | 天天在线视频色 | 91成人精品国产刺激国语对白 | 亚洲欧美国产精品久久久久 | 日韩二区三区在线 | 97自拍超碰 | 97在线观看免费视频 | 91视频麻豆| 亚洲精选视频在线 | 亚洲精品网站 | 在线观看91视频 | 国产成人精品av | 国产剧情在线一区 | 伊人婷婷综合 | 成年人三级网站 | 亚洲国产欧美在线人成大黄瓜 | 中文字幕在线网 | 婷婷色社区 | 日韩精品一区电影 | 欧美日韩精品免费观看 | 国产在线综合视频 | 午夜精品99久久免费 | 美女网站一区 | 九九导航 | 五月婷婷开心中文字幕 | 亚洲播放一区 | 黄色影院在线观看 | 国产精品视频免费 | av在线com | 欧美网站黄色 | 中文字幕一区二区三区四区视频 | 免费国产黄线在线观看视频 | 深爱激情综合 | 97理论电影| 免费激情在线电影 | 日韩成人欧美 | 天天射天天干天天插 | 精品国产免费观看 | 亚洲婷婷在线 | 国产美女视频免费 | 亚洲久草在线视频 | 91免费观看视频网站 | 日韩免费在线视频 | 色综合天天综合在线视频 | 国产精品刺激对白麻豆99 | 久久精品久久99 | 久久精品老司机 | 久久99久久99精品免视看婷婷 | 在线精品国产 | 天天操夜操 | 国产精品久久久久国产精品日日 | 日韩电影在线观看一区二区 | 天天色天天射天天操 | 日韩av电影网站在线观看 | 美女黄频在线观看 | 在线观av | 中文一区在线观看 | 婷婷成人亚洲综合国产xv88 | 91久久奴性调教 | 一区在线播放 | 天天综合入口 | 久草在线免费在线观看 | 免费成视频 | 国产成人精品久久久久蜜臀 | 国产 日韩 中文字幕 | 91视视频在线直接观看在线看网页在线看 | 成人午夜免费福利 | 综合国产在线观看 | 字幕网av| 日韩videos | 91亚洲欧美 | 久久不卡日韩美女 | 在线观看国产 | 国产尤物在线 | 日韩av在线免费看 | 欧美精品午夜 | 激情av资源 | 午夜少妇一区二区三区 | 欧美日韩在线观看一区二区三区 | 韩国av一区 | 国产精品免费观看网站 | 狠狠色丁香久久婷婷综合丁香 | 婷婷六月丁香激情 | 免费在线一区二区三区 | 亚洲经典中文字幕 | 免费人成网ww44kk44 | 96精品在线| 色狠狠干 | 91福利视频网站 | 最近最新最好看中文视频 | 久久精品日韩 | 综合色婷婷 | 成年人黄色大片在线 | www黄| 91经典在线| 成人黄性视频 | 欧美日韩高清在线观看 | 日本在线观看一区 | 911在线| 国产精品 国产精品 | 激情丁香月 | av看片在线观看 | 久久综合操 | 亚洲国产精品人久久电影 | 91视频在线观看下载 | 国产视频精品视频 | 999成人 | 免费观看mv大片高清 | 亚洲老妇xxxxxx | 久久久.com| 成人黄色电影在线播放 | 激情久久小说 | 特级黄色视频毛片 | 97成人资源| 日本黄色特级片 | 久久国产精品99久久久久 | 国产精品入口久久 | 91精品国产综合久久福利 | 日日操夜 | 麻豆一精品传二传媒短视频 | 久久玖| 操操碰| 国产成人精品久久久久 | 91麻豆精品国产91久久久使用方法 | 97超碰精品 | 欧美日韩国产一区二区在线观看 | 国产一区免费视频 | 成人黄色av网站 | 国产麻豆剧传媒免费观看 | 91在线91 | 久久久久亚洲精品男人的天堂 | 国外av在线 | 碰碰影院 | 亚洲欧洲一区二区在线观看 | 97视频免费| 超薄丝袜一二三区 | 永久免费视频国产 | 天天狠狠 | 精品日韩视频 | 国产精品美 | 色网av | 中文字幕在线高清 | 五月激情在线 | 在线小视频你懂得 | 波多野结衣资源 | 久久久久免费网 | 日韩在线观看第一页 | 超碰成人av | 97偷拍视频| 丝袜美女视频网站 | 奇米网8888 | 91看片淫黄大片91 | 91九色精品 | 国产在线观看xxx | 色在线免费视频 | 91在线观看视频 | 伊人天天狠天天添日日拍 | 欧美乱码精品一区二区 | 97精品免费视频 | 99亚洲视频| 97理论电影 | wwxxx日本| 最新高清无码专区 | 天天操天天干天天玩 | 天天色欧美 | 国产特级毛片aaaaaa毛片 | 精品在线观看免费 | 四虎影视国产精品免费久久 | 在线免费观看不卡av | 深爱婷婷| 国产亚洲免费的视频看 | 国产97在线播放 | 亚洲精品乱码久久久久久蜜桃动漫 | 天操夜夜操 | 99久久精品国产一区二区三区 | 91精品视频一区二区三区 | 97超碰福利久久精品 | 欧美日韩在线免费观看视频 | 69国产精品成人在线播放 | 国产黄色免费观看 | 国产精品一区在线观看你懂的 | wwwww.国产 | 中文字幕在线久一本久 | 最新真实国产在线视频 | 免费观看视频黄 | 精品字幕在线 | 高潮毛片无遮挡高清免费 | 日韩久久久久久久久 | 婷婷精品在线视频 | 日韩免费在线一区 | 欧美成人999| 91精品国产综合久久福利不卡 | 亚a在线| 日本中文字幕在线看 | 九九视频免费观看视频精品 | 亚洲欧美日韩精品一区二区 | 97影视| 国产视频一区在线 | 久久久精品欧美一区二区免费 | 在线视频成人 | 天堂av色婷婷一区二区三区 | 久草精品视频在线看网站免费 | 亚洲国产精品视频在线观看 | 国产欧美精品一区二区三区 | 激情丁香在线 | 黄色午夜网站 | 夜夜夜夜夜夜操 | 91麻豆精品国产91久久久无限制版 | 国产精品久久久久久一二三四五 | 国产精品18久久久 | 射久久| 一区精品在线 | 日韩综合第一页 | 午夜精品久久久久久久久久久久 | 午夜少妇 | 国产一区二区在线播放视频 | 伊人黄| 久久综合久久综合久久综合 | 亚洲精品高清一区二区三区四区 | 手机在线视频福利 | 成人午夜电影免费在线观看 | 91原创在线观看 | 国产精品k频道 | 五月天六月婷 | 五月婷婷六月丁香在线观看 | 欧美成年人在线视频 | av观看网站| 人人干人人爽 | 天天综合在线观看 | 亚洲激情在线播放 | 国产精美视频 | 午夜精品久久久久久99热明星 | 插久久 | 久久99精品久久久久婷婷 | 国产精品精品久久久 | 久久99国产一区二区三区 | av免费成人 | 国产999精品久久久久久麻豆 | 久久国产一区二区 | 狠狠狠狠狠狠天天爱 | 亚洲一二区视频 | 成人高清在线观看 | 婷婷久久网站 | 深夜激情影院 | 日韩视频免费播放 | 亚洲视频aaa| 日韩一区二区三区观看 | 美女中文字幕 | 91av网址| 狠狠色丁香婷婷综合视频 | 天干啦夜天干天干在线线 | 福利视频导航网址 | 激情九九 | 亚州国产精品视频 | 一区二区三区国产欧美 | 特黄一级毛片 | 国产精品免费在线播放 | 天天插伊人 | 美女久久久久久久久久 | 国产精品免费在线播放 | 国产精品久久久久久久久久久久 | 在线观看中文字幕2021 | 国产不卡在线观看 | 中文字幕中文字幕在线一区 | 美女很黄免费网站 | 久久国产电影院 | 欧美精品免费视频 | 91av中文| 亚洲天堂网视频在线观看 | 欧美精品在线观看免费 | 久久成人欧美 | 精品国产精品久久 | 丁香激情五月 | 午夜在线观看影院 | 一区二区三区视频网站 | 久久优 | 人人玩人人添人人 | 久草在线最新视频 | 97超碰人人在线 | 精品久久久久久久久久久久久久久久久久 | 久久在线免费 | 国偷自产视频一区二区久 | 亚洲精品国产第一综合99久久 | 日韩黄色软件 | 亚洲 欧美 国产 va在线影院 | 高潮久久久 | 久久久亚洲电影 | 99这里只有精品99 | 免费在线观看av不卡 | 久久综合久久88 | 日韩av成人在线 | 成人h视频在线 | 日本特黄一级片 | 黄污视频大全 | 日韩欧美视频免费在线观看 | 黄色软件在线观看 | 色婷婷在线视频 | a在线免费观看视频 | 亚洲第一伊人 | 成人一区二区三区在线观看 | 日韩免费三级 | 成人影音在线 | 欧美污污视频 | 免费视频久久久久久久 | 亚洲精品一区二区三区高潮 | 国产精品18p | 精品欧美一区二区精品久久 | 久热免费 | 久久9999久久免费精品国产 | 免费在线观看亚洲视频 | 国内视频在线观看 | 色香com.| 激情久久影院 | 国产成人在线观看免费 | 中文字幕欧美日韩va免费视频 | 国产小视频福利在线 | av在线官网 | 日韩视频中文字幕在线观看 | 久操视频在线免费看 | 最新色视频 | 特级西西444www大精品视频免费看 | 99久高清在线观看视频99精品热在线观看视频 | 色久网 | 久久永久免费视频 | 国产精品高潮在线观看 | 97人人模人人爽人人少妇 | 亚洲精品国产精品乱码在线观看 | 天天射天天射天天射 | 91精品在线免费观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 久精品在线 | wwwwww黄| 激情自拍av | 中文字幕乱码日本亚洲一区二区 | 人人爱夜夜操 | 高清av网 | 中文字幕在线观看视频一区二区三区 | 成人h电影 | 国产精品二区在线观看 | 精品美女在线观看 | 麻豆视传媒官网免费观看 | 九九欧美 | 久草在线资源网 | 国产精品入口66mio女同 | 亚洲第一中文字幕 | 欧美专区亚洲专区 | 少妇av片 | 久草在线视频在线 | 日日婷婷夜日日天干 | 草久在线观看视频 | 久草在线视频精品 | 久草视频免费在线播放 | 女女av在线 | 天天干,天天射,天天操,天天摸 | 亚洲精品影院在线观看 | 亚洲综合干 | 欧美精品在线一区 | 中文字幕在线高清 | 精品亚洲二区 | 国产在线国偷精品产拍 | 五月天激情综合 | 91黄色成人 | 亚洲视频中文 | 久草免费手机视频 | 国产亚洲资源 | 91中文字幕网 | 婷婷av在线| 99久久精品日本一区二区免费 | 成人毛片在线视频 | 日韩精品视频在线观看网址 | 91精品国产91久久久久福利 | 丁香av| 亚洲砖区区免费 | 超碰在线9| 免费视频一级片 | 国产超碰在线 | 日韩中文字幕免费视频 | 日操操| 激情五月开心 | av电影在线播放 | 中文字幕免费观看 | 欧美激情综合色综合啪啪五月 | 91麻豆精品国产91久久久无需广告 | 亚洲精品国产综合99久久夜夜嗨 | 可以免费观看的av片 | 日韩免费一级a毛片在线播放一级 | 97天堂 | 国产高清免费在线播放 | 亚洲精品国产欧美在线观看 | 日韩av午夜 | 日产乱码一二三区别免费 | 在线免费观看一区二区三区 | 99这里只有精品视频 | 色伊人网| 香蕉精品视频在线观看 | 欧美日韩亚洲一 | 久久视频6 | 女人18毛片a级毛片一区二区 | 久草在线免费电影 | 精品久久久久久久久久久久久久久久久久 | 亚洲精品视频免费 | av中文字幕亚洲 | 天天插夜夜操 | 中文字幕在线视频免费播放 | 99在线视频网站 | 黄色在线观看免费 | 激情综合久久 | 亚洲一级电影视频 | 日韩精品一区二区三区中文字幕 | 91在线九色| 91亚洲国产成人 | 99久久婷婷国产综合精品 | 天天操夜夜曰 | 99久久婷婷国产精品综合 | 超碰在线99 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产一级一片免费播放放 | 亚洲午夜精品一区二区三区电影院 | 亚洲国产视频a | 国产视频九色蝌蚪 | 久久日韩精品 | 天天干天天搞天天射 | 久久艹在线观看 | 国产一区播放 | 免费视频久久久 | 国产精品扒开做爽爽的视频 | 国产在线美女 | 亚洲精品国偷拍自产在线观看 | 久久99热精品这里久久精品 | 狠狠色丁香婷婷综合最新地址 | 国产第一页精品 | 国产精品亚洲综合久久 | 国产1区2区 | 欧美大片aaa| 在线看片a | 日韩在线视频免费播放 | 成人黄色av网站 | 91麻豆精品91久久久久同性 | 热久久免费视频 | 不卡视频一区二区三区 | 美女黄视频免费 | 伊人色播 | 国产一区国产精品 | 亚洲成人精品久久久 | 中文字幕在线观看一区二区 | 亚洲国产偷 | 久草网视频在线观看 | 国产精品24小时在线观看 | 伊人婷婷久久 | 综合网天天| 婷婷国产视频 | 91一区啪爱嗯打偷拍欧美 | 久久久99精品免费观看乱色 | 一区二区三区国 | 成人全视频免费观看在线看 | 国产精品一区二区av日韩在线 | 玖玖精品在线 | 久久精品国产亚洲精品 | 日本黄色免费网站 | 91影视成人 | 国产高清视频在线播放 | 中文字幕文字幕一区二区 | 中文字幕在线观看免费高清电影 | 最新午夜电影 | 69欧美视频 | 日本丶国产丶欧美色综合 | 在线观看91精品国产网站 | 在线视频 区 | 在线日韩av | 五月婷婷激情五月 | 国内精品久久久久久久久久久久 | 国产亚洲精品久久19p | 成人亚洲网 | 国产精品一区二区美女视频免费看 | 国产精品久久久久9999 | 国产无套一区二区三区久久 | 中文字幕 国产视频 | 四虎免费在线观看视频 | 91探花国产综合在线精品 | 91精品国产欧美一区二区成人 | 不卡电影一区二区三区 | 国产视频久 | 精品女同一区二区三区在线观看 | 亚洲激情精品 | 毛片网免费 | 久久综合久久久久88 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日韩精品无码一区二区三区 | 国产精品久久久久影院日本 | 成人国产精品入口 | 日韩二区三区在线 | 亚洲综合一区二区精品导航 | 99精品观看 | 亚洲色影爱久久精品 | av青草 | 国产在线观看一 | 永久黄网站色视频免费观看w | 久久久久免费看 | 亚洲精品动漫久久久久 | 免费观看国产精品 | 91九色蝌蚪视频 | 日韩a在线看 | 欧美巨大荫蒂茸毛毛人妖 | a在线观看国产 | 亚洲精品午夜国产va久久成人 | 免费观看的av网站 | 丁香六月激情婷婷 | 丁香视频全集免费观看 | 一级性av | 日本黄色免费大片 | 久久久久国 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 午夜精品久久久久久久爽 | 久久99国产一区二区三区 | 久久人91精品久久久久久不卡 | 91麻豆精品国产91久久久久久 | 久久久综合九色合综国产精品 | 午夜精品久久久久久久久久久久久久 | 天天操天天操天天 | 亚洲精品国产综合99久久夜夜嗨 | 天天摸日日摸人人看 | 日韩在线观看精品 | 亚洲黄色小说网 | 国产精品久久久久久久久久了 | 日韩在线精品 | 亚洲天堂激情 | 亚洲一二三在线 | 欧美午夜久久久 | 日本中文字幕影院 | 91视频电影 | 高潮久久久 | 欧美在线不卡一区 | 日韩在线观看你懂的 | 久久这里只有精品23 | 九九电影在线 | 国产精品手机看片 | 女人18毛片a级毛片一区二区 | 久久艹精品 | 免费一区在线 | 日日夜夜av| 久久久久久蜜av免费网站 | 国产高清在线 | 九色视频网 | 久久99精品国产99久久6尤 | aaaaaa毛片 | 国产高清在线免费视频 | 国产精品成 | 欧美成人亚洲成人 | 91在线91 | 色婷婷国产精品一区在线观看 | 久久精品日产第一区二区三区乱码 | 欧美日韩视频精品 | 少妇bbbb | 欧美久久久久久久久久久 | 能在线观看的日韩av | 久久精品一区八戒影视 | 国产精品精品久久久 | 91禁在线观看 | 色婷婷一区 | 激情五月播播久久久精品 | 久久全国免费视频 | 亚洲精品午夜一区人人爽 | 奇米7777狠狠狠琪琪视频 | 91视频 - 114av| av中文字幕亚洲 | 手机av在线网站 | 久久成人国产 | 亚洲高清视频一区二区三区 | 97碰碰精品嫩模在线播放 | 久久久久精 | 久久色在线播放 | 亚洲视频免费在线观看 | 色婷婷久久 | 久久成人免费电影 | www激情网 | 国产精品久久嫩一区二区免费 | 国产精品不卡在线播放 | 国产一级a毛片视频爆浆 | 极品久久久久久久 | 一区三区视频 | 欧美激情视频三区 | 午夜视频在线观看一区二区三区 | 欧美色图另类 | av无限看| 在线观看第一页 | 日韩综合视频在线观看 | 91在线porny国产在线看 | 粉嫩aⅴ一区二区三区 | 欧美中文字幕久久 | 青青河边草免费视频 | 久久人人爽爽 | 亚洲国产精品成人精品 | 香蕉免费| 国产精品成人av久久 | 91精品视频在线观看免费 | 久久久久久久久久久成人 | 免费在线观看黄 | 在线免费看片 | 69精品人人人人 | 超级碰碰免费视频 | 最新国产精品拍自在线播放 | 超碰九九| 欧美日韩在线免费观看视频 | 波多野结衣电影一区二区三区 | 亚洲精品一区二区精华 | 人人爽人人av | 黄色精品免费 | 男女精品久久 | 狠狠干狠狠色 | 久久99精品国产麻豆宅宅 | 欧美性生交大片免网 | 人人揉人人揉人人揉人人揉97 | 在线观看爱爱视频 | 麻豆视频免费观看 | 日韩久久久 | 成人在线观看日韩 | 射久久| 欧美日韩在线观看一区二区三区 | 国产伦理久久精品久久久久_ | 免费成人av网站 | aaa日本高清在线播放免费观看 | 91精品福利在线 | av电影在线观看 | 欧美极品xxx | 91九色蝌蚪视频 | 久草在线网址 | 日韩精品在线播放 | 日韩免费在线一区 | 日本色小说视频 | 天天操夜操 | 99精品福利 | 国产精品久久影院 | 四虎在线影视 | 超碰在线人人97 | 久久久91精品国产 | 国产高清免费观看 | 精品久久五月天 | 日韩欧美国产免费播放 | 国产美女视频网站 | 中文在线字幕免费观 | 久久96国产精品久久99漫画 | 免费观看成人av | 日韩精品免费在线观看视频 | 精品国产乱码久久久久久1区2匹 | 国产一区自拍视频 | 婷婷久久五月 | 成人免费一区二区三区在线观看 | 97碰碰视频 | 五月天伊人网 | 91久久偷偷做嫩草影院 | 美女久久久久久 | 伊人婷婷色 | 久久五月激情 | 日韩欧美视频在线播放 | 在线观看视频你懂得 | 欧美精品中文 | 在线天堂中文在线资源网 | 色婷婷国产精品一区在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 岛国精品一区二区 | 99精品视频在线观看免费 | 在线观看深夜福利 | 成人在线观看av | 在线v| 欧美日韩国产页 | 亚洲三级黄色 | 久草在线中文视频 | 欧美视频xxx | 久久久久一区二区三区 | 日韩专区在线 | 国产亚洲日本 | 久久综合色一综合色88 | 欧美黄色成人 | 国产免费又爽又刺激在线观看 | 人人视频网站 | 亚洲精品美女在线 |