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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java回顾:MyBatis开发、配置、标签、封装会话工具

發(fā)布時(shí)間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java回顾:MyBatis开发、配置、标签、封装会话工具 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1、Mybatis框架介紹

1.1 介紹

1.2 優(yōu)點(diǎn)

1.3 缺點(diǎn)?

1.4 官方網(wǎng)站及框架包下載

1.5??mybatis框架整體架構(gòu)

1.6? mybatis的ORM(Object Relational Mapping 對(duì)象關(guān)系映射 )方式?

2、?MyBatis老式入門開發(fā)(了解)

2.1 Mybatis框架的核心類

2.2?config.xml核心配置文件:?

2.3?mapper.xml映射文件:

2.4?log4j.properties配置文件:

2.5?測例及流程圖:

2.6?使用mybatis老式的開發(fā)模式弊端

3、mybatis的dao層動(dòng)態(tài)代理(掌握)

3.1 核心步驟

3.2 測:建接口UserMapper、綁定接口和映射文件、獲取接口動(dòng)態(tài)代理對(duì)象完成查詢

3.3 在3.2基礎(chǔ)上測試mybatis的dao層動(dòng)態(tài)代理

3.4??mybatis的dao層動(dòng)態(tài)代理查詢-原理

3.5?mybatis動(dòng)態(tài)代理小結(jié)

4、mybatis核心配置

4.1 properties(屬性)定義全局變量

4.2?settings(設(shè)置)標(biāo)簽駝峰映射、延時(shí)加載

4.3?typeAliases標(biāo)簽類型別名

4.4?typeAliases標(biāo)簽內(nèi)置別名

4.5?environments?標(biāo)簽配置環(huán)境

4.6?mappers 標(biāo)簽映射器

5、myBatis增刪改測例

5.1 insert標(biāo)簽

5.2 update標(biāo)簽

5.3 delete標(biāo)簽

5.4 增刪改查標(biāo)簽

5.5 mybatis.xml核心配置文件(完整標(biāo)簽示例)

6、mybatis會(huì)話工具


1、Mybatis框架介紹

1.1 介紹

mybatis框架是對(duì)JDBC進(jìn)行封裝,解決了dao層的問題。

?? ?mybatis是Apache軟件基金會(huì)下的一個(gè)開源項(xiàng)目,前身是iBatis框架。2010年這個(gè)項(xiàng)目由apache 軟件基金會(huì)遷移到google code下,改名為mybatis。2013年11月又遷移到了github(GitHub 是一個(gè)面向開源及私有 軟件項(xiàng)目的托管平臺(tái))。
?? ?MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射(多表)。MyBatis 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。它對(duì) jdbc 的操作數(shù)據(jù)庫的過程進(jìn)行封裝,使開發(fā)者只需要關(guān)注 SQL 本身,而不需要花費(fèi)精力去處理例如注冊(cè)驅(qū)動(dòng)、創(chuàng)建 connection、創(chuàng)建 statement、手動(dòng)設(shè)置參數(shù)、結(jié)果集檢索等 jdbc 繁雜的過程代碼。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生類型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對(duì)象)為數(shù)據(jù)庫中的記錄。 ?

1.2 優(yōu)點(diǎn)

  • 簡單易學(xué):mybatis本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個(gè)jar文件+配置幾個(gè)SQL映射文件即可。

  • 使用靈活:Mybatis不會(huì)對(duì)應(yīng)用程序或者數(shù)據(jù)庫的現(xiàn)有設(shè)計(jì)強(qiáng)加任何影響。SQL語句寫在XML里,便于統(tǒng)一管理和優(yōu)化。

  • 解除SQL與程序代碼的耦合:通過提供DAO層,將業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯分離,使系統(tǒng)的設(shè)計(jì)更清晰,更易維護(hù),更易進(jìn)行單元測試。SQL語句和代碼的分離,提高了可維護(hù)性

  • 1.3 缺點(diǎn)?

  • 編寫SQL語句時(shí)工作量很大,尤其是字段多、關(guān)聯(lián)表多時(shí),更是如此。

  • SQL語句依賴于數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫移植性差,不能更換數(shù)據(jù)庫。

  • Mybatis框架還是比較簡陋(半自動(dòng)化框架),功能尚有缺失,雖然簡化了數(shù)據(jù)綁定代碼,但是整個(gè)底層數(shù)據(jù)庫查詢實(shí)際還是自己寫,工作量比較大,且不太容易適應(yīng)快速數(shù)據(jù)庫修改。

  • 1.4 官方網(wǎng)站及框架包下載

    官網(wǎng)地址:mybatis – MyBatis 3 | Introduction

    1.5??mybatis框架整體架構(gòu)

    1.6? mybatis的ORM(Object Relational Mapping 對(duì)象關(guān)系映射 )方式?

    Mybatis有兩種映射方式:

    ????????1.通過XML映射;
    ????????2.通過注解;

    2、?MyBatis老式入門開發(fā)(了解)

    2.1 Mybatis框架的核心類

    SqlSessionFactoryBuilder 會(huì)話工廠構(gòu)建類 主要用來構(gòu)建會(huì)話工廠的 SqlSessionFactory :會(huì)話工廠類 主要用來生產(chǎn)會(huì)話對(duì)象的; SqlSession:會(huì)話對(duì)象,底層是對(duì)Connection連接對(duì)象的封裝;

    數(shù)據(jù)準(zhǔn)備

    數(shù)據(jù)庫 create table user (id int primary key auto_increment,username varchar(20) not null,birthday date,sex char(1) default '男',address varchar(50) ); insert into user values (null, '大猩猩','1980-10-24','男','湘北高中三年'); insert into user values (null, '櫻木花道','1992-11-12','男','湘北高中一年'); insert into user values (null, '流川楓','1983-05-20','男','湘北高中一年'); insert into user values (null, '宮城良田','1995-03-22','男','湘北高中二年'); insert into user values (null, '三井壽','1980-10-24','男','湘北高中三年'); insert into user values (null, '井上彩子','1995-03-22','女','湘北高中二年'); insert into user values (null, '赤木晴子','1995-03-22','女','湘北高中一年'); 用戶類 public class User {private Integer id;private String username;private Date birthday;private String sex;private String address; }

    2.2?config.xml核心配置文件:?

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default="development"><!--配置數(shù)據(jù)庫環(huán)境--><environment id="development"><transactionManager type="JDBC"/><!--數(shù)據(jù)源--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/test0908"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!--引入映射文件--><mappers><mapper resource="mapper/UserMapper.xml"/></mappers> </configuration>

    2.3?mapper.xml映射文件:

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="hhy.UserMapper"><!--命名空間--><!--resultType結(jié)果類型:寫實(shí)體類路徑(將查詢出的數(shù)據(jù)轉(zhuǎn)換為User對(duì)象)--><!--執(zhí)行語句時(shí)使用:命名空間名.id,如hhy.UserMapper.findUserById--><select id="findUserById" resultType="hhy.pojo.User">select * from user where id = #{id}</select> </mapper>

    2.4?log4j.properties配置文件:

    可將詳細(xì)信息輸出到控制臺(tái),例:sql語句、參數(shù)、JDBC連接、autocommit事務(wù)狀態(tài)等。

    ### 設(shè)置Logger輸出級(jí)別和輸出目的地 ### log4j.rootLogger=debug, stdout ### 把日志信息輸出到控制臺(tái) ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

    2.5?測例及流程圖:

    //myBatis查詢@Testpublic void t10() throws SQLException, IOException {//加載核心配置文件,構(gòu)建會(huì)話工廠String resource="mybatis-config.xml";//路徑名字正確可以直接點(diǎn)擊進(jìn)入xmlInputStream rs = Resources.getResourceAsStream(resource);SqlSessionFactory build = new SqlSessionFactoryBuilder().build(rs);//獲取會(huì)話對(duì)象SqlSession sqlSession = build.openSession();//調(diào)用查詢api//第一個(gè)參數(shù)為mapper.xml中的命名空間名.sql的id,第二個(gè)參數(shù)為想要查詢的數(shù)據(jù)庫中數(shù)據(jù)idUser user = sqlSession.selectOne("hhy.UserMapper.findUserById",1);System.out.println("user = " + user);sqlSession.close();rs.close();}

    ?2.6?使用mybatis老式的開發(fā)模式弊端

    1)要使用指定的sql必須使用命名空間.id進(jìn)行字符串拼接,維護(hù)性比較差; 2)并且這個(gè)sql用多少次,就拼接多少次,維護(hù)性比較差;

    3、mybatis的dao層動(dòng)態(tài)代理(掌握)

    ?3.1 核心步驟

    Mybatis存在2種開發(fā)方式: 1)舊版本mybatis執(zhí)行的方式(了解即可); 2)動(dòng)態(tài)代理實(shí)現(xiàn)操縱數(shù)據(jù)庫(掌握);核心步驟 1)接口與xml映射文件綁定;接口名稱與xml映射文件命名空間要一致;接口方法與xml中crud標(biāo)簽ID要一致; 2)通過SqlSession獲取代理對(duì)象;eg:sqlSession.getMapper(接口);

    3.2 測:建接口UserMapper、綁定接口和映射文件、獲取接口動(dòng)態(tài)代理對(duì)象完成查詢

    推薦idea安裝插件MyBatisX小鳥,可以在接口和映射文件間跳轉(zhuǎn)?

    ?1)新建接口 UserMapper

    public interface UserMapper {/*** 根據(jù)用戶id查詢用戶信息* @param id*/User findUserById(Integer id); }

    2)將接口和映射文件綁定,在映射文件中書寫SQL語句

    命名空間:此處為UserMapper接口的全限定名,路徑正確可以跳轉(zhuǎn)
    此處id要與UserMapper接口中對(duì)應(yīng)方法名一致,MyBatisX可以直接跳轉(zhuǎn)
    resultType結(jié)果類型:寫實(shí)體類路徑(將查詢出的數(shù)據(jù)轉(zhuǎn)換為User對(duì)象)

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--命名空間:此處為UserMapper接口的路徑,路徑正確可以跳轉(zhuǎn)--> <mapper namespace="hhy.mapper.UserMapper"><!--此處id要與UserMapper接口中對(duì)應(yīng)方法名一致,MyBatisX可以直接跳轉(zhuǎn)--><!--resultType結(jié)果類型:寫實(shí)體類路徑(將查詢出的數(shù)據(jù)轉(zhuǎn)換為User對(duì)象)--><select id="findUserById" resultType="hhy.pojo.User">select * from user where id = #{id}</select> </mapper> 說明:接口與xml映射文件進(jìn)行綁定,分兩步: 1)接口的全限定名稱與xml的命名空間名稱要一致 2)接口中的方法名稱與xml的crud標(biāo)簽的id要一致;

    ?3.3 在3.2基礎(chǔ)上測試mybatis的dao層動(dòng)態(tài)代理

    //myBatis的dao層動(dòng)態(tài)代理查詢@Testpublic void t2() throws SQLException, IOException {//加載核心配置文件,構(gòu)建會(huì)話工廠String resource="mybatis-config.xml";//路徑名字正確可以直接點(diǎn)擊進(jìn)入xmlInputStream rs = Resources.getResourceAsStream(resource);SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(rs);//獲取會(huì)話對(duì)象SqlSession sqlSession = ssf.openSession();//獲取接口代理對(duì)象UserMapper mapper = sqlSession.getMapper(UserMapper.class);//調(diào)用方法根據(jù)id查詢單個(gè)數(shù)據(jù)User user = mapper.findUserById(1);System.out.println("user = " + user);sqlSession.close();rs.close();}

    3.4??mybatis的dao層動(dòng)態(tài)代理查詢-原理

    ?3.5?mybatis動(dòng)態(tài)代理小結(jié)

    1)導(dǎo)入依賴的jar mybatis.jar jdbc驅(qū)動(dòng)包 log4j.jar 2)定義pojo類型; 3)定義操縱pojo類的接口 4)定義xml映射文件,然后與接口進(jìn)行綁定4.1 xml的命名空間與接口的全限定名稱要一致;4.2 xml中的crud的標(biāo)簽id與接口中的方法名稱要一致; 5)配置核心配置文件 (1.配置數(shù)據(jù)源 2.加載xml映射文件) 6)通過SqlSessionFactoryBuilder類加載核心配置文件,構(gòu)建會(huì)話工廠; 7)通過會(huì)話工廠獲取會(huì)話對(duì)象; 8)通過會(huì)話對(duì)象調(diào)用getMapper(接口.class)獲取代理對(duì)象(正常使用接口完成數(shù)據(jù)庫的操作) 9)釋放資源,關(guān)閉連接(session.close())

    4、mybatis核心配置

    ????????mybatis-config.xml,是MyBatis的全局配置文件,包含全局配置信息,如數(shù)據(jù)庫連接參數(shù)、插件等。整個(gè)框架中只需要一個(gè)即可。 ?

    參考:https://mybatis.org/mybatis-3/zh/configuration.html

    ?說明:上述標(biāo)簽在實(shí)際使用過程中,要嚴(yán)格遵循使用順訊,否則報(bào)錯(cuò);

    4.1 properties(屬性)定義全局變量

    1、通過子標(biāo)簽property設(shè)置屬性,內(nèi)部定義(不推薦);
    2、加載外部的java資源文件(properties文件),外部引用(掌握);

    ?1)兩種使用<properties>標(biāo)簽的方式

    方式1(了解即可): 1、通過properties的子標(biāo)簽設(shè)置屬性; 2、使用${key}獲取設(shè)置的屬性值;方式2(掌握): 1.通過properties標(biāo)簽 resource屬性引入加載外部properties文件

    ?2)練習(xí)

    方式1配置mayBatis-config.xml(了解即可)

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties><!--此處name對(duì)應(yīng)dataSource標(biāo)簽中的value,使用${}獲取值--><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="dburl" value="jdbc:mysql://127.0.0.1:3306/test0908"/><property name="username" value="root"/><property name="passwd" value="123456"/></properties><environments default="development"><!--配置數(shù)據(jù)庫環(huán)境--><environment id="development"><transactionManager type="JDBC"/><!--數(shù)據(jù)源--><dataSource type="POOLED"><property name="driver" value="${driverClass}"/><property name="url" value="${dburl}"/><property name="username" value="${username}"/><property name="password" value="${passwd}"/></dataSource></environment></environments><!--引入映射文件--><mappers><mapper resource="hhy/mapper/UserMapper.xml"/></mappers> </configuration>

    方式2配置mayBatis-config.xml(掌握

    創(chuàng)建jdbc.properties文件

    ##配置參數(shù) jdbc.driverClass=com.mysql.jdbc.Driver jdbc.dburl=jdbc:mysql://127.0.0.1:3306/test0908 jdbc.userName=root jdbc.password=123456

    ?引入jdbc.properties文件,直接取其中的值。

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!-- 引入外部的properties文件 --><properties resource="jdbc.properties"/><environments default="development"><!--配置數(shù)據(jù)庫環(huán)境--><environment id="development"><transactionManager type="JDBC"/><!--數(shù)據(jù)源--><dataSource type="POOLED"><!--加載引入外部的properties文件的value值--><property name="driver" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.dburl}"/><property name="username" value="${jdbc.userName}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--引入映射文件--><mappers><mapper resource="hhy/mapper/UserMapper.xml"/></mappers> </configuration>

    4.2?settings(設(shè)置)標(biāo)簽駝峰映射、延時(shí)加載

    settinngs是 MyBatis 中極為重要的調(diào)整設(shè)置,它們會(huì)改變 MyBatis 的運(yùn)行時(shí)行為。

    ????????settings參數(shù)有很多,先測試駝峰匹配mapUnderscoreToCamelCase,就是映射下劃線到駝峰式命名。

    數(shù)據(jù)準(zhǔn)備:修改數(shù)據(jù)庫username字段名稱為user_name,并建立與pojo映射關(guān)系,配置駝峰映射,若不配置就拿不到相應(yīng)字段值

    -- 修改字段sql alter table user change username user_name varchar(30); public class User {//表:user_name --->類:userName/usernameprivate String username;...; }

    開啟駝峰映射,且settings標(biāo)簽要在properties標(biāo)簽后不然報(bào)錯(cuò)

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!-- 引入外部的properties文件 --><properties resource="jdbc.properties"/><!--開啟駝峰映射--><settings><!--作用:表:user_name 類:userName/username 自動(dòng)映射--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><environments default="development">...</environments><!--引入映射文件--><mappers><mapper resource="hhy/mapper/UserMapper.xml"/></mappers> </configuration>

    4.3?typeAliases標(biāo)簽類型別名

    ????????類型別名是給類的全限定名稱(包名.類名) 取一個(gè)短名稱。存在的意義僅在于用來減少類完全限定名的冗余

    ?可以通過設(shè)置一些短名來代替全限定名,有兩種方式:

    但是使用typeAliases標(biāo)簽會(huì)和有些idea插件沖突,導(dǎo)致mapper.xml及mapper.java中的某部分爆紅,能運(yùn)行但是比較惡心,想解決需卸載free mab...插件。

    例:

    mybatis.xml

    省略... <configuration><!-- 引入外部的properties文件 --><properties resource="jdbc.properties"/><!--開啟駝峰映射--><settings><!--作用:表:user_name 類:userName/username 自動(dòng)映射--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><typeAliases><!--方式1:取別名,逐個(gè)取別名--> <!-- <typeAlias type="hhy.pojo.User" alias="user"/>--><!--如果有其他類,繼續(xù)書寫,比較麻煩--><!--方式2:package name指定要取別名的包名,為包下所有類自動(dòng)取別名--><package name="hhy.pojo"/></typeAliases><environments default="development">省略...</environments><!--引入映射文件--><mappers><mapper resource="hhy/mapper/UserMapper.xml"/></mappers> </configuration>

    mapper.xml:

    <mapper namespace="hhy.mapper.UserMapper"><!--此處id要與UserMapper接口中對(duì)應(yīng)方法名一致,MyBatisX可以直接跳轉(zhuǎn)--><!--resultType結(jié)果類型:寫實(shí)體類路徑(將查詢出的數(shù)據(jù)轉(zhuǎn)換為User對(duì)象)--><select id="findUserById" resultType="User"><!--結(jié)果類型自動(dòng)生成,user/User都均可-->select id,user_name,birthday,sex,address from user where id = #{id}</select> </mapper>

    4.4?typeAliases標(biāo)簽內(nèi)置別名

    ????????常見的 Java 類型內(nèi)建的相應(yīng)的類型別名。均不區(qū)分大小寫,注意對(duì)基本類型名稱重復(fù)采取的特殊命名風(fēng)格。

    ????????基本類型別名是_基本類型名稱(不加_也可以),包裝類型別名時(shí)包裝類首字母小寫(大寫也可以);

    別名映射的類型
    _bytebyte
    _longlong
    _shortshort
    _intint
    _integerint
    _doubledouble
    _floatfloat
    _booleanboolean
    stringString
    byteByte
    longLong
    shortShort
    intInteger
    integerInteger
    doubleDouble
    floatFloat
    booleanBoolean
    dateDate
    decimalBigDecimal
    bigdecimalBigDecimal
    objectObject
    mapMap
    hashmapHashMap
    listList
    arraylistArrayList
    collectionCollection
    iteratorIterator

    測例:根據(jù)id查詢用戶姓名返回String類型、根據(jù)name查詢用戶id返回int類型。

    mapper.xml:

    省略... <mapper namespace="hhy.mapper.UserMapper"><!--resultType結(jié)果類型:包裝類首字母小寫--><select id="getNameById" resultType="String"><!--string、String均可-->select user_name from user where id = #{id}</select><!--resultType結(jié)果類型:基本類型加‘_’--><select id="getIdByName" resultType="int"><!--_int、int、Int均可-->select id from user where user_name = #{userName}</select> </mapper> @Testpublic void t3() throws SQLException, IOException {//加載核心配置文件,構(gòu)建會(huì)話工廠InputStream rs = Resources.getResourceAsStream("mybatis03.xml");SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(rs);//獲取會(huì)話對(duì)象SqlSession sqlSession = ssf.openSession();//獲取接口代理對(duì)象UserMapper mapper = sqlSession.getMapper(UserMapper.class);//調(diào)用方法根據(jù)id查詢單個(gè)數(shù)據(jù)System.out.println("name = " + mapper.getNameById(1));System.out.println("櫻木花道 = " + mapper.getIdByName("櫻木花道"));sqlSession.close();rs.close();}

    4.5?environments?標(biāo)簽配置環(huán)境

    MyBatis 可以配置成適應(yīng)多種環(huán)境,如開發(fā)、測試和生產(chǎn)環(huán)境需要有不同的配置; 但每個(gè) SqlSessionFactory 實(shí)例只能選擇其一,需進(jìn)行選擇。實(shí)際使用場景下,更多的是選擇使用spring來管理數(shù)據(jù)源,來做到環(huán)境的分離。 父標(biāo)簽: environments(環(huán)境配置)子標(biāo)簽:environment(環(huán)境變量)transactionManager(事務(wù)管理器)dataSource(數(shù)據(jù)源)

    例:

    xml配置多環(huán)境數(shù)據(jù)源,指定development為默認(rèn)環(huán)境運(yùn)行,在SqlSessionFactoryBuilder的build方法下指定要切換數(shù)據(jù)源的標(biāo)識(shí),覆蓋默認(rèn)配置build(rs, "test"),選用test環(huán)境。

    省略... <configuration><!-- 引入外部的properties文件 --><properties resource="jdbc.properties"/><!--開啟駝峰映射--><settings><!--作用:表:user_name 類:userName/username 自動(dòng)映射--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><typeAliases><!--方式2:package name指定要取別名的包名,為包下所有類自動(dòng)取別名--><package name="hhy.pojo"/></typeAliases><!--現(xiàn)有三個(gè)環(huán)境,默認(rèn)development--><environments default="development"><!--配置數(shù)據(jù)庫環(huán)境--><environment id="development">省略...</environment><environment id="test"><transactionManager type="JDBC"/><!--數(shù)據(jù)源--><dataSource type="POOLED"><!--加載引入外部的properties文件的value值--><property name="driver" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.dburl}"/><property name="username" value="${jdbc.userName}"/><property name="password" value="${jdbc.password}"/></dataSource></environment><environment id="online">省略...</environment></environments>省略... </configuration>

    代碼:

    @Testpublic void t3() throws SQLException, IOException {//加載核心配置文件,構(gòu)建會(huì)話工廠String resource = "mybatis04.xml";//路徑名字正確可以直接點(diǎn)擊進(jìn)入xmlInputStream rs = Resources.getResourceAsStream(resource);//不指定就走默認(rèn)數(shù)據(jù)源 // SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(rs);//在build方法下指定要切換數(shù)據(jù)源的標(biāo)識(shí),覆蓋默認(rèn)配置SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(rs, "test");//獲取會(huì)話對(duì)象SqlSession sqlSession = ssf.openSession();//獲取接口代理對(duì)象UserMapper mapper = sqlSession.getMapper(UserMapper.class);//調(diào)用方法final int 櫻木花道 = mapper.getIdByName("櫻木花道");System.out.println("櫻木花道 = " + 櫻木花道);sqlSession.close();rs.close();}

    4.6?mappers 標(biāo)簽映射器

    mappers(映射器):UserMapper.xml====>UserMapper.java接口關(guān)聯(lián)。

    作用:維護(hù)接口和映射文件之間的關(guān)系.使用方式: 1、加載XML映射文件,關(guān)聯(lián)UserMapper.java接口 【1】<mapper resource="UserMapper.xml"/> 從src下加載映射文件; 【2】<mapper url=""/> 從本地磁盤中加載映射文件,但是需要添加file:///協(xié)議 說明:如果項(xiàng)目采用基于xml的開發(fā)模式,建議使用方式1開發(fā);2、加載接口,關(guān)聯(lián)映射文件 條件:1、接口名和映射文件名保持一致;2、路徑保持一致; 【3】class:加載單獨(dú)的接口:<mapper class="hhy.mapper.UserMapper"/> 【4】批量加載class:<package name="hhy.mapper"/> 說明:如果基于注解開發(fā)的開發(fā)的話,推薦使用方式4開發(fā)

    推薦:

    <mappers><!--通過resource屬性加載工程下相對(duì)路徑下的映射文件--><mapper resource="mapper/UserMapper.xml"/></mappers><!--package表示通過掃包加載接口,然后獲取接口名稱,就獲取了xml映射文件名稱name屬性指定接口的路徑--><package name="hhy.mapper"/>前提條件: 1.接口與映射文件名稱必須相同; 2.接口與映射文件路徑必須相同; 3.映射文件中的namespace必須與接口的全限定名稱一致;

    5、myBatis增刪改測例

    5.1 insert標(biāo)簽

    屬性說明是否必須
    id這條SQL語句的唯一標(biāo)識(shí),和接口的方法名一致

    說明:#{username},#{birthday},#{sex},#{address} 大括號(hào)里面的值必須和pojo的實(shí)體類User類中的屬性名一致,否則會(huì)報(bào)錯(cuò)。

    注意事項(xiàng):Mybatis默認(rèn)事務(wù)手動(dòng)提交,可設(shè)置事務(wù)自動(dòng)提交:

    SqlSession sqlSession = sqlSessionFactory.openSession(true);

    5.2 update標(biāo)簽

    屬性說明是否必須
    idSQL語句的唯一標(biāo)識(shí),和接口的方法名一致

    5.3 delete標(biāo)簽

    屬性說明是否必須
    idSQL語句的唯一標(biāo)識(shí),和接口的方法名一致

    5.4 增刪改查標(biāo)簽

    1.select<select id="對(duì)應(yīng)接口中的方法名" resultType="pojo名默認(rèn)首字符小寫/_基本類型/jdk對(duì)象類型小寫">select * from table where id=#{任意變量}</select> 2.insert<insert id="xx">insert into table values(null,#{對(duì)應(yīng)pojo中屬性名稱},....)</insert> 3.update<update id="xxx">update table set 字段1=#{對(duì)應(yīng)pojo中屬性名稱},.... where id=#{id}</update> 4.delete<delete id="xxx">delete from table where id=#{id}</delete>

    5.5 mybatis.xml核心配置文件(完整標(biāo)簽示例)

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!-- 引入外部的properties文件 --><properties resource="jdbc.properties"/><!--開啟駝峰映射--><settings><!--作用:表:user_name 類:userName/username 自動(dòng)映射--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><typeAliases><!--方式1:取別名,逐個(gè)取別名--> <!-- <typeAlias type="hhy.pojo.User" alias="user"/>--><!--如果有其他類,繼續(xù)書寫--><!--方式2:package name指定要取別名的包名,為包下所有類自動(dòng)取別名--><package name="hhy.pojo"/></typeAliases><!--現(xiàn)有三個(gè)環(huán)境,默認(rèn)development--><environments default="development"><!--配置數(shù)據(jù)庫環(huán)境--><environment id="development"><transactionManager type="JDBC"/><!--數(shù)據(jù)源--><dataSource type="POOLED"><!--省略...--></dataSource></environment><environment id="test"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--加載引入外部的properties文件的value值--><property name="driver" value="${jdbc.driverClass}"/><property name="url" value="${jdbc.dburl}"/><property name="username" value="${jdbc.userName}"/><property name="password" value="${jdbc.password}"/></dataSource></environment><environment id="online"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--省略...--></dataSource></environment></environments><!--引入映射文件--><mappers><mapper resource="hhy/mapper/UserMapper.xml"/></mappers> </configuration>

    6、mybatis會(huì)話工具

    public class MyBatisUtil {//全局維護(hù)一個(gè)會(huì)話工廠private static SqlSessionFactory ssf;private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<>();//在靜態(tài)代碼塊中加載mybatis核心配置文件,初始化SqlSessionFactorystatic {String resource = "mybatis03.xml";InputStream inputStream = null;try {inputStream = Resources.getResourceAsStream(resource);} catch (IOException e) {e.printStackTrace();}ssf = new SqlSessionFactoryBuilder().build(inputStream);}//封裝獲取動(dòng)態(tài)代理對(duì)象的方法public static <T>T getMapper(Class<T> tClass) {//獲取會(huì)話對(duì)象SqlSession sqlSession = getSqlSession();//獲取接口代理對(duì)象T mapper = sqlSession.getMapper(tClass);return mapper;}//獲取sqlSession對(duì)象public static SqlSession getSqlSession() {SqlSession sqlSession = threadLocal.get();if (sqlSession==null){sqlSession = ssf.openSession();//放回線程中 通過threadLocal為每一個(gè)線程都維護(hù)一個(gè)私有的會(huì)話對(duì)象,防止出現(xiàn)并發(fā)問題threadLocal.set(sqlSession);}return sqlSession;}//關(guān)閉資源public static void close() {//關(guān)閉會(huì)話對(duì)象SqlSession sqlSession = threadLocal.get();if (sqlSession!=null){sqlSession.close();}}//事務(wù)提交public static void commit() {SqlSession sqlSession = threadLocal.get();if (sqlSession!=null){sqlSession.commit();}}//事務(wù)回滾public static void rollback(){SqlSession sqlSession = threadLocal.get();if(sqlSession!=null){sqlSession.rollback();}} }

    總結(jié)

    以上是生活随笔為你收集整理的java回顾:MyBatis开发、配置、标签、封装会话工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    日韩在线视频观看 | 制服丝袜亚洲 | 玖玖视频国产 | 久久久久黄 | 天天躁日日躁狠狠躁av中文 | 欧美狠狠色 | 国产精品永久免费在线 | 91精品麻豆 | 久久久久国 | 欧美做受高潮电影o | 少妇bbb好爽 | 精品国产成人 | 97免费视频在线 | 国内偷拍精品视频 | 五月天婷婷在线播放 | 91桃色免费观看 | 成人在线观看免费 | 不卡av免费在线观看 | 又黄又爽又湿又无遮挡的在线视频 | 人操人| 四虎www | 国产精品毛片一区二区三区 | 精品视频免费久久久看 | 国产高清av免费在线观看 | 人人爽人人av| 色噜噜日韩精品欧美一区二区 | 欧美日韩xxxxx | 在线观看国产成人av片 | 色天天综合久久久久综合片 | 手机av看片 | 在线观看国产区 | 五月天天av | 美女网站在线看 | 射九九 | 亚洲三级影院 | 国产精品久久久久久久久久久久 | 在线观看国产 | 午夜久久成人 | 青青河边草免费观看完整版高清 | 国产涩涩在线观看 | 久久免费在线 | 婷婷久久婷婷 | 精品国产视频在线观看 | 一区二区三区动漫 | 开心激情久久 | 国产精品黄色在线观看 | 日韩午夜视频在线观看 | 一区二区三区高清 | 亚洲欧洲成人精品av97 | 免费中文字幕在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 色永久免费视频 | 久久久色 | 精品福利在线观看 | 久久精品一区二区国产 | 人人插人人艹 | 人人舔人人射 | 欧洲精品一区二区 | 日韩免费中文字幕 | 天天干天天操天天拍 | 久久三级毛片 | 久久久午夜视频 | 激情综合站 | 天天插日日插 | 开心色插| a在线观看国产 | av直接看 | 91视频电影 | 人人爽人人舔 | 亚洲精品三级 | 欧美日韩成人 | 国产精品综合av一区二区国产馆 | 丁香久久| 五月天六月婷婷 | 久久综合色8888 | 中文字幕一区二区三区精华液 | 国内精品久久久久久久久久久久 | 91专区在线观看 | 久草青青在线观看 | 久久久久久久久久久高潮一区二区 | 青青河边草免费视频 | 在线视频日韩欧美 | 91成人短视频在线观看 | www.xxxx变态.com| 亚洲激情小视频 | 国产精品一区二区久久 | 在线免费成人 | 久久激情影院 | 99免费看片 | a级国产乱理论片在线观看 特级毛片在线观看 | 日本精品视频在线 | www.五月天婷婷.com | 欧美一区二区三区在线视频观看 | 欧美视频xxx | 久久精品毛片基地 | 国产伦理一区二区三区 | 一区二区三区久久精品 | 在线观看日韩免费视频 | 亚洲国产免费看 | 天天操天天爽天天干 | 日本精品中文字幕 | 日韩| 欧美性色黄大片在线观看 | 中文字幕精品三区 | 免费色视频网址 | 五月婷婷六月丁香 | 国产专区在线视频 | 日韩一区视频在线 | 最近最新中文字幕 | 天天干夜夜| 狠狠色狠狠色综合系列 | 免费网站在线观看成人 | 日本久久综合视频 | 国产日韩精品欧美 | 久久久综合香蕉尹人综合网 | 中文字字幕在线 | 亚洲人成在线观看 | 亚洲精品在线一区二区三区 | 免费国产在线精品 | 精品在线观看一区二区三区 | 婷婷在线播放 | 精品国产伦一区二区三区 | 国产精品成人一区 | 九九电影在线 | 国产一级免费在线观看 | 欧美激情xxxx性bbbb | 国产精品手机在线播放 | 日日操日日插 | 国产亚洲视频中文字幕视频 | 中文字幕永久在线 | 亚洲成人av电影 | 2018好看的中文在线观看 | 欧美一级片免费在线观看 | 国产成人免费网站 | 亚洲免费一级电影 | 免费一级片在线 | 久久国产精品小视频 | 国产一区二区三区 在线 | 九九九九免费视频 | 免费看国产黄色 | 91视频91蝌蚪 | 最近中文字幕在线播放 | 黄色毛片网站在线观看 | 夜添久久精品亚洲国产精品 | 久久人人爽人人 | 97在线免费 | 国产精品精品国产婷婷这里av | 亚洲一级黄色大片 | 欧美孕妇与黑人孕交 | 2024av在线播放 | 91 在线视频 | 亚洲精品高清视频 | 在线免费亚洲 | 亚洲国产精品va在线看黑人动漫 | 亚洲六月丁香色婷婷综合久久 | 久久久国产网站 | 99精品视频精品精品视频 | 国产精品不卡视频 | 91入口在线观看 | 国产一级片网站 | 午夜视频在线网站 | 日本中文字幕在线看 | 国产免费又粗又猛又爽 | 日韩大片在线看 | 一级黄色av | 国产啊v在线| 在线成人看片 | 99精品国产aⅴ | 91成人看片| 西西444www大胆高清图片 | 看片网站黄 | 国产精品视频在线观看 | 精品久久久久一区二区国产 | 特级毛片在线观看 | 亚州精品在线视频 | 国产高清久久久 | 日韩av影视在线 | 免费视频一级片 | 色夜视频 | 不卡精品视频 | 月丁香婷婷 | 国内久久精品视频 | 一区二区三区在线视频111 | 国产精品每日更新 | 久草在线视频免费资源观看 | 在线精品亚洲一区二区 | 日三级在线 | 欧美一级小视频 | 成人黄色小视频 | 精品国产一区二区三区久久影院 | 国产爽妇网 | 免费视频 三区 | 国产一级视频在线免费观看 | 2021国产精品视频 | 成人午夜在线电影 | 又黄又爽又刺激视频 | 在线观看国产中文字幕 | 开心激情五月网 | 91亚洲狠狠婷婷综合久久久 | 久久手机免费视频 | 国产最新在线视频 | 国产激情小视频在线观看 | www.天天操.com | 久久午夜精品视频 | 久久免费观看视频 | 精品理论片 | 激情五月色播五月 | 免费观看www7722午夜电影 | 亚洲成av人影院 | 久久亚洲福利 | 亚洲国产999 | 国产a网站| 久久成人国产精品免费软件 | 久久精品国产一区二区 | 国产精品手机在线播放 | 久久免费视频网站 | 亚洲成a人片77777kkkk1在线观看 | 欧美精品久久久久久久久老牛影院 | 精品免费国产一区二区三区四区 | 玖草在线观看 | 日韩精品一区二区三区水蜜桃 | 国产福利在线免费观看 | 久久伦理电影网 | 99热国内精品 | 少妇bbbb| 中文字幕一区二区三区视频 | 欧美人牲 | 久久综合五月 | av在线中文 | 中文在线免费观看 | 午夜精品电影一区二区在线 | 国产精品高潮久久av | 日韩精品免费在线视频 | 久久激情影院 | 久久免费视频这里只有精品 | 99热国产在线中文 | 高清有码中文字幕 | 国产精品成人一区二区三区吃奶 | 99精品在线观看视频 | www免费看 | 国产成人精品日本亚洲999 | 中文字幕韩在线第一页 | 久久国产精品网站 | 波多野结衣动态图 | 96av视频| 在线观看av黄色 | 国产美女视频免费 | 欧美一区二视频在线免费观看 | 久久久久久久网站 | 成人免费网站视频 | 欧美 亚洲 另类 激情 另类 | 午夜12点| 日韩二区在线观看 | 亚洲爱爱视频 | 国产成人在线免费观看 | 美女网站在线看 | 免费a级观看| 亚洲黄色小说网 | 五月天丁香 | 中文字幕在线观看第三页 | 日本在线观看视频一区 | 国产精品99久久久久人中文网介绍 | 亚洲黄色av网址 | 日韩成人精品在线观看 | 91精品久久久久久综合乱菊 | 天天干天天草天天爽 | 婷婷在线色 | 久久久久久久久亚洲精品 | 国产一区二区三区在线免费观看 | 丁香5月婷婷| 麻豆视频免费入口 | 日韩精品一区二区三区中文字幕 | 丁香花中文在线免费观看 | 久国产在线播放 | 91成人精品一区在线播放69 | 欧美激情视频一二三区 | 久久男人免费视频 | 亚洲 综合 专区 | 久久久午夜精品福利内容 | 日韩国产精品久久 | 最新国产精品亚洲 | 国产精品久久久久久久久久免费 | 欧美精品久久久久久久久老牛影院 | 97电影网手机版 | 在线观看片 | 99久久精品日本一区二区免费 | 91久久国产露脸精品国产闺蜜 | 夜夜干夜夜 | 国产九色在线播放九色 | 啪啪凸凸 | 成人h在线播放 | 日日夜夜添 | 亚洲国产丝袜在线观看 | 97狠狠干 | av亚洲产国偷v产偷v自拍小说 | 开心色插| 成人xxxx| 一区二区三区日韩在线观看 | 激情五月色播五月 | 成人在线视频论坛 | 97超碰福利久久精品 | 亚洲精品视频网址 | 久久久久久久久久久网 | 六月激情婷婷 | 四虎在线视频免费观看 | 日韩久久精品一区二区 | 不卡电影一区二区三区 | 精品久久国产一区 | 国产a高清| 超级碰碰免费视频 | 国产精品123 | av观看在线观看 | 天天操狠狠操网站 | 久久久久久久久久久久电影 | 在线免费av网 | 日韩高清精品一区二区 | 日本免费一二三区 | 久章操 | 国产又粗又长又硬免费视频 | 中文字幕黄色网址 | 久久久久欠精品国产毛片国产毛生 | 久久久精品小视频 | 伊人成人激情 | 岛国精品一区二区 | av天天草| 久久香蕉电影 | 国产精品电影一区 | 在线播放精品一区二区三区 | 久久久国产视频 | 中文字幕日本在线观看 | 999抗病毒口服液 | 婷婷丁香久久五月婷婷 | 观看免费av| 99热这里 | 在线最新av| 中文字幕 在线 一 二 | 国产成人香蕉 | 黄色影院在线免费观看 | www激情com | 国产91影视 | 91成年人视频 | 亚洲永久免费av | 久久精品一二三区白丝高潮 | 中文字幕在线观看第三页 | 毛片一级免费一级 | 国产精品第72页 | 麻豆传媒视频在线播放 | 日韩高清网站 | 美国人与动物xxxx | 黄色亚洲大片免费在线观看 | 91久久奴性调教 | 国产乱对白刺激视频在线观看女王 | 国产精品毛片久久久久久久 | 欧美一级片在线观看视频 | 免费91麻豆精品国产自产在线观看 | 欧美午夜精品久久久久久孕妇 | 毛片基地黄久久久久久天堂 | 2023天天干 | 免费不卡中文字幕视频 | 亚洲天天在线 | 激情综合亚洲精品 | 久久精品男人的天堂 | av超碰在线| 极品久久久久久久 | 亚洲欧美日韩精品久久久 | 亚洲高清在线视频 | 亚洲天堂网在线观看视频 | 中文在线a在线 | 国产精品国产三级国产aⅴ入口 | 91黄视频在线 | 91成熟丰满女人少妇 | 久久免费视频这里只有精品 | 91亚洲精品久久久 | 国产在线播放一区 | a视频在线播放 | 91视频3p| 综合色亚洲 | 国内精品久久久久影院一蜜桃 | 美女视频黄网站 | 久久亚洲美女 | av亚洲产国偷v产偷v自拍小说 | 91成人精品 | 日本精品一区二区三区在线观看 | av福利在线免费观看 | 成人免费色| 日韩视频www| 国产 亚洲 欧美 在线 | 亚州精品天堂中文字幕 | 六月丁香激情综合 | 91香蕉视频好色先生 | 一区二区三区精品在线视频 | 又黄又爽又刺激的视频 | 国产精品久久久久久久久久三级 | 国产分类视频 | 国产分类视频 | 亚洲人人射 | 亚洲男人天堂2018 | 狠狠操狠狠干天天操 | 国产精品11 | 成人av在线影视 | 中文字幕黄色网址 | 久久黄色小说视频 | 国产亚洲人成网站在线观看 | 99久久婷婷国产精品综合 | 成年人在线免费看 | 探花视频在线观看+在线播放 | 一区二区三区四区五区在线 | 中文在线免费视频 | 国产免费观看av | 2019久久精品 | 国产一级电影网 | 免费看片网页 | 一区二区三区四区久久 | 中文字幕亚洲国产 | 中文字幕久久网 | 91漂亮少妇露脸在线播放 | 免费国产在线观看 | 成av在线| 国产精品毛片久久久久久 | 日韩欧美在线观看一区二区 | 精品国产伦一区二区三区观看体验 | 国产精品亚洲片夜色在线 | 日韩综合在线观看 | 婷婷色视频 | 国产精品久久久久一区二区三区共 | 国产精品久久久久久久久久久久午夜 | 91免费视频黄 | 成年人国产视频 | 亚洲成人软件 | 超碰国产97| 蜜臀91丨九色丨蝌蚪老版 | 久久久久久久久久电影 | 久久天堂网站 | 成人午夜片av在线看 | 国产精品成久久久久 | av在线免费在线 | www视频免费在线观看 | 黄在线免费看 | 久久久毛片 | 一区二区三区中文字幕在线观看 | 中文有码在线视频 | 精品一区二区久久久久久久网站 | 看片黄网站 | 日韩精品影视 | 久久中文精品视频 | 成人网色 | 日韩成人在线免费观看 | 亚洲精品一区二区三区高潮 | 综合在线色 | 国产精品一区在线观看你懂的 | 一二三区在线 | 激情综合网在线观看 | 久久久久福利视频 | 久久兔费看a级 | 99re热精品视频 | 四虎成人精品在永久免费 | www.午夜视频 | 在线观看国产永久免费视频 | 国产精品久久久久久久久费观看 | 波多野结衣亚洲一区二区 | 国产精品久久久久久久久搜平片 | 毛片一级免费一级 | 国产一级a毛片视频爆浆 | 日韩久久激情 | 亚洲午夜久久久久久久久 | 亚洲高清视频在线 | 在线看国产视频 | 免费看片网址 | 久草精品资源 | 国产黄色特级片 | 亚洲成人xxx | 精品视频| 色悠悠久久综合 | 日本中文字幕电影在线免费观看 | 字幕网av | 国产视频精品免费 | 少妇高潮流白浆在线观看 | 中文字幕黄色网址 | 精品美女在线视频 | 国产精品美女免费看 | 色com网| 日韩av一区二区三区在线观看 | 久久综合综合久久综合 | 高清一区二区三区av | 国产高清av免费在线观看 | 国产精品一区在线 | av资源网在线播放 | 国产91精品高清一区二区三区 | 国产精品第一页在线 | 国产91在线观看 | 久草在线高清 | 成+人+色综合 | 午夜精品视频福利 | 亚洲国产偷| 国产成人亚洲精品自产在线 | 五月天亚洲婷婷 | av中文字幕在线播放 | 日韩va欧美va亚洲va久久 | 超碰在线免费福利 | 欧美 激情 国产 91 在线 | 久久任你操 | 国产视频精品免费播放 | 国内精品久久久久久久影视简单 | 日韩 在线a | 欧美在线视频第一页 | 免费看国产曰批40分钟 | www.五月激情.com| 国产精品成 | av中文天堂在线 | www.看片网站 | 久久久久国产精品www | 日韩午夜小视频 | 国内精品美女在线观看 | 国产va在线 | 808电影免费观看三年 | 天天爱天天操天天干 | 亚洲欧美视频在线 | 九草视频在线观看 | 最新超碰在线 | 国产在线a| 精品福利国产 | 91免费在线播放 | 永久免费精品视频网站 | 久久99九九99精品 | 精品国产一区二区三区久久久蜜月 | 久久综合精品国产一区二区三区 | 国产一级二级av | 999一区二区三区 | 亚洲精品国产综合99久久夜夜嗨 | 国产黄色a | 久久综合久久八八 | 亚洲一区二区视频在线 | 国产精品高潮久久av | 久草在线国产 | 日韩av片无码一区二区不卡电影 | 国产又粗又猛又爽又黄的视频先 | 免费成人av| 一区二区三区四区五区六区 | 婷婷亚洲五月色综合 | 五月婷婷综合色拍 | 91中文视频 | 欧美在线视频不卡 | 亚洲综合视频在线观看 | 伊人六月| 91亚洲在线 | 欧美久久久影院 | 亚洲人在线7777777精品 | 欧美一区二区三区在线视频观看 | 精品综合久久 | 国产精品久久久久久69 | 九草视频在线 | 国产r级在线观看 | 精品9999| 国产日韩视频在线观看 | 国产美女无遮挡永久免费 | 久热免费在线观看 | www.com操| 播五月综合 | 五月天久久综合网 | 免费视频区 | 婷婷国产在线 | 高清精品在线 | 国产裸体无遮挡 | 成人黄色小视频 | www.久久久.com | 亚洲精品国产高清 | 亚洲欧洲在线视频 | 午夜精品久久久久久久久久久久久久 | 亚洲伦理电影在线 | 日b视频在线观看网址 | 久久久精品欧美一区二区免费 | 国产精品久久一区二区无卡 | 日韩欧美精品一区 | 日韩激情久久 | 91九色在线视频 | 婷婷www | 亚洲婷婷伊人 | 丁香六月激情婷婷 | 色婷婷免费视频 | 国产专区在线视频 | 日韩视频中文字幕在线观看 | 在线观看www. | 操操操日日 | 综合国产在线 | 久久久国产精品人人片99精片欧美一 | 中文字幕 婷婷 | 丁香花五月| 欧美日韩久 | 热久久视久久精品18亚洲精品 | 免费观看性生活大片 | 国产夫妻自拍av | 国产精品成人久久久 | 亚洲精品美女视频 | 五月天天av| 欧美精品免费在线观看 | 黄色三级免费看 | 有没有在线观看av | 黄色大片av | 亚洲天天综合网 | 国产黄色一级片在线 | 精品久久久久亚洲 | 国产91精品看黄网站 | 久久a v视频| 亚洲精品视频免费在线观看 | 久久久久久久久久久久99 | 国产成视频在线观看 | 97视频人人免费看 | 国产999视频 | 香蕉精品视频在线观看 | 中文字幕乱码视频 | 亚洲欧美综合精品久久成人 | 国产日韩欧美在线 | 九九热在线视频 | 日本久久高清视频 | 狠狠干夜夜操天天爽 | 精品久久久久久久久久久久 | 久草视频在线资源 | 中文字幕色播 | 亚洲三级黄色 | 精品在线亚洲视频 | 91高清免费观看 | 中文免费在线观看 | 久久精品中文视频 | 欧美一级片免费播放 | 黄色成人av网址 | 精品国产1区二区 | 国内一区二区视频 | 国产精品久久久久一区 | 91亚洲综合| 欧美最猛性xxxxx亚洲精品 | 久久九九免费 | 国产伦精品一区二区三区无广告 | www黄色软件 | 337p日本欧洲亚洲大胆裸体艺术 | 久久国产精品二国产精品中国洋人 | 亚洲日本在线一区 | 一区二区三区四区在线免费观看 | 精品福利视频在线 | 亚洲,播放 | 精品久久久久久一区二区里番 | 欧美日韩国产精品一区二区 | 超薄丝袜一二三区 | 一区电影 | 日韩免费网址 | 免费高清男女打扑克视频 | 中文字幕av专区 | 国产精品久久久久久久久久ktv | 日韩欧美在线播放 | 高清视频一区 | 国产精品免费观看网站 | 国产综合视频在线观看 | 亚洲精品视频第一页 | 中文字幕专区高清在线观看 | 免费黄色网址大全 | 久久久免费播放 | 国产成视频在线观看 | 日本h视频在线观看 | 美女啪啪图片 | 97激情影院 | 久久少妇免费视频 | 美女网站在线播放 | 久久久久激情 | 国产精品va在线播放 | 日韩精品一区二区三区免费观看 | 999日韩| 最新av在线播放 | 91九色porny蝌蚪视频 | 亚洲精品免费观看视频 | 粉嫩aⅴ一区二区三区 | 久久久久久久久福利 | 精品视频成人 | 日韩中文字幕亚洲一区二区va在线 | 国产91影院| 亚洲精品黄 | 黄色在线看网站 | 久久久久高清毛片一级 | 超碰在线公开免费 | 亚洲激情在线观看 | 97色婷婷| 国产专区视频 | 欧美精品久久久久久久久免 | 成人性生交大片免费观看网站 | 久久9精品 | 久久综合精品国产一区二区三区 | 国产精品美女免费视频 | 91九色丨porny丨丰满6 | 亚洲草视频 | 日韩一级电影在线 | 欧美性极品xxxx做受 | 国产精品自产拍在线观看中文 | 久久精品网站视频 | 亚洲国产精品99久久久久久久久 | 国产精品2区 | 久久人人爽视频 | 国产999视频 | 精品国产亚洲在线 | 手机在线视频福利 | 粉嫩av一区二区三区四区五区 | 免费人做人爱www的视 | 色老板在线 | 免费在线中文字幕 | 婷婷丁香自拍 | 久久久久99999 | 国产中年夫妇高潮精品视频 | 日韩久久视频 | 在线观看一二三区 | 欧美韩日精品 | 精品视频在线视频 | 狠狠干中文字幕 | 久青草视频在线观看 | 91综合视频在线观看 | 日韩精品久久久久久久电影竹菊 | 97**国产露脸精品国产 | 人人盈棋牌 | 中文字幕资源在线 | 亚洲成人软件 | 国产在线成人 | 日本一区二区三区免费看 | av蜜桃在线| 91视频传媒 | 在线观看中文字幕亚洲 | av电影av在线| 国产精品久久久久久久久久尿 | 日日干日日 | 国产精品videossex国产高清 | 人人爽人人 | 日韩动态视频 | 国产精品成人免费精品自在线观看 | 亚洲网站在线 | 天天干,天天射,天天操,天天摸 | 五月天中文字幕mv在线 | 日韩特级毛片 | 极品嫩模被强到高潮呻吟91 | 国产成人福利在线 | 久草精品视频在线观看 | 国产在线不卡 | 香蕉视频亚洲 | 91爱爱中文字幕 | 丁香五香天综合情 | 色伊人网 | se视频网址 | 国产高清在线免费视频 | 91看片淫黄大片在线播放 | 免费看搞黄视频网站 | 激情五月伊人 | 成人一区在线观看 | 国产精品自产拍在线观看网站 | 婷婷深爱网| 97精品国产一二三产区 | 亚洲成人av在线 | 在线国产99 | 在线精品观看国产 | 日韩激情精品 | 精品亚洲成a人在线观看 | 久久久激情网 | 五月开心六月婷婷 | 免费av网站在线看 | 五月天开心 | 精品视频免费 | 一区二区视频在线免费观看 | 久久区二区 | 欧美有色 | 91色吧 | 91视频在线观看免费 | 国产精品完整版 | 色偷偷网站视频 | 亚洲人在线 | 一 级 黄 色 片免费看的 | 色中色亚洲 | 日本最大色倩网站www | 国产黄色免费观看 | 亚洲伦理一区 | 午夜黄色大片 | 日韩专区 在线 | 蜜臀久久99精品久久久久久网站 | 中文字幕日韩伦理 | 337p日本大胆噜噜噜噜 | 欧美日本一二三 | 国产亚洲情侣一区二区无 | 在线观看精品国产 | 国产97在线视频 | 免费三级黄色 | 操操操人人 | 伊人av综合| 91香蕉视频 mp4| 91在线看黄 | 国产一级性生活视频 | 玖玖国产精品视频 | 国产精品 日韩 | 日韩久久影院 | 在线亚洲天堂网 | 国产精品一区二区无线 | 欧美日韩免费一区 | 国产免费区 | 黄色在线网站噜噜噜 | 国产高清不卡 | 啪啪资源 | 超碰在线人人爱 | 国产精品一区免费观看 | 韩国中文三级 | 日本在线观看中文字幕无线观看 | 99久久久久久久久久 | 亚洲欧美日韩在线一区二区 | 久久66热这里只有精品 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 日韩黄色av网站 | 国产成人久久精品一区二区三区 | 在线观看免费 | 狠狠色香婷婷久久亚洲精品 | 天天操夜夜干 | 国产精品视频全国免费观看 | 日韩av中文字幕在线免费观看 | 久久久久久久久久影院 | 色婷婷电影网 | 久久在现 | 免费男女网站 | 久久视频精品在线观看 | 97人人澡人人爽人人模亚洲 | 国产无套视频 | 中文字幕一区二区三区乱码在线 | 国产91精品在线播放 | 欧美久久久久久久久 | 亚洲码国产日韩欧美高潮在线播放 | 日韩视频在线观看视频 | 在线国产高清 | 91tv国产成人福利 | 欧美做受高潮电影o | 91夜夜夜 | 操操操日日日干干干 | 久久国产经典视频 | 欧美日韩大片在线观看 | 免费黄色av | 免费日韩一级片 | 狠狠的操你 | 91免费视频网站在线观看 | 综合色亚洲 | 色多多在线观看 | 热久久影视| 日韩在线观看你懂的 | 自拍超碰在线 | 亚洲国产精品99久久久久久久久 | 国产精品久久电影观看 | 4438全国亚洲精品在线观看视频 | 久草新在线 | 免费特级黄色片 | 成人性生交大片免费看中文网站 | 日韩资源在线观看 | 91精品日韩 | 黄a在线看 | 黄色精品在线看 | 在线观看免费一级片 | 亚洲精品小视频在线观看 | 婷婷伊人综合亚洲综合网 | 成人黄性视频 | www.久热| 日韩激情av在线 | 六月丁香综合网 | 午夜精品99久久免费 | 日本性生活一级片 | 亚洲午夜久久久久久久久电影网 | 国产黄色一级大片 | 黄色免费在线看 | 国产精品初高中精品久久 | 五月天婷婷视频 | 中文字幕亚洲精品在线观看 | 99在线精品视频 | 日韩视频一区二区在线 | a级国产乱理论片在线观看 伊人宗合网 | x99av成人免费 | 91网站在线视频 | 在线精品视频免费播放 | 美女视频黄频大全免费 | 久久激情五月婷婷 | 欧美日韩激情视频8区 | 在线观看免费视频 | 福利一区二区在线 | 久久资源在线 | 碰超人人| 久久国产精品99国产 | 91麻豆.com | 日韩在线观看精品 | 国产精品欧美一区二区 | 国产精品密入口果冻 | 中文字幕在线乱 | 国产丝袜网站 | 亚洲视频99| 午夜的福利 | 狂野欧美激情性xxxx欧美 | 国产中文字幕在线看 | 欧美91精品久久久久国产性生爱 | 久久精品男人的天堂 | 成人免费观看在线视频 | 久久亚洲福利 | 特级黄录像视频 | 在线观看久久 | 最新国产精品久久精品 | 免费看片网页 | 黄色三级视频片 | 青青河边草免费直播 | 超碰在线人人艹 | 免费婷婷 | 日本久久久久久久久久 | 91香蕉国产在线观看软件 | 国产精品欧美 | 天天操天天弄 | 国产精品综合在线观看 | 久久国产精品一国产精品 | 欧美另类性 | 免费精品在线观看 | 在线亚洲午夜片av大片 | 日韩大片在线播放 | 国产视频1区2区3区 久久夜视频 | 激情网站网址 | 亚洲v欧美v国产v在线观看 | 久久超碰网 | 国产亚洲成av人片在线观看桃 | 国产99久久久国产精品成人免费 | 色婷婷综合成人av | 久久婷婷网 | 免费看特级毛片 | 久草在线这里只有精品 | 久久电影网站中文字幕 | 国产主播99| 成人免费大片黄在线播放 | 天天干夜夜干 | 91麻豆精品国产91久久久无限制版 | 久久精品国产成人 | 日韩成人精品在线观看 | 久久99久久99精品中文字幕 | 欧美一级黄色视屏 | 久久精品一区二区国产 | 国产精品欧美激情在线观看 | 精品亚洲免费 | 国产不卡毛片 | 日韩最新在线视频 | 久久成人黄色 | 色香蕉网 | 韩国一区视频 | 精品国产免费看 | 伊人五月天.com | 日韩国产精品久久久久久亚洲 | 国产一区二区在线影院 | 国色天香永久免费 | 麻豆一区二区三区视频 | 亚洲成人资源在线观看 | 精品产品国产在线不卡 | 99精品视频一区二区 | 国产精品久久久久毛片大屁完整版 | 免费在线观看国产黄 | 超碰人人超 | 麻豆视传媒官网免费观看 | 五月天丁香| 国产在线观看免 | 欧美精品一区二区蜜臀亚洲 | 一级黄色片毛片 | 97品白浆高清久久久久久 | 91免费网址 | 在线免费观看涩涩 | 欧美精品一区二区在线播放 | 怡红院成人在线 | 国产99久久久国产精品免费看 | 婷婷丁香七月 | 成人性生交大片免费观看网站 | 色a网| 欧美久久九九 | 免费黄在线看 | 韩国精品在线 | 免费碰碰 | 亚洲波多野结衣 | 成人免费一区二区三区在线观看 | 这里只有精品视频在线观看 | 国产黄色免费 | 成人在线免费av | 成人免费观看在线视频 | 天天操天天干天天综合网 | 美女久久久久久久久久 | 亚洲国产精品久久久久 | 9999在线| 91网页版免费观看 | 欧美 日韩 成人 | 久久精品国产亚洲精品2020 | 中文字幕高清视频 | 国产精品久免费的黄网站 | 色av色av色av | 午夜免费久久看 | 丁五月婷婷 | 免费看黄色小说的网站 | 福利久久久 | 国产v亚洲v | 毛片网站在线 | 日韩视频在线播放 | 成人午夜电影久久影院 | 亚洲欧美精品在线 | 亚洲国产成人在线观看 | 精品国产网址 | 成人久久精品视频 | 国产成人av网址 | 最新日韩视频在线观看 |