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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

jpa jdbc jndi_没有J2EE容器的JNDI和JPA

發(fā)布時(shí)間:2023/12/3 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jpa jdbc jndi_没有J2EE容器的JNDI和JPA 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jpa jdbc jndi

我們希望通過(guò)盡可能簡(jiǎn)單的設(shè)置來(lái)測(cè)試一些JPA代碼。 計(jì)劃僅使用Java和Maven,不使用應(yīng)用程序服務(wù)器或其他J2EE容器。

我們的JPA配置需要兩件事才能成功運(yùn)行:

  • 數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),
  • JNDI訪問(wèn)數(shù)據(jù)庫(kù)。

這篇文章分為兩個(gè)部分。 第一部分顯示了如何在測(cè)試中使用獨(dú)立的JNDI和嵌入式內(nèi)存數(shù)據(jù)庫(kù)。 其余各章說(shuō)明了該解決方案的工作方式。

所有使用的代碼都可以在Github上找到 。 如果您對(duì)解決方案感興趣,但不想閱讀說(shuō)明,請(qǐng)從Github下載項(xiàng)目并僅閱讀第一章。

JPA測(cè)試

本章說(shuō)明如何在測(cè)試中使用我們的代碼來(lái)啟用獨(dú)立的JNDI和嵌入式內(nèi)存數(shù)據(jù)庫(kù)。 本文的其余部分將說(shuō)明該解決方案的工作方式和原因。

該解決方案具有三個(gè)“ API”類(lèi):

  • JNDIUtil – JNDI初始化,清理和一些便捷方法,
  • InMemoryDBUtil –數(shù)據(jù)庫(kù)和數(shù)據(jù)源的創(chuàng)建/刪除,
  • AbstractTestCase –在第一次測(cè)試之前清理數(shù)據(jù)庫(kù),在每次測(cè)試之前清理JNDI。

我們使用Liquibase維護(hù)數(shù)據(jù)庫(kù)結(jié)構(gòu)。 如果您不想使用Liquibase,則必須自定義InMemoryDBUtil類(lèi)。 調(diào)整方法createDatabaseStructure以執(zhí)行所需的操作。

Liquibase將所有需要的數(shù)據(jù)庫(kù)更改的列表保存在名為changelog的文件中。 除非另行配置,否則每個(gè)更改僅運(yùn)行一次。 即使將更改日志文件多次應(yīng)用于同一數(shù)據(jù)庫(kù)。

用法

從AbstractTestCase擴(kuò)展的任何測(cè)試用例都將:

  • 在第一次測(cè)試之前刪除數(shù)據(jù)庫(kù),
  • 在每次測(cè)試之前安裝獨(dú)立的JNDI或刪除其中存儲(chǔ)的所有數(shù)據(jù),
  • 每次測(cè)試之前,請(qǐng)對(duì)數(shù)據(jù)庫(kù)運(yùn)行Liquibase changelog。

JPA測(cè)試用例必須擴(kuò)展AbstractTestCase并重寫(xiě)getInitialChangeLog方法。 該方法應(yīng)返回changelog文件位置。

public class DemoJPATest extends AbstractTestCase {private static final String CHANGELOG_LOCATION = "src/test/java/org/meri/jpa/simplest/db.changelog.xml";private static EntityManagerFactory factory;public DemoJPATest() {}@Overrideprotected String getInitialChangeLog() {return CHANGELOG_LOCATION;}@Test@SuppressWarnings("unchecked")public void testJPA() {EntityManager em = factory.createEntityManager();Query query = em.createQuery("SELECT x FROM Person x");List<Person> allUsers = query.getResultList();em.close();assertFalse(allUsers.isEmpty());}@BeforeClasspublic static void createFactory() {factory = Persistence.createEntityManagerFactory("Simplest");}@AfterClasspublic static void closeFactory() {factory.close();}}

注意:在每次測(cè)試之前刪除數(shù)據(jù)庫(kù)會(huì)更清潔。 但是,刪除并重新創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)是昂貴的操作。 這會(huì)使測(cè)試用例放慢太多。 僅在上課之前這樣做似乎是一種合理的折衷。

雖然數(shù)據(jù)庫(kù)僅刪除一次,但更改日志在每次測(cè)試之前運(yùn)行。 看起來(lái)似乎很浪費(fèi),但是此解決方案具有一些優(yōu)勢(shì)。 首先, getInitialChangeLog方法不必是靜態(tài)的,并且可以在每個(gè)測(cè)試中覆蓋。 其次,配置為“ runAlways”的更改將在每次測(cè)試之前運(yùn)行,因此可能包含一些廉價(jià)的清理或其他初始化操作。

日本國(guó)家發(fā)展研究院

本章說(shuō)明什么是JNDI,如何使用它以及如何配置它。 如果您對(duì)理論不感興趣,請(qǐng)?zhí)料乱徽隆?在此創(chuàng)建獨(dú)立的JNDI。

基本用法

JNDI允許客戶端通過(guò)名稱存儲(chǔ)和查找數(shù)據(jù)和對(duì)象。 數(shù)據(jù)存儲(chǔ)通過(guò)Context接口的實(shí)現(xiàn)來(lái)訪問(wèn)。

以下代碼顯示了如何在JNDI中存儲(chǔ)數(shù)據(jù):

Context ctx = new InitialContext(); ctx.bind("jndiName", "value"); ctx.close();

第二段代碼顯示了如何在JNDI中查找內(nèi)容:

Context ctx = new InitialContext(); Object result = ctx.lookup("jndiName"); ctx.close();

嘗試在沒(méi)有J2EE容器的情況下運(yùn)行以上代碼,您會(huì)得到一個(gè)錯(cuò)誤:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initialat javax.naming.spi.NamingManager.getInitialContext(Unknown Source)at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)at javax.naming.InitialContext.bind(Unknown Source)at org.meri.jpa.JNDITestCase.test(JNDITestCase.java:16)at ...

該代碼不起作用,因?yàn)镮nitialContext類(lèi)不是真實(shí)的數(shù)據(jù)存儲(chǔ)。 InitialContext類(lèi)只能找到Context接口的另一個(gè)實(shí)例,并將所有工作委托給它。 它既無(wú)法存儲(chǔ)數(shù)據(jù)也無(wú)法找到它們。

上下文工廠

真正的上下文,即完成所有工作并能夠存儲(chǔ)/查找數(shù)據(jù)的上下文,必須由上下文工廠創(chuàng)建。 本節(jié)說(shuō)明如何創(chuàng)建上下文工廠以及如何配置InitialContext以使用它。

每個(gè)上下文工廠必須實(shí)現(xiàn)InitialContextFactory接口,并且必須具有無(wú)參數(shù)構(gòu)造函數(shù):

package org.meri.jpa.jndi;public class MyContextFactory implements InitialContextFactory {@Overridepublic Context getInitialContext(Hashtable environment) throws NamingException {return new MyContext();}}

我們的工廠返回一個(gè)簡(jiǎn)單的上下文,稱為MyContext 。 其lookup方法始終返回字符串“存儲(chǔ)的值”:

class MyContext implements Context {@Overridepublic Object lookup(Name name) throws NamingException {return "stored value";}@Overridepublic Object lookup(String name) throws NamingException {return "stored value";}.. the rest ... }

JNDI配置在哈希表中的類(lèi)之間傳遞。 鍵始終包含屬性名稱,而值包含屬性值。 由于初始上下文構(gòu)造函數(shù)InitialContext()沒(méi)有參數(shù),因此假定為空哈希表。 該類(lèi)還具有一個(gè)替代構(gòu)造函數(shù),該構(gòu)造函數(shù)將配置屬性哈希表作為參數(shù)。

使用屬性"java.naming.factory.initial"來(lái)指定上下文工廠類(lèi)名稱。 該屬性在Context.INITIAL_CONTEXT_FACTORY常量中定義。

Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "className");Context ctx = new InitialContext(environnement);

下一步測(cè)試配置MyContextFactory并檢查創(chuàng)建的初始上下文是否返回“存儲(chǔ)值”,無(wú)論如何:

@Test @SuppressWarnings({ "unchecked", "rawtypes" }) public void testDummyContext() throws NamingException {Hashtable environnement = new Hashtable();environnement.put(Context.INITIAL_CONTEXT_FACTORY, "org.meri.jpa.jndi.MyContextFactory");Context ctx = new InitialContext(environnement);Object value = ctx.lookup("jndiName");ctx.close();assertEquals("stored value", value); }

當(dāng)然,僅當(dāng)您可以將具有自定義屬性的哈希表提供給初始上下文構(gòu)造函數(shù)時(shí),此方法才有效。 這通常是不可能的。 大多數(shù)庫(kù)使用開(kāi)頭所示的無(wú)參數(shù)構(gòu)造函數(shù)。 他們假設(shè)初始上下文類(lèi)具有可用的默認(rèn)上下文工廠,并且無(wú)參數(shù)構(gòu)造函數(shù)將使用該工廠。

命名經(jīng)理

初始上下文使用NamingManager創(chuàng)建真實(shí)上下文。 命名管理器具有靜態(tài)方法getInitialContext(Hashtable env) ,該方法返回上下文的實(shí)例。 參數(shù)env包含用于構(gòu)建上下文的配置屬性。

默認(rèn)情況下,命名管理器讀取Context.INITIAL_CONTEXT_FACTORY從env哈希表,并創(chuàng)建指定的初始上下文工廠的實(shí)例。 然后,工廠方法將創(chuàng)建一個(gè)新的上下文實(shí)例。 如果未設(shè)置該屬性,則命名管理器將引發(fā)異常。

可以自定義命名管理員的行為。 NamingManager類(lèi)具有方法setInitialContextFactoryBuilder 。 如果設(shè)置了初始上下文工廠構(gòu)建器,則命名管理器將使用它來(lái)創(chuàng)建上下文工廠。

您只能使用此方法一次。 已安裝的上下文工廠生成器無(wú)法更改。

try {MyContextFactoryBuilder builder = new MyContextFactoryBuilder();NamingManager.setInitialContextFactoryBuilder(builder); } catch (NamingException e) {// handle exception }

初始上下文工廠構(gòu)建器必須實(shí)現(xiàn)InitialContextFactoryBuilder接口。 界面很簡(jiǎn)單。 它只有一個(gè)方法InitialContextFactory createInitialContextFactory(Hashtable env) 。

摘要

簡(jiǎn)而言之,初始上下文將實(shí)際的上下文初始化委托給命名管理器,命名管理器將其委托給上下文工廠。 上下文工廠由初始上下文工廠構(gòu)建器的實(shí)例創(chuàng)建。


獨(dú)立JNDI

我們將創(chuàng)建并安裝獨(dú)立的JNDI實(shí)現(xiàn)。 我們的獨(dú)立JNDI實(shí)現(xiàn)的入口點(diǎn)是JNDIUtil類(lèi)。

在沒(méi)有應(yīng)用程序服務(wù)器的情況下啟用JNDI需要三件事:

  • Context和InitialContextFactory接口的實(shí)現(xiàn),
  • InitialContextFactoryBuilder接口的實(shí)現(xiàn),
  • 初始上下文工廠構(gòu)建器的安裝以及清除所有存儲(chǔ)數(shù)據(jù)的能力。

上下文和工廠

我們從osjava項(xiàng)目中獲取了SimpleJNDI實(shí)現(xiàn),并對(duì)其進(jìn)行了修改以更好地滿足我們的需求。 該項(xiàng)目使用了新的BSD許可證 。

將SimpleJNDI maven依賴項(xiàng)添加到pom.xml中:

simple-jndisimple-jndi0.11.4.1

SimpleJNDI帶有一個(gè)MemoryContext上下文,該上下文專(zhuān)門(mén)存在于內(nèi)存中。 它幾乎不需要任何配置,并且其狀態(tài)永遠(yuǎn)不會(huì)保存下來(lái)。 它幾乎滿足了我們的需求,除了兩件事:

  • 它的close()方法刪除所有存儲(chǔ)的數(shù)據(jù),
  • 每個(gè)實(shí)例默認(rèn)使用其自己的存儲(chǔ)。

大多數(shù)庫(kù)都假定close方法優(yōu)化了資源。 他們傾向于在每次加載或存儲(chǔ)數(shù)據(jù)時(shí)調(diào)用它。 如果close方法在存儲(chǔ)完所有數(shù)據(jù)后立即刪除它們,則上下文將無(wú)用。 我們必須擴(kuò)展MemoryContext類(lèi)并重寫(xiě)close方法:

@SuppressWarnings({"rawtypes"}) public class CloseSafeMemoryContext extends MemoryContext {public CloseSafeMemoryContext(Hashtable env) {super(env);}@Overridepublic void close() throws NamingException {// Original context lost all data on close();// That made it unusable for my tests. }}

按照約定,建造者/工廠系統(tǒng)會(huì)為每次使用創(chuàng)建新的上下文實(shí)例。 如果它們不共享數(shù)據(jù),則不能使用JNDI在不同庫(kù)之間傳輸數(shù)據(jù)。

幸運(yùn)的是,這個(gè)問(wèn)題也很容易解決。 如果環(huán)境哈希表包含值為"true"屬性"org.osjava.sj.jndi.shared" "true" ,則創(chuàng)建的內(nèi)存上下文將使用公共靜態(tài)存儲(chǔ)。 因此,我們的初始上下文工廠將創(chuàng)建CloseSafeMemoryContext實(shí)例,并將其配置為使用公共存儲(chǔ):

public class CloseSafeMemoryContextFactory implements InitialContextFactory {private static final String SHARE_DATA_PROPERTY = "org.osjava.sj.jndi.shared";public Context getInitialContext(Hashtable environment) throws NamingException {// clone the environnementHashtable sharingEnv = (Hashtable) environment.clone();// all instances will share stored dataif (!sharingEnv.containsKey(SHARE_DATA_PROPERTY)) {sharingEnv.put(SHARE_DATA_PROPERTY, "true");}return new CloseSafeMemoryContext(sharingEnv);;}}

初始上下文工廠生成器

我們的構(gòu)建器的行為幾乎與原始命名管理器實(shí)現(xiàn)相同。 如果傳入環(huán)境中存在屬性Context.INITIAL_CONTEXT_FACTORY ,則將創(chuàng)建指定的工廠。

但是,如果缺少此屬性,則構(gòu)建器將創(chuàng)建CloseSafeMemoryContextFactory的實(shí)例。 原始的命名管理器將引發(fā)異常。

我們對(duì)InitialContextFactoryBuilder接口的實(shí)現(xiàn):

public InitialContextFactory createInitialContextFactory(Hashtable env) throws NamingException {String requestedFactory = null;if (env!=null) {requestedFactory = (String) env.get(Context.INITIAL_CONTEXT_FACTORY);}if (requestedFactory != null) {return simulateBuilderlessNamingManager(requestedFactory);}return new CloseSafeMemoryContextFactory(); }

方法simulateBuilderlessNamingManager使用類(lèi)加載器加載請(qǐng)求的上下文工廠:

private InitialContextFactory simulateBuilderlessNamingManager(String requestedFactory) throws NoInitialContextException {try {ClassLoader cl = getContextClassLoader();Class requestedClass = Class.forName(className, true, cl);return (InitialContextFactory) requestedClass.newInstance();} catch (Exception e) {NoInitialContextException ne = new NoInitialContextException(...);ne.setRootCause(e);throw ne;} }private ClassLoader getContextClassLoader() {return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() {public Object run() {return Thread.currentThread().getContextClassLoader();}}); }

構(gòu)建器安裝和上下文清理

最后,我們必須安裝上下文工廠生成器。 當(dāng)我們想在測(cè)試中使用獨(dú)立的JNDI時(shí),我們還需要一種方法來(lái)清除測(cè)試之間的所有存儲(chǔ)數(shù)據(jù)。 兩者都在initializeJNDI方法內(nèi)部完成,該方法將在每次測(cè)試之前運(yùn)行:

public class JNDIUtil {public void initializeJNDI() {if (jndiInitialized()) {cleanAllInMemoryData();} else {installDefaultContextFactoryBuilder();}}}

如果已經(jīng)設(shè)置了默認(rèn)上下文工廠構(gòu)建器,那么將初始化JNDI:

private boolean jndiInitialized() {return NamingManager.hasInitialContextFactoryBuilder();}

安裝默認(rèn)上下文工廠生成器:

private void installDefaultContextFactoryBuilder() {try {NamingManager.setInitialContextFactoryBuilder(new ImMemoryDefaultContextFactoryBuilder());} catch (NamingException e) {//We can not solve the problem. We will let it go up without//having to declare the exception every time.throw new ConfigurationException(e);} }

使用原始的方法實(shí)現(xiàn)close在MemoryContext類(lèi)清理存儲(chǔ)數(shù)據(jù):

private void cleanAllInMemoryData() {CleanerContext cleaner = new CleanerContext();try {cleaner.close();} catch (NamingException e) {throw new RuntimeException("Memory context cleaning failed:", e);} }class CleanerContext extends MemoryContext {private static Hashtable environnement = new Hashtable();static {environnement.put("org.osjava.sj.jndi.shared", "true");}public CleanerContext() {super(environnement);}}


內(nèi)存數(shù)據(jù)庫(kù)

Apache Derby是用Java實(shí)現(xiàn)的開(kāi)源關(guān)系數(shù)據(jù)庫(kù)。 根據(jù)Apache許可證2.0版提供。 Derby能夠在嵌入式模式下運(yùn)行。 嵌入式數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)或內(nèi)存中。

對(duì)Derby的Maven依賴關(guān)系:

org.apache.derbyderby10.8.2.2

創(chuàng)建數(shù)據(jù)源

使用EmbeddedDatasource類(lèi)的實(shí)例連接到數(shù)據(jù)庫(kù)。 每當(dāng)數(shù)據(jù)庫(kù)名稱以“ memory:”開(kāi)頭時(shí),數(shù)據(jù)源將使用一個(gè)內(nèi)存中實(shí)例。

以下代碼創(chuàng)建指向內(nèi)存數(shù)據(jù)庫(kù)實(shí)例的數(shù)據(jù)源。 如果數(shù)據(jù)庫(kù)尚不存在,將創(chuàng)建它:

private EmbeddedDataSource createDataSource() {EmbeddedDataSource dataSource = new EmbeddedDataSource();dataSource.setDataSourceName(dataSourceJndiName);dataSource.setDatabaseName("memory:" + databaseName);dataSource.setCreateDatabase("create");return dataSource; }

刪除數(shù)據(jù)庫(kù)

清理數(shù)據(jù)庫(kù)的最簡(jiǎn)單方法是刪除并重新創(chuàng)建它。 創(chuàng)建嵌入式數(shù)據(jù)源的實(shí)例,將連接屬性“ drop”設(shè)置為“ true”,并調(diào)用其getConnection方法。 它將刪除數(shù)據(jù)庫(kù)并引發(fā)異常。

private static final String DATABASE_NOT_FOUND = "XJ004";private void dropDatabase() {EmbeddedDataSource dataSource = createDataSource();dataSource.setCreateDatabase(null);dataSource.setConnectionAttributes("drop=true");try {//drop the database; not the nicest solution, but worksdataSource.getConnection();} catch (SQLNonTransientConnectionException e) {//this is OK, database was dropped} catch (SQLException e) {if (DATABASE_NOT_FOUND.equals(e.getSQLState())) {//attempt to drop non-existend database//we will ignore this errorreturn ; }throw new ConfigurationException("Could not drop database.", e);}}


數(shù)據(jù)庫(kù)結(jié)構(gòu)

我們使用Liquibase創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)和測(cè)試數(shù)據(jù)。 數(shù)據(jù)庫(kù)結(jié)構(gòu)保存在所謂的變更日志文件中。 它是一個(gè)xml文件,但是如果您不想學(xué)習(xí)另一種xml語(yǔ)言,則可以包含DDL或SQL代碼。

Liquibase及其優(yōu)點(diǎn)不在本文討論范圍之內(nèi)。 此演示最相關(guān)的優(yōu)勢(shì)是它能夠?qū)ν粩?shù)據(jù)庫(kù)多次運(yùn)行同一變更日志。 每次運(yùn)行僅將新更改應(yīng)用于數(shù)據(jù)庫(kù)。 如果文件未更改,則什么都不會(huì)發(fā)生。

您可以將更改日志添加到j(luò)ar或war中,并在每次啟動(dòng)應(yīng)用程序時(shí)運(yùn)行它。 這樣可以確保數(shù)據(jù)庫(kù)始終更新為最新版本。 無(wú)需配置或安裝腳本。

將Liquibase依賴項(xiàng)添加到pom.xml:

org.liquibaseliquibase-core2.0.3

以下更新日志創(chuàng)建一個(gè)名為Person的表,并將一個(gè)條目“斜杠– Simon Worth”放入其中:

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd"><changeSet id="1" author="meri"><comment>Create table structure for users and shared items.</comment><createTable tableName="person"><column name="user_id" type="integer"><constraints primaryKey="true" nullable="false" /></column><column name="username" type="varchar(1500)"><constraints unique="true" nullable="false" /></column><column name="firstname" type="varchar(1500)"/><column name="lastname" type="varchar(1500)"/><column name="homepage" type="varchar(1500)"/><column name="about" type="varchar(1500)"/></createTable></changeSet><changeSet id="2" author="meri" context="test"><comment>Add some test data.</comment><insert tableName="person"><column name="user_id" valueNumeric="1" /><column name="userName" value="slash" /><column name="firstName" value="Simon" /><column name="lastName" value="Worth" /><column name="homePage" value="http://www.slash.blogs.net" /><column name="about" value="I like nature and writing my blog. The blog contains my opinions about everything." /></insert></changeSet></databaseChangeLog>

Liquibase的使用非常簡(jiǎn)單。 使用數(shù)據(jù)源創(chuàng)建新的Liquibase實(shí)例,運(yùn)行其update方法并處理所有聲明的異常:

private void initializeDatabase(String changelogPath, DataSource dataSource) {try {//create new liquibase instanceConnection sqlConnection = dataSource.getConnection();DatabaseConnection db = new DerbyConnection(sqlConnection);Liquibase liquibase = new Liquibase(changelogPath, new FileSystemResourceAccessor(), db);//update the databaseliquibase.update("test");} catch (SQLException e) {// We can not solve the problem. We will let it go up without// having to declare the exception every time.throw new ConfigurationException(DB_INITIALIZATION_ERROR, e);} catch (LiquibaseException e) {// We can not solve the problem. We will let it go up without// having to declare the exception every time.throw new ConfigurationException(DB_INITIALIZATION_ERROR, e);}}


結(jié)束

每次運(yùn)行測(cè)試時(shí),獨(dú)立的JNDI數(shù)據(jù)庫(kù)和嵌入式內(nèi)存數(shù)據(jù)庫(kù)都已啟動(dòng)并正在運(yùn)行。 盡管JNDI設(shè)置可能是通用的,但數(shù)據(jù)庫(kù)的構(gòu)建可能需要對(duì)項(xiàng)目進(jìn)行特定的修改。

可以從Github上免費(fèi)下載示例項(xiàng)目,并使用/修改任何有用的內(nèi)容。

參考:在This is Stuff博客上,我們的JCG合作伙伴 Maria Jurcovicova從JNDI和JPA Without J2EE Con??tainer運(yùn)行 。


翻譯自: https://www.javacodegeeks.com/2012/04/jndi-and-jpa-without-j2ee-container.html

jpa jdbc jndi

總結(jié)

以上是生活随笔為你收集整理的jpa jdbc jndi_没有J2EE容器的JNDI和JPA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

这里只有精彩视频 | 五月婷婷激情综合 | 亚洲一区日韩 | 国产小视频精品 | 国内精品在线看 | 欧美日韩高清一区二区 | 麻豆影视在线观看 | 色综合欧洲 | 婷婷在线资源 | 欧洲不卡av| 久操免费视频 | 久久精品视频4 | 成人午夜网址 | 91黄视频在线 | 成人欧美在线 | 国产日韩精品一区二区在线观看播放 | 国产精品视频观看 | 色噜噜在线观看视频 | 在线中文日韩 | 免费在线观看一区二区三区 | www.av免费| 超碰97久久 | 午夜精品一区二区三区在线视频 | 久久久久免费看 | 欧美日韩中文视频 | 免费在线观看日韩视频 | 亚洲精品在线免费观看视频 | 欧美色图另类 | 国产91成人 | 久久人人爽爽 | 国产精品国产三级国产aⅴ无密码 | 99久久精品久久亚洲精品 | 制服丝袜欧美 | 久久新视频 | 人人干人人超 | 中文字幕在线观看视频一区二区三区 | 免费的国产精品 | 中文字幕 国产精品 | 婷婷草| 欧美日韩一区二区三区不卡 | av爱干| 精品国产欧美一区二区 | www.婷婷色 | 精品国产免费观看 | 免费观看视频的网站 | 91九色porny在线 | 欧美与欧洲交xxxx免费观看 | 中文一区二区三区在线观看 | av黄免费看 | 九九九热 | 欧美视频在线观看免费网址 | 国产精品久久久久久久久免费 | 99视频在线精品国自产拍免费观看 | 国产中文字幕91 | 亚洲春色成人 | 手机av在线免费观看 | 久久91久久久久麻豆精品 | 91精品视屏 | 日韩欧美精品一区二区三区经典 | 亚洲区精品视频 | 国产精品免费麻豆入口 | 狠狠色噜噜狠狠 | 天天综合久久 | 午夜精品一区二区国产 | 香蕉视频网站在线观看 | 国产一区免费观看 | 免费在线看v | 91麻豆免费视频 | 成人免费在线电影 | 狠狠色丁香婷婷综合久小说久 | 黄色综合 | 91丨九色丨丝袜 | 日韩高清片 | 一区二区三区福利 | 成人av一区二区兰花在线播放 | 99一级片 | 午夜视频在线观看网站 | 色综合天天做天天爱 | 国产精品高潮在线观看 | 99久久久久免费精品国产 | 国产精品毛片网 | av看片在线观看 | 久久精品一区二区三区中文字幕 | 久久免费视频在线 | 黄色成人免费电影 | 久草电影在线观看 | 亚洲 欧美 变态 国产 另类 | 免费在线观看一区二区三区 | 国产91成人 | 国产高清av免费在线观看 | 中文字幕在线免费播放 | 51久久成人国产精品麻豆 | 成人在线免费视频观看 | 国产精品久久久久久欧美 | 国产精品亚洲人在线观看 | 婷婷开心久久网 | 一区二区三区动漫 | 91禁看片 | 亚洲精品欧美专区 | 日韩午夜在线观看 | 久久久天堂 | 成人羞羞视频在线观看免费 | 成人免费av电影 | 成人全视频免费观看在线看 | 色一级片 | 亚洲精品视频在线观看免费 | 超碰在97 | 国产精品免费观看视频 | 成人黄色毛片视频 | 999久久久国产精品 高清av免费观看 | 午夜91视频 | 国产精品v欧美精品v日韩 | 最近2019中文免费高清视频观看www99 | 国产精品成人自产拍在线观看 | 日韩资源在线 | 亚洲综合视频在线观看 | 99精品国产99久久久久久福利 | 亚洲高清在线视频 | 国产精品99久久久久久小说 | 欧美一区二区三区在线看 | 91九色最新地址 | 国产成人av综合色 | 国产黄色一级片 | 一区二区网 | 久久人人爽人人爽人人片av软件 | 亚州精品在线视频 | 国产午夜精品久久 | 久久99视频精品 | 97视频总站 | 成人97视频一区二区 | 九九精品视频在线观看 | 一本一本久久a久久精品综合 | 成人蜜桃视频 | 综合激情婷婷 | 中文字幕在线观看第一区 | 一区电影 | 日韩精品中文字幕在线 | 在线日本v二区不卡 | 亚洲人成网站精品片在线观看 | 国产午夜剧场 | 国产一区免费在线 | 日日干天天操 | 这里只有精品视频在线 | 国产亚洲成av人片在线观看桃 | www日韩视频 | 亚洲国产精彩中文乱码av | 手机看片国产 | 国产中文字幕视频在线观看 | 97手机电影网 | 中文字幕美女免费在线 | 中文字幕在线观看免费观看 | 成人免费大片黄在线播放 | 97天天综合网 | 婷婷中文字幕 | 91女神的呻吟细腰翘臀美女 | 福利一区在线 | 亚洲视频播放 | 九九热在线观看视频 | 2021国产精品视频 | 最新免费av在线 | 亚洲专区免费观看 | 九九热在线视频免费观看 | 国产色 在线| 欧美日韩中文在线 | 国产免费又粗又猛又爽 | 日韩亚洲在线视频 | 日韩在线大片 | 国产精品成人一区二区三区吃奶 | 在线91色| 成人av影视 | 99精品久久久久久久久久综合 | 91麻豆精品国产91久久久久 | 西西4444www大胆视频 | 久久96国产精品久久99漫画 | 二区三区在线 | 欧美一级特黄高清视频 | 又黄又爽又刺激的视频 | 欧美在线观看小视频 | 亚洲成人黄 | 欧美黑吊大战白妞欧美 | av线上免费观看 | 亚洲经典中文字幕 | 国产精品一区二区精品视频免费看 | 成人9ⅰ免费影视网站 | 国产亚洲成人网 | 亚洲午夜激情网 | 久久九九影视网 | 91精品国产92久久久久 | 亚洲第一中文字幕 | 97超碰精品 | 日韩高清在线一区 | 精品9999 | 久久综合久久综合这里只有精品 | 亚洲成人欧美 | 亚洲国产高清在线观看视频 | 中文在线8新资源库 | 免费三级大片 | 久久免费一级片 | 超碰人人舔 | 91激情视频在线观看 | 色噜噜噜| 久久午夜国产精品 | 国产一区二区三区 在线 | 欧美日韩高清一区 | 亚洲精品视频免费看 | 日日成人网 | 久草在线免费播放 | 天天色天天射天天操 | 久久国产影视 | 日韩成年视频 | 国产精品九九九九九九 | 中文av在线播放 | 欧美人牲 | 成年人在线观看 | 国产亚洲精品bv在线观看 | 国产精品久久久久9999 | 国产正在播放 | 欧美日韩在线精品 | 狠狠色伊人亚洲综合成人 | 久久久精品国产一区二区电影四季 | 超碰国产在线 | 天天操天天摸天天爽 | 在线观看av的网站 | 色999五月色| 天天看天天操 | 国内精品久久久久久久久久久 | 97在线影院 | 成 人 黄 色视频免费播放 | 久久看片网站 | 全黄网站| 中文字幕在线有码 | 182午夜在线观看 | 欧美精选一区二区三区 | 日批视频在线观看免费 | 国产99久久九九精品免费 | 色狠狠干 | 特级毛片网站 | 波多野结衣精品 | 99精品免费在线 | 国产精品久久久久久久久久久久午夜片 | 亚洲欧美综合精品久久成人 | 日韩精品一区二区久久 | 欧美婷婷色 | 亚洲第一中文字幕 | 在线观看91av | aaa日本高清在线播放免费观看 | 99久久这里只有精品 | 一区二区三区电影在线播 | 精品视频免费久久久看 | 亚洲第一中文网 | 久久综合狠狠综合久久狠狠色综合 | 亚州精品天堂中文字幕 | www.久久爱.cn| 91视频免费播放 | adn—256中文在线观看 | 91在线中文字幕 | 免费一级黄色 | 国产成人精品在线观看 | 在线看国产精品 | 天天射天天射天天射 | 色婷婷狠狠操 | 毛片网在线 | 亚洲日本va午夜在线影院 | 久久久久久久久久久成人 | 婷婷色在线 | 国产一性一爱一乱一交 | 五月综合网| 日韩视频欧美视频 | 99在线观看免费视频精品观看 | 日本在线中文在线 | 久久综合激情 | 在线视频观看国产 | 中文字幕在线视频一区二区三区 | 国产一级特黄毛片在线毛片 | 欧美永久视频 | 国产在线观看xxx | 九九热只有这里有精品 | 欧美久久久久久 | 蜜臀av夜夜澡人人爽人人 | 久久中文字幕视频 | 中文字幕最新精品 | 色婷久久 | 成人avav| 国产麻豆视频 | 激情电影在线观看 | 久久午夜国产 | 一区二区三区四区五区在线 | 玖玖在线精品 | 日韩久久网站 | 好看av在线| 日本三级国产 | aa级黄色大片 | 日韩精品免费在线观看视频 | 国产视频久 | 91在线国内视频 | 97超碰免费在线 | 亚洲综合黄色 | 午夜精品久久久久久99热明星 | 西西4444www大胆艺术 | 99精品免费久久久久久久久 | 免费电影一区二区三区 | 久草在线观看视频免费 | 亚洲国产成人av网 | 97高清视频 | 国产精品久久三 | 成人禁用看黄a在线 | 欧美肥妇free| 九九爱免费视频 | 国产黄av | 激情综合啪 | 久久综合九色综合网站 | 在线观看视频一区二区 | 午夜电影 电影 | 香蕉成人在线视频 | 国产精品video爽爽爽爽 | 在线观看免费黄视频 | 国产在线一区二区三区播放 | 色香蕉在线 | 精品美女久久久久 | 精品国产成人av在线免 | 久草在线一免费新视频 | 中文字幕影片免费在线观看 | 亚洲国内精品在线 | 91精品久久香蕉国产线看观看 | 黄色一级在线视频 | 国产欧美日韩一区 | 麻豆国产在线视频 | 一区二区三区在线影院 | 91av欧美 | 国产一区二区三区网站 | 欧美精品免费视频 | 亚州av一区 | 激情偷乱人伦小说视频在线观看 | 天天在线操 | 在线观看aaa | 四虎永久网站 | 国产成人在线观看 | 中文字幕电影高清在线观看 | 久久国产精品一区二区 | 午夜影院一级 | 色婷婷婷| 中文字幕在线观看完整版 | 精品在线观看一区二区 | 成人av电影免费在线播放 | 免费看一级特黄a大片 | 韩日在线一区 | 亚洲精品成人 | 狠狠色狠狠色终合网 | 免费视频资源 | 亚州天堂 | 国产日韩欧美视频 | 92国产精品久久久久首页 | 天天狠狠| 99久久99视频只有精品 | 日韩黄色大片在线观看 | 91精品小视频 | 一区二区理论片 | 免费观看黄色av | 久久国产精品久久精品国产演员表 | 免费色网站| 亚洲精品美女久久久久 | 五月黄色 | 成在人线av | 一区二区三区精品在线视频 | 4hu视频| 欧美日韩激情视频8区 | 日韩色在线观看 | 国产亚洲精品久久久久久网站 | 日韩电影中文字幕在线观看 | 少妇性色午夜淫片aaaze | 五月天,com | 国产精品免费在线播放 | 91精品在线观看视频 | 欧美国产三区 | 日韩视频一区二区在线 | 日韩一区正在播放 | 成人中文字幕在线观看 | 亚洲视频中文 | 免费v片| 亚州精品国产 | 人人艹视频 | 97香蕉超级碰碰久久免费软件 | 欧美性脚交 | 最近最新中文字幕视频 | 日韩伦理一区二区三区av在线 | 亚洲精品乱码久久久久久高潮 | 亚洲高清免费在线 | 在线观看日本高清mv视频 | 精品一区二区在线免费观看 | 亚洲免费av一区二区 | 日韩电影一区二区在线 | 黄色大片免费网站 | 久久视频在线 | 国产色婷婷在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 亚洲精品国产自产拍在线观看 | 日本黄色免费大片 | 深爱激情五月综合 | 中文字幕在线播放日韩 | 天天色天天搞 | 亚洲国产一区在线观看 | 久久精品欧美 | 五月精品 | 九色福利视频 | 免费网站看av片 | 天天综合天天做天天综合 | 粉嫩av一区二区三区四区 | 91麻豆精品国产91久久久久久 | 最近中文国产在线视频 | 亚洲激情 欧美激情 | 天堂网一区 | 免费福利在线 | 精品国产伦一区二区三区观看方式 | 成年人免费观看国产 | 国产一级二级视频 | 五月天丁香亚洲 | 四虎在线免费观看 | 黄污网站在线观看 | 九九久久影院 | 中字幕视频在线永久在线观看免费 | 久久久伊人网 | 伊人天天操| 国产一级二级三级视频 | 亚洲电影在线看 | 国产精品麻 | japanesexxx乱女另类 | 欧美在线观看视频一区二区三区 | av在线电影播放 | 一区二区视频在线观看免费 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 伊人小视频 | 天天色天天射天天干 | 日韩av看片 | 亚洲一级片av| 国产精品va在线观看入 | 成人精品一区二区三区中文字幕 | 一本色道久久综合亚洲二区三区 | 国产精品免费视频观看 | 日本精品视频在线观看 | 在线播放日韩av | 超碰999| 精品国产乱码久久久久久1区2匹 | 久久爱www.| 视频三区 | 五月婷婷操 | 精品国产色 | 波多野结衣视频一区 | 日韩在线观看免费 | 成人动漫一区二区 | 极品中文字幕 | 国产精品自在线 | 日日天天狠狠 | 青青五月天 | 69精品久久| 91看片淫黄大片一级在线观看 | 精品99久久 | 亚洲午夜精品电影 | 麻花豆传媒mv在线观看 | 国产精品一区二区在线观看免费 | 在线国产小视频 | 亚洲九九九在线观看 | 久久免费视频5 | 一区二区视频免费在线观看 | 美女网站在线观看 | 亚洲精品一区二区三区四区高清 | 成人9ⅰ免费影视网站 | 国产粉嫩在线观看 | 欧美午夜a | 亚洲精品美女久久 | 日本中文字幕视频 | 射久久 | 久久久久久久久久网 | 天天操月月操 | 日日爽天天爽 | 国产精品a久久 | 久久精品国产精品亚洲 | 国产一区二区不卡视频 | 久久精品久久久久 | 免费日韩一区二区三区 | 97精品国产 | 欧美 日韩 国产 中文字幕 | 中文字幕一区二 | 91免费看片黄| 日韩中文在线观看 | 国产精品成人久久久久久久 | 色在线网 | 91麻豆精品国产午夜天堂 | 高清av免费看 | 久久一区91 | 91av美女| 色97在线| 91精品在线看 | 久久激情婷婷 | 日韩精品视频在线观看网址 | 一级免费av| 成人在线免费小视频 | 亚洲一级片免费观看 | 激情网五月婷婷 | 在线 高清 中文字幕 | 99精品电影| 国产一性一爱一乱一交 | 香蕉91视频| 成人国产精品免费观看 | 狠狠干天天干 | 国内精品久久久 | 国产手机视频精品 | 欧美日韩在线观看视频 | 日本动漫做毛片一区二区 | 中文乱码视频在线观看 | 欧美在线观看小视频 | 国产一级免费在线 | 国产美女主播精品一区二区三区 | 麻豆国产精品视频 | 黄色资源在线观看 | 久久无码av一区二区三区电影网 | 欧美日韩二区在线 | 国产精品久久一卡二卡 | 亚洲91精品在线观看 | 国产在线国偷精品产拍 | 国产a视频免费观看 | 99riav1国产精品视频 | 久久精品网站免费观看 | 亚洲天堂在线观看完整版 | 免费观看www小视频的软件 | 中文字幕成人网 | 国产高清中文字幕 | 精品国产乱码久久 | 亚洲精品高清视频在线观看 | 六月丁香激情综合 | 狠狠狠色丁香综合久久天下网 | 韩国一区二区三区在线观看 | 亚洲免费在线视频 | 久久免费播放 | 精品国产免费久久 | 国产精品a成v人在线播放 | 综合色在线观看 | 久草在线视频精品 | 亚洲成av人影片在线观看 | 国产特级毛片aaaaaa高清 | 亚洲精品在线观看中文字幕 | 久久精品一区二区三区中文字幕 | 久久香蕉影视 | 亚洲精品777 | 国产专区在线播放 | 免费观看一区二区三区视频 | 国产喷水在线 | 91精品国产高清 | 91最新在线 | 久久兔费看a级 | 日日日网| 精品福利av | 天天干天天干天天干 | 91中文字幕在线 | 色就是色综合 | 久久天天躁 | 最新中文字幕在线资源 | 日韩三级一区 | 久久精品一区二区三区国产主播 | 国产一区在线看 | 日韩成人免费在线 | 综合网欧美| 欧美激情综合五月色丁香小说 | 国产精品永久久久久久久久久 | 九色激情网 | 欧美一区二区三区在线看 | av大全免费在线观看 | 黄色三级av| 超级碰碰免费视频 | 日韩在线观看你懂的 | 五月婷婷在线视频观看 | 日韩av影视 | 超碰97国产精品人人cao | 人人狠狠综合久久亚洲 | 新版资源中文在线观看 | 久久99亚洲网美利坚合众国 | 久综合网 | 在线观看视频黄 | 日韩一区二区三区高清在线观看 | 久草在线视频在线观看 | 国产精品久久久久久久午夜片 | 美女黄色网在线播放 | 久久久免费精品 | 一级黄色片毛片 | 国产精品9999久久久久仙踪林 | 热久久精品在线 | 婷婷综合激情 | 96国产精品视频 | 五月开心网 | 中文字幕a在线 | 午夜av电影 | 天堂网在线视频 | 一区二区三区日韩在线观看 | 亚洲天堂视频在线 | 久久免费99精品久久久久久 | 久久久精品欧美 | 日本精a在线观看 | 免费观看一区 | 国产亚洲精品女人久久久久久 | 丁香六月婷婷开心 | 国产激情久久久 | 18性欧美xxxⅹ性满足 | 又黄又刺激又爽的视频 | 欧美大片在线观看一区 | 亚洲精品欧美精品 | 久草在线免费在线观看 | 黄色影院在线观看 | 久久草草热国产精品直播 | www.亚洲视频.com | 97人人超碰在线 | 国产免费av一区二区三区 | 在线视频久 | 久久免费视频一区 | 精品一二三四视频 | 中文字幕国产精品一区二区 | 欧美一级电影在线观看 | 天天操天天怕 | 免费久久99精品国产 | 久草免费色站 | 久热只有精品 | 亚洲乱码国产乱码精品天美传媒 | 日韩精品中文字幕在线不卡尤物 | 久久99国产精品免费网站 | 西西www4444大胆视频 | 四虎免费av| 日韩精品一区二区免费 | 国产资源免费在线观看 | 婷婷色网视频在线播放 | 亚洲欧美日韩一区二区三区在线观看 | 国产麻豆剧传媒免费观看 | 久久全国免费视频 | 午夜久久福利 | 久草电影免费在线观看 | 亚洲精品国产综合久久 | 久久精品免费播放 | 制服丝袜欧美 | 免费精品视频 | 久久久久久久久久久久影院 | 欧美 日韩 成人 | 在线看v片成人 | 91久久爱热色涩涩 | 91高清免费在线观看 | 日韩欧美在线免费观看 | 久草在线手机观看 | 超碰人人做 | 日韩欧美综合视频 | 国内精品久久天天躁人人爽 | 欧美 激情 国产 91 在线 | 99久久精品国产观看 | 日韩av在线网站 | 免费一级片在线观看 | 中文字幕亚洲欧美日韩 | 男女精品久久 | 草久中文字幕 | 色婷婷在线观看视频 | 久久天天躁狠狠躁亚洲综合公司 | 伊人官网 | 免费色视频| 日韩精品久久久久久久电影99爱 | a天堂中文在线 | 麻豆视频91 | 亚洲激情视频在线观看 | 91视频高清 | 欧美性色综合网 | 亚洲国产精品va在线看黑人动漫 | 国产91精品看黄网站在线观看动漫 | 又黄又爽又刺激的视频 | 99久久综合国产精品二区 | 精品在线观看一区二区 | 亚洲国产精品激情在线观看 | av资源在线观看 | 中文资源在线官网 | 三级午夜片 | 久久激情五月婷婷 | 国产又粗又猛又黄又爽的视频 | 亚洲成人999| 亚洲精选在线观看 | 亚洲婷婷免费 | 一区二区三区精品在线 | 国产精品99久久久久久人免费 | 国产精品久一 | 亚洲精品一区二区久 | 日韩国产欧美在线视频 | 狠狠艹夜夜干 | 在线最新av | 精品国产一区二区三区av性色 | 99久久久| 中文永久免费观看 | 中文字幕一区二区三区四区在线视频 | 五月婷婷亚洲 | 天天色棕合合合合合合 | 伊人婷婷色 | 欧美中文字幕第一页 | 中文av网站| 国产精品九九九九九九 | 久av电影 | 免费 在线 中文 日本 | 日韩视频一区二区在线观看 | 国产喷水在线 | 激情五月播播久久久精品 | 成人丁香花| 国产精品99在线观看 | 91久草视频 | 97超碰色偷偷 | 国产手机在线观看视频 | 99这里只有久久精品视频 | 成人黄色毛片视频 | 婷婷.com| 99久久精品国产亚洲 | 日本性动态图 | 国产精品18久久久久久久 | 久久草av | 国产一级免费播放 | 国产无套精品久久久久久 | 成人一区电影 | av一级片网站 | 激情久久五月 | 夜夜躁日日躁狠狠久久88av | 99久久精品国产免费看不卡 | 日韩在线大片 | 色狠狠一区二区 | 丁香六月久久综合狠狠色 | 久久精品中文字幕免费mv | 日本中文字幕在线一区 | 黄色av免费电影 | 国产在线小视频 | 四月婷婷在线观看 | 天天看天天干 | 在线观看视频一区二区三区 | 欧美一级电影片 | 天天操综合 | 四虎成人精品永久免费av | 91桃色在线免费观看 | 99久久国产免费免费 | 黄色免费网战 | 久久有精品 | 欧美一区二区日韩一区二区 | 国产精品一区二区在线免费观看 | 天天天色综合a | 久久激情小说 | 国产免费不卡 | 中文字幕在线观看免费高清电影 | 国产香蕉97碰碰碰视频在线观看 | 国产精品美女久久久久久网站 | 在线观看黄色 | 美女网站在线观看 | 国产视频日韩视频欧美视频 | 一区二区三区四区五区在线视频 | a√天堂中文在线 | 一区二区三区国产欧美 | 中文av在线免费观看 | 久久天堂影院 | 91麻豆精品国产91久久久久久 | 我要色综合天天 | 免费观看的黄色 | 97在线观| 国产午夜一区 | 狠狠黄| 香蕉久久久久久久 | 国产成人精品一区二区三区 | 成人教育av | 国产精品大片免费观看 | 丁香 婷婷 激情 | 精品一区二区在线免费观看 | 免费在线播放视频 | 激情网婷婷 | 成人久久久精品国产乱码一区二区 | 婷婷综合电影 | 亚洲精品成人 | 九九热视频在线播放 | 免费看片网址 | 日韩电影在线一区 | 操久 | 丰满少妇在线观看资源站 | 天天操夜夜操国产精品 | 久久久久国产一区二区 | 欧美激情第十页 | 成人国产亚洲 | 欧美最新另类人妖 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 伊人五月天 | 99r在线 | 欧美在线a视频 | 一区二区欧美日韩 | 亚洲最大免费成人网 | 国产精品美女久久久久久免费 | 97超碰伊人 | 国产精品s色 | 在线观看第一页 | 国产精品久久中文字幕 | 国产小视频在线看 | 精品国产资源 | 九九热1| 国产91精品在线观看 | 久久视频免费 | 亚洲精品成人av在线 | 狠狠躁夜夜躁人人爽超碰91 | 国产不卡av在线播放 | 日韩字幕 | 一区二区三区精品在线视频 | 国产精品美女久久久网av | www.99在线观看 | 国产黄色资源 | 免费能看的av | 天天色天天操天天爽 | 久久久久久久久爱 | 99热这里只有精品在线观看 | 久久天天操 | av成人免费在线观看 | 久久精品视频免费 | www.色午夜.com | 亚洲伦理一区二区 | 在线看国产精品 | 国产黄色片免费看 | 丁香资源影视免费观看 | 丁香视频| 色婷婷狠狠五月综合天色拍 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 亚州国产精品视频 | 日韩av一区在线观看 | 亚洲综合在线视频 | 日韩系列在线观看 | 久久一区二区三区超碰国产精品 | 色婷婷综合久久久 | 一区二区三区在线不卡 | 中文字幕在线免费观看视频 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久久久久久久久免费视频 | 天堂在线免费视频 | 国内久久精品视频 | 欧美日韩一区二区免费在线观看 | 麻豆91在线看 | 国产又粗又硬又爽的视频 | 激情综合色播五月 | 丝袜少妇在线 | 久久这里只有精品视频首页 | 日本在线观看黄色 | 亚洲黄色一级大片 | 国产精品免费久久 | 黄网站免费大全入口 | www.com久久久 | 亚州国产精品 | 操综合 | 中文字幕资源在线观看 | 日本中文一级片 | 免费观看www小视频的软件 | a视频在线播放 | 国产老妇av | 在线国产精品一区 | 天天操网址 | 美女视频免费精品 | 精品中文字幕视频 | 国产成人高清在线 | 亚洲一区二区三区毛片 | 日日夜夜精品 | 青草视频在线看 | 精品国产一区二区三区av性色 | 久久综合九色综合97婷婷女人 | 最新av网站在线观看 | a级免费观看 | 欧洲av不卡| 91九色视频观看 | 97在线超碰 | 国产一区二区三区网站 | 亚洲成人频道 | 黄色成年片 | av电影亚洲| 亚洲精品啊啊啊 | 国产精品久久久久久久久久久久午夜片 | 高清av影院| 欧美精品xx | 国产99在线播放 | 在线观看色网 | 国产区网址 | 国产一区二区久久久久 | 成人全视频免费观看在线看 | 成 人 黄 色视频免费播放 | 成人av电影免费在线观看 | 狠狠操在线 | 久久久久久久久久久高潮一区二区 | 国产精品日韩在线播放 | 97av在线视频 | 日韩精品综合在线 | 亚洲精品久久久久中文字幕m男 | av看片在线 | 久久国产精品一区二区 | 91天堂素人约啪 | 国产亚洲一区二区三区 | 99精品视频一区二区 | 日韩专区在线 | 国产成人精品久久 | 天天射天天搞 | 日韩视频免费在线观看 | 麻豆你懂的 | 天天射天天色天天干 | 日日骑 | 久久电影国产免费久久电影 | 久久国内视频 | 日韩高清av在线 | 久久久高清视频 | 日韩欧美电影网 | 欧美男同视频网站 | 亚洲精品国产精品国产 | 精品久久美女 | 久久久久久久免费观看 | 91看片淫黄大片一级在线观看 | 日本女人的性生活视频 | 亚洲 欧美变态 另类 综合 | 国产精品九九九九九九 | 日韩网页 | 蜜桃视频精品 | 国产精品一区久久久久 | 97超碰中文字幕 | 精品亚洲免a| 亚洲最新视频在线 | 久草在线免费播放 | 色视频网站免费观看 | 不卡视频一区二区三区 | 天天亚洲综合 | 亚洲视频大全 | 久久欧美视频 | www99精品 | 国产精品久久久久高潮 | 国产精品毛片一区视频 | 五月天激情综合网 | 在线观看视频h | 久草在线观看资源 | 黄色app网站在线观看 | 成人a级黄色片 | 欧美日韩国产三级 | 国产精品一区二区免费在线观看 | 国产精品一区二区吃奶在线观看 | 国产人在线成免费视频 | 99色免费视频 | 亚洲干 | 国产成人精品久久久 | 日韩电影在线观看一区二区三区 | 色婷婷99| 天天想夜夜操 | 亚洲人成综合 | 最近更新的中文字幕 | 在线观看免费观看在线91 | 五月婷婷六月丁香 | 97视频网站| 国产福利不卡视频 | 99草在线视频 | 9999在线视频 | 日韩一级电影在线 | 欧美91在线 | 六月婷婷网 | 美女视频黄频大全免费 | 久久久免费国产 | 国产色 在线| av网站在线免费观看 | 久久久久久久免费观看 | 亚洲国产播放 | 国产精品毛片一区 | 国产不卡网站 | 国产高清99 | 五月天伊人 | 久久午夜精品视频 | 久久黄色小说视频 | 日日爱999 | 久久久久女人精品毛片 | av九九| 久久国产精彩视频 | 91精品免费在线观看 | 久久精品免费观看 | 欧洲精品码一区二区三区免费看 | 麻豆久久一区 | 天堂va欧美va亚洲va老司机 | 日韩视频一区二区三区在线播放免费观看 | 有码中文字幕 | 亚洲毛片久久 | 欧美激情综合五月色丁香 | 日日日天天天 | 国产久视频 | 亚洲成av人片在线观看www | 久久国语露脸国产精品电影 | 91在线小视频 | 天天舔夜夜操 | 在线观看日本高清mv视频 | 色综合天天爱 | aaa免费毛片 | 国产视频中文字幕在线观看 | 草莓视频在线观看免费观看 | 久草视频免费观 | 中文字幕精品一区二区精品 | 美女视频免费一区二区 | 中文字幕一区二区在线观看 | 久色婷婷 | 亚洲精品资源在线观看 | 中文字幕av在线不卡 | 操操操干干干 | 午夜精品电影 | 久久久99国产精品免费 | 最新av在线播放 | 成人毛片在线观看视频 | 天天操网|