<samp id="fumjk"></samp><dfn id="fumjk"><menuitem id="fumjk"></menuitem></dfn>
      肩上芭蕾,hodv-21134,马腾你别走电影完整版在线观看,快乐美美向前冲 0627,藜麦的正确吃法,高清命悬一枪未删减,儿媳与爸爸免费观看电视剧全集 ,韩剧苦尽甘来遇见你
      java語言

      Spring+MyBatis數據讀寫分離的實例詳解

      時間:2025-02-01 23:52:24 java語言

      Spring+MyBatis數據讀寫分離的實例詳解

        本文介紹了Spring Boot + MyBatis讀寫分離,有需要了解Spring+MyBatis讀寫分離的朋友可參考。想了解更多相關信息請持續關注我們應屆畢業生考試網!

        其最終實現功能:

        1.默認更新操作都使用寫數據源

        2.讀操作都使用slave數據源

        3.特殊設置:可以指定要使用的數據源類型及名稱(如果有名稱,則會根據名稱使用相應的數據源)

        其實現原理如下:

        1.通過Spring AOP對dao層接口進行攔截,并對需要指定數據源的接口在ThradLocal中設置其數據源類型及名稱

        2.通過MyBatsi的插件,對根據更新或者查詢操作在ThreadLocal中設置數據源(dao層沒有指定的情況下)

        3.繼承AbstractRoutingDataSource類。

        在此直接寫死使用HikariCP作為數據源

        其實現步驟如下:

        1.定義其數據源配置文件并進行解析為數據源

        2.定義AbstractRoutingDataSource類及其它注解

        3.定義Aop攔截

        4.定義MyBatis插件

        5.整合在一起

        1.配置及解析類

        其配置參數直接使用HikariCP的配置,其具體參數可以參考HikariCP。

        在此使用yaml格式,名稱為datasource.yaml,內容如下:

        dds:

        write:

        jdbcUrl: jdbc:mysql://localhost:3306/order

        password: liu123

        username: root

        maxPoolSize: 10

        minIdle: 3

        poolName: master

        read:

        - jdbcUrl: jdbc:mysql://localhost:3306/test

        password: liu123

        username: root

        maxPoolSize: 10

        minIdle: 3

        poolName: slave1

        - jdbcUrl: jdbc:mysql://localhost:3306/test2

        password: liu123

        username: root

        maxPoolSize: 10

        minIdle: 3

        poolName: slave2

        定義該配置所對應的Bean,名稱為DBConfig,內容如下:

        @Component

        @ConfigurationProperties(locations = "classpath:datasource.yaml", prefix = "dds")

        public class DBConfig {

        private List<HikariConfig> read;

        private HikariConfig write;

        public List<HikariConfig> getRead() {

        return read;

        }

        public void setRead(List<HikariConfig> read) {

        this.read = read;

        }

        public HikariConfig getWrite() {

        return write;

        }

        public void setWrite(HikariConfig write) {

        this.write = write;

        }

        }

        把配置轉換為DataSource的工具類,名稱:DataSourceUtil,內容如下:

        import com.zaxxer.hikari.HikariConfig;

        import com.zaxxer.hikari.HikariDataSource;

        import javax.sql.DataSource;

        import java.util.ArrayList;

        import java.util.List;

        public class DataSourceUtil {

        public static DataSource getDataSource(HikariConfig config) {

        return new HikariDataSource(config);

        }

        public static List<DataSource> getDataSource(List<HikariConfig> configs) {

        List<DataSource> result = null;

        if (configs != null && configs.size() > 0) {

        result = new ArrayList<>(configs.size());

        for (HikariConfig config : configs) {

        result.add(getDataSource(config));

        }

        } else {

        result = new ArrayList<>(0);

        }

        return result;

        }

        }

        2.注解及動態數據源

        定義注解@DataSource,其用于需要對個別方法指定其要使用的數據源(如某個讀操作需要在master上執行,但另一讀方法b需要在讀數據源的具體一臺上面執行)

        @Retention(RetentionPolicy.RUNTIME)

        @Target(ElementType.METHOD)

        public @interface DataSource {

        /**

        * 類型,代表是使用讀還是寫

        * @return

        */

        DataSourceType type() default DataSourceType.WRITE;

        /**

        * 指定要使用的DataSource的名稱

        * @return

        */

        String name() default "";

        }

        定義數據源類型,分為兩種:READ,WRITE,內容如下:

        public enum DataSourceType {

        READ, WRITE;

        }

        定義保存這此共享信息的類DynamicDataSourceHolder,在其中定義了兩個ThreadLocal和一個map,holder用于保存當前線程的數據源類型(讀或者寫),pool用于保存數據源名稱(如果指定),其內容如下:

        import java.util.Map;

        import java.util.concurrent.ConcurrentHashMap;

        public class DynamicDataSourceHolder {

        private static final Map<String, DataSourceType> cache = new ConcurrentHashMap<>();

        private static final ThreadLocal<DataSourceType> holder = new ThreadLocal<>();

        private static final ThreadLocal<String> pool = new ThreadLocal<>();

        public static void putToCache(String key, DataSourceType dataSourceType) {

        cache.put(key,dataSourceType);

        }

        public static DataSourceType getFromCach(String key) {

        return cache.get(key);

        }

        public static void putDataSource(DataSourceType dataSourceType) {

        holder.set(dataSourceType);

        }

        public static DataSourceType getDataSource() {

        return holder.get();

        }

        public static void putPoolName(String name) {

        if (name != null && name.length() > 0) {

        pool.set(name);

        }

        }

        public static String getPoolName() {

        return pool.get();

        }

        public static void clearDataSource() {

        holder.remove();

        pool.remove();

        }

        }

        動態數據源類為DynamicDataSoruce,其繼承自AbstractRoutingDataSource,可以根據返回的key切換到相應的數據源,其內容如下:

        import com.zaxxer.hikari.HikariDataSource;

        import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

        import javax.sql.DataSource;

        import java.util.HashMap;

        import java.util.List;

        import java.util.Map;

        import java.util.concurrent.ConcurrentHashMap;

        import java.util.concurrent.ThreadLocalRandom;

        public class DynamicDataSource extends AbstractRoutingDataSource {

        private DataSource writeDataSource;

        private List<DataSource> readDataSource;

        private int readDataSourceSize;

        private Map<String, String> dataSourceMapping = new ConcurrentHashMap<>();

        @Override

        public void afterPropertiesSet() {

        if (this.writeDataSource == null) {

        throw new IllegalArgumentException("Property 'writeDataSource' is required");

        }

        setDefaultTargetDataSource(writeDataSource);

        Map<Object, Object> targetDataSource = new HashMap<>();

        targetDataSource.put(DataSourceType.WRITE.name(), writeDataSource);

        String poolName = ((HikariDataSource)writeDataSource).getPoolName();

        if (poolName != null && poolName.length() > 0) {

        dataSourceMapping.put(poolName,DataSourceType.WRITE.name());

        }

        if (this.readDataSource == null) {

        readDataSourceSize = 0;

        } else {

        for (int i = 0; i < readDataSource.size(); i++) {

        targetDataSource.put(DataSourceType.READ.name() + i, readDataSource.get(i));

        poolName = ((HikariDataSource)readDataSource.get(i)).getPoolName();

        if (poolName != null && poolName.length() > 0) {

        dataSourceMapping.put(poolName,DataSourceType.READ.name() + i);

        }

        }

        readDataSourceSize = readDataSource.size();

        }

        setTargetDataSources(targetDataSource);

        super.afterPropertiesSet();

        }

        @Override

        protected Object determineCurrentLookupKey() {

        DataSourceType dataSourceType = DynamicDataSourceHolder.getDataSource();

        String dataSourceName = null;

        if (dataSourceType == null ||dataSourceType == DataSourceType.WRITE || readDataSourceSize == 0) {

        dataSourceName = DataSourceType.WRITE.name();

        } else {

        String poolName = DynamicDataSourceHolder.getPoolName();

        if (poolName == null) {

        int idx = ThreadLocalRandom.current().nextInt(0, readDataSourceSize);

        dataSourceName = DataSourceType.READ.name() + idx;

        } else {

        dataSourceName = dataSourceMapping.get(poolName);

        }

        }

        DynamicDataSourceHolder.clearDataSource();

        return dataSourceName;

        }

        public void setWriteDataSource(DataSource writeDataSource) {

        this.writeDataSource = writeDataSource;

        }

        public void setReadDataSource(List<DataSource> readDataSource) {

        this.readDataSource = readDataSource;

        }

        }

        3.AOP攔截

        如果在相應的dao層做了自定義配置(指定數據源),則在些處理。解析相應方法上的@DataSource注解,如果存在,并把相應的信息保存至上面的DynamicDataSourceHolder中。在此對com.hfjy.service.order.dao包進行做攔截。內容如下:

        import com.hfjy.service.order.anno.DataSource;

        import com.hfjy.service.order.wr.DynamicDataSourceHolder;

        import org.aspectj.lang.JoinPoint;

        import org.aspectj.lang.annotation.After;

        import org.aspectj.lang.annotation.Aspect;

        import org.aspectj.lang.annotation.Before;

        import org.aspectj.lang.annotation.Pointcut;

        import org.aspectj.lang.reflect.MethodSignature;

        import org.springframework.stereotype.Component;

        import java.lang.reflect.Method;

        /**

        * 使用AOP攔截,對需要特殊方法可以指定要使用的數據源名稱(對應為連接池名稱)

        */

        @Aspect

        @Component

        public class DynamicDataSourceAspect {

        @Pointcut("execution(public * com.hfjy.service.order.dao.*.*(*))")

        public void dynamic(){}

        @Before(value = "dynamic()")

        public void beforeOpt(JoinPoint point) {

        Object target = point.getTarget();

        String methodName = point.getSignature().getName();

        Class<?>[] clazz = target.getClass().getInterfaces();

        Class<?>[] parameterType = ((MethodSignature)point.getSignature()).getMethod().getParameterTypes();

        try {

        Method method = clazz[0].getMethod(methodName,parameterType);

        if (method != null && method.isAnnotationPresent(DataSource.class)) {

        DataSource datasource = method.getAnnotation(DataSource.class);

        DynamicDataSourceHolder.putDataSource(datasource.type());

        String poolName = datasource.name();

        DynamicDataSourceHolder.putPoolName(poolName);

        DynamicDataSourceHolder.putToCache(clazz[0].getName() + "." + methodName, datasource.type());

        }

        } catch (Exception e) {

        e.printStackTrace();

        }

        }

        @After(value = "dynamic()")

        public void afterOpt(JoinPoint point) {

        DynamicDataSourceHolder.clearDataSource();

        }

        }

        4.MyBatis插件

        如果在dao層沒有指定相應的要使用的數據源,則在此進行攔截,根據是更新還是查詢設置數據源的類型,內容如下:

        import org.apache.ibatis.executor.Executor;

        import org.apache.ibatis.mapping.MappedStatement;

        import org.apache.ibatis.mapping.SqlCommandType;

        import org.apache.ibatis.plugin.*;

        import org.apache.ibatis.session.ResultHandler;

        import org.apache.ibatis.session.RowBounds;

        import java.util.Properties;

        @Intercepts({

        @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}),

        @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class,

        RowBounds.class, ResultHandler.class})

        })

        public class DynamicDataSourcePlugin implements Interceptor {

        @Override

        public Object intercept(Invocation invocation) throws Throwable {

        MappedStatement ms = (MappedStatement)invocation.getArgs()[0];

        DataSourceType dataSourceType = null;

        if ((dataSourceType = DynamicDataSourceHolder.getFromCach(ms.getId())) == null) {

        if (ms.getSqlCommandType().equals(SqlCommandType.SELECT)) {

        dataSourceType = DataSourceType.READ;

        } else {

        dataSourceType = DataSourceType.WRITE;

        }

        DynamicDataSourceHolder.putToCache(ms.getId(), dataSourceType);

        }

        DynamicDataSourceHolder.putDataSource(dataSourceType);

        return invocation.proceed();

        }

        @Override

        public Object plugin(Object target) {

        if (target instanceof Executor) {

        return Plugin.wrap(target, this);

        } else {

        return target;

        }

        }

        @Override

        public void setProperties(Properties properties) {

        }

        }

        5.整合

        在里面定義MyBatis要使用的內容及DataSource,內容如下:

        import com.hfjy.service.order.wr.DBConfig;

        import com.hfjy.service.order.wr.DataSourceUtil;

        import com.hfjy.service.order.wr.DynamicDataSource;

        import org.apache.ibatis.session.SqlSessionFactory;

        import org.mybatis.spring.SqlSessionFactoryBean;

        import org.mybatis.spring.annotation.MapperScan;

        import org.springframework.beans.factory.annotation.Qualifier;

        import org.springframework.context.annotation.Bean;

        import org.springframework.context.annotation.Configuration;

        import org.springframework.core.io.ClassPathResource;

        import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

        import org.springframework.jdbc.datasource.DataSourceTransactionManager;

        import javax.annotation.Resource;

        import javax.sql.DataSource;

        @Configuration

        @MapperScan(value = "com.hfjy.service.order.dao", sqlSessionFactoryRef = "sqlSessionFactory")

        public class DataSourceConfig {

        @Resource

        private DBConfig dbConfig;

        @Bean(name = "dataSource")

        public DynamicDataSource dataSource() {

        DynamicDataSource dataSource = new DynamicDataSource();

        dataSource.setWriteDataSource(DataSourceUtil.getDataSource(dbConfig.getWrite()));

        dataSource.setReadDataSource(DataSourceUtil.getDataSource(dbConfig.getRead()));

        return dataSource;

        }

        @Bean(name = "transactionManager")

        public DataSourceTransactionManager dataSourceTransactionManager(@Qualifier("dataSource") DataSource dataSource) {

        return new DataSourceTransactionManager(dataSource);

        }

        @Bean(name = "sqlSessionFactory")

        public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {

        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();

        sessionFactoryBean.setConfigLocation(new ClassPathResource("mybatis-config.xml"));

        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()

        .getResources("classpath*:mapper/*.xml"));

        sessionFactoryBean.setDataSource(dataSource);

        return sessionFactoryBean.getObject();

        }

        }

        如果不清楚,可以查看github上源碼orderdemo


      【Spring+MyBatis數據讀寫分離的實例詳解】相關文章:

      C語言以數據塊的形式讀寫文件實例代碼10-09

      如何實現yii2 數據庫讀寫分離配置07-01

      Java內部類詳解及實例分析06-25

      php數據類型詳解09-24

      php多個文件及圖片上傳實例詳解08-02

      C++類中的繼承實例詳解07-05

      C++冒泡排序算法實例詳解06-09

      C語言循環隊列的表示與實例詳解08-21

      詳解C語言格式化讀寫文件08-29

      主站蜘蛛池模板: 中国新说唱第一集| 20世纪少女| 恶作剧之吻 电视剧| 日本电影 和讨厌的部长一起出差| 春雨免费版在线观看全集电影 | 美版灭火宝贝2监狱| 高清JOJO的奇妙冒险 飙马野郎| 酒店1-90集在线观看免费高清 | 彼女电影| 暖暖国语在线观看免费版电视剧| 3d肉蒲团图片| 美国《行政助理》2014| 影音在线资源| 甜蜜惩罚未增删带翻译不打马| 学长把我抱到厕所c| 爱我几何莫妮卡完整版| 仙逆年番第二部| 法国满天星《巴黎律师事务所》片名| 我与婶婶| 雾里歌曲原唱| 娃娃脸 5| 广场舞尕撒拉| 美容院特殊三| 洛丽塔在线观看高清免费| 我走了你才说爱我短剧免费观看| 八星抱喜下载| 金汉斯烤肉自助| 特邀外卖员的女主角是谁| 火线三兄弟多少集| 南来北往电视剧| 我的世界天堂| 3对1:初次体检4| 儿女情更长电视剧全集| 韩国伦理电影,需要爸爸的种子在线播放| 《品味人生》完整版在线观看| 公民凯恩电影| 韩国空姐2024满天星法版演员表| 电影灯草和尚高清免费普通话版 | 明星的恋人电视剧| 《美景之屋4》无删减裸露版| 《私人家教》在线观看| 尖峰时刻 3| 开心鬼救开心鬼国语| 凯登克罗斯《急诊护士》| 一酷到底| 锵锵锵锵铜锵铜锵铜锵| 一路向西百度影音下载| 黑执事第三季全集| 卖百科全书的女人完整版电影免费观看| 与敌同行国语下载| 后厨激战1到5集免费观看| 星际少年队| 河南曲剧卷席筒| 柳舟记电视剧免费观看| 小道姑下山掀皇短剧免费观看全集 | 洗冤录第一部国语电视剧免费观看| 正在播放: JUL-601 你真的是处男吗?因为发现丈夫出轨被自称童贞的男子欺骗身 | 先结婚后恋爱全集| 透明时装| 韩剧说不出的爱| 免费看斗罗大陆| 也平凡1-45集免费观看| 麦乐迪女超人在线观看| 南来北往电视剧剧情介绍| 《需要爸爸播种子》电影免费在线观看,高清完整版美国倫理片_屠夫电影网 | 亮剑 电视剧| 女孩不平凡电影| 地铁逃生五子棋| 丁度《我怀念索妮娅》在线播放| 告诉我想要什么| 新福尔摩斯 第二季| 西施电视剧| 天降女子第一季在线观看免费观看| XL司令第一季真人版韩文| 今天的侦探| 渔夫的荒淫艳史| 爱情雨全集下载| 八戒看免费高清电视剧大全| 兵心依旧| 李小龙传奇电视剧| 八妻子影院免费观看电视剧高清| 电视剧老女人6| 盛唐风流电影免费观看| 富江系列| 飘摇人生全集电视剧| 欧美1一5普通话| 水星魔女| 《卖保险的女销售》免费看| 书卷一梦电视剧免费观看完整版| 《需要爸爸播种子》免费观看在线播放_HD/未删减_1080P高清电影完整版 - 天堂 | 我和我的祖国王菲| 《美丽小蜜蜂10姐姐叫》中文字幕高清完整版免费在线观看-八戒影视 | 小屁孩日记免费完整观看| 情罪电影未删减版在哪里可以看| 新冠是风寒还是风热| 游山西村的诗意| 五号特工组前传| 法证先锋5| 李一桐免费观看全集| 女超人麦乐迪法国电影免费观看 | 大漠之战高清免费观看完整版| 吗吗朋友33| 游戏007| 《需要爸爸播种子》-免费在线观看高清完整版-片库网 | 妈妈我爱你手势舞| 电影 搜索| 盛唐风流电影在线观看高清国语| 亲爱的爸妈| overflower在线观看 | 喀什市| 少年阿凡提全集| 张国荣为什么那么红| 她很漂亮韩剧高清在线观看| 你妈妈也一样| 缘之空第一季在线观看免费完整 | 法国满天星八尺夫人| 止水之下| 甜蜜家园2今日播出| 一个朋友的母亲中字ID英文 | 一生守护全集| 日本jzjzz在线观看 | 进击的巨人03| xl司令动漫全集在线观看免费播放| 暗恋者的救赎| 韩国电影出轨| 哇嘎电影高清完整视频| 徐少强请鬼| 铁甲钢拳在线观看| 韩剧理发店的特别待遇| 电视剧银杏飘落| 电视剧锦衣之下| 《特殊游泳课》免费观看下拉式| 善良的姐姐在线| 美景之屋6:我的完美人生| 特殊美容院的待遇1 | 高压监狱完整版| 高清K-POP:猎魔女团未删减 | 无间道3电影| 高铁坐过站可以免费坐回去| 动感之星小玲236集全部剧情视频播| 出轨电视剧在线观看完整版高清| 爱情真善美40| 哇嘎电影高清免费资源| 小公主苏菲亚第二季免费观看 | 幸福的向日葵| 粟裕大将全集| 西游记之再世妖王免费观看| 九九电视剧全集免费| 知否知否应是绿肥红瘦主题曲| 寄生兽生命的准则| 暧昧失温短剧全集在线观看| 秀豆魔导士| 酒店1—100集免费观| 秘密花园 日剧| 网球王子国语版全集百度影音| 牙医姐妹完整版免费 在线观看| 开国大典电影完整版| 《艋舺》| 神鬼战士1满天星版| 韩国禁令啥意思| 天注定 预告片| 父辈爱情故事短剧免费观看| 《四位妇女按摩完整版》| 杨幂刘恺威盛夏晚晴天| 妻子的浪漫旅行第五季| 麦乐迪满天星| 纯情罗曼史第一季全集在线| 爱我几何完整版免费观看| 反击第一季| 伪装者48集全集免费| 坎贝奇三部曲《品味人生》免费| 嘉庆王朝42集免费观看电视剧| 凯登克罗斯01A| 兄弟的女人韩剧电视剧| 搜下留情电视剧| 高清《谵妄》电影在线观看完整版| 公交妹妹| 速度与激情11| 博客| 血疫电影完整免费观看| MSD-005 欧妮 维修工的心跳艳遇(下) 疼痛凌辱高潮快感-在线观看-338TV | 在丈夫面前被别人欺负日语| 无限资源日本动漫版在线| 特殊交易在线观看| 毛骗1季| 绝望教室日本动漫免费观看| 仙逆最新免费播放| 祝福祖国歌谱| 日本女大学生按摩在线观看| 终极三国土豆网| xl司令在线免费观看 | 千方百计爱上你国语版百度影音| 黑白配4黑白配在线观看免费高清 《在姨母家的客厅》免费播放完整版 | 日本维修工的艳遇| 世界十大禁播爱情片| 21世纪爱情指南高清免费观看| 风风风观看未删减版| 胜者为王粤语| 斗破苍窘| 唐伯唬vlog在线观看免费版 | 不论纯爱观看| 刘亦菲被潜规则| 邓家佳《除却巫山》在线| 高清恋爱恐惧症| 恶意电影| 驻站在线电视剧免费完整观看| 白宫发言人与记者发生争执| 闫凤娇 第二季| 女版壮志凌云2011| 365情| 只有你韩剧| 电影风云1| 电影炼狱| 1—5普通话版免费观看| 电视剧《雪狼》完整版| 新三国1至95集免费观看| 哈尔的移动城堡电影| 许我耀眼32集全部免费| 插曲的痛免费观看高清版在线观看| 法证先锋5粤语版免费观看 | 蛮好的人生视频在线观看| 宫城良田耳环的由来| 食物链4大尺度原声版 | 扫黑风暴连续剧| 浮之手中字1-3| 高清《查莉成长日记第一季》电视剧| 女人强奸| 泾阳县| 双喜临门| 浅情人不知电视剧完整版免费观看| 面包王子金卓求| 天使的契约| 娘王 下载| 曾经是超人的男子| 告白动漫剧在线播放| 蜜桃成熟时33d免费在线观看| 国家审计电视剧全集在线观看| 新继拇7完整版| 游山西村的诗意| 电视剧寻路| 丰满的女人电影在线观看 | 女版斯巴达《满天星》电影免费观看 | 假日暖洋洋电视剧在线观看免费| 遥控器控制女领导免费观看| 漂亮女人免费观看版| 精油按摩电影在线观看| 不要再来伤害我dj| 极品家丁全集| xl司令第一季全集在线无马赛克观看| 电影心灵奇旅| 齐天大圣孙悟空免费观看完整版| 混血儿的摇篮曲三级片完整版| 漫长的季节在哪个平台看| 孔雀舞曲| 瓜达卢佩的玫瑰 墨西哥| 火影忍者剧场| 翼 年代记| 城中之城电视剧免费观看全集剧情 | 电视连续剧甄嬛传免费高清观看| 特殊保险公司推销员8| 魔道祖师动画| 大牛荷尔蒙美国版6| 鬼灭之刃游郭篇在线观看| 纳妾记电视剧| 1987渔夫荒野史记全集 | 花与蛇2下载| 大胸的继拇| 弹丸论破13| 山东近32万考生成绩达一段线| 神探狄仁杰一部30完整版| 酒店实生3满天星法版免费观看| 恶作剧之吻16| 一切都值得 张杰| 满天星壮志凌云女版kr| 无人观看高清电视剧免费| 五号特工组1全集| 《女版007满天星》电影| 珠帘玉幕在线免费观看| 幸福的黄手绢| 《灭火宝贝(高压监狱)》| 电影《捍战2》| 隋唐英雄2张卫健版| 盛唐风流电影免费观看| 致命吸引力| bt5156无忧无虑| 《韩国激情大合集》手机在线观看| 伞娘传奇电视剧全集剧情| 美国式保罗讳4免费| 妈妈向前冲电视剧全集| 高清死人开关未删减| 明亮星星电视剧| 缭乱的裸舞曲 迅雷下载| 韩国伦理片女儿需要爸爸播种子的电影| 扫黑风暴在线观看免费观看| 情爱电影在线| 姜子牙电影时长| 电影《屠宰餐厅》原版| 巴厘岛命案行凶动机公布| 油饼的热量| 过好日子| 兵临城下美版电影| 入室暴行2正版观看| 361电影院| 私人航空法国电影免费观看| 燃罪 电视剧| 黑白配在线观看免费播放| 丹麦vs塞尔维亚| 剃刀边缘电视剧全集| 《《替夫还债3》HD中字》电影-高清完整版在线观看-JJ影院 | 凯登克罗斯01A| 高清御赐小仵作2未删减| 云海翻腾孙悟空11| xl司令第全集在线观看完整版免费| 最刺激的夫妻互换| 金玉满堂| 孤男寡女之战狼6电影在线观看| 秘密花园韩国版| 好姑娘大牛影视剧在线观看免费播放| 金装的维尔梅免费看全集| 老电影歌曲| 《张警官三部曲》在线观看| 高清《黑皮书》电影| 马大姐新传| 天天想你在线观看完整版电影视频 | 《上司的要求》| 亲爱的自己电视剧免费看| 北非谍影免费| 双女任务在线观看免费高清英语版 | 少年派百度影音| 《美丽屋景卖房子》| 爱情公寓5| 阿加莎·克里斯蒂之七面钟电视剧| 入室强奷完整播放| 电视剧《非凡医者》| 趴耳朵的幸福生活全集| 九层妖塔西瓜| 治狐臭偏方| 银鞋1980美国满天星| 凯蒂猫的灰姑娘| 新乱世佳人第9集最火的一集| 我的漂亮的瘦子5HD中字_午夜电影全集_完整版免费在线观看-天天影院 | 江苏发现约1.5吨唐宋钱币窖藏| 满清十大酷刑电影| 女超人Melody在线观看| 完美搭配| 他其实没那么喜欢你在线观看| 女法医jd| 三年成全免费观看高清在线播放| 怪奇物语第五季在线观看完整版| 高清《狼人游戏》歌曲原唱| 漂亮的保姆3韩国电影| 漂亮妈妈中字开头字| 小巷人家1至42集| 小主别闹| 八戒八戒10在线看免费观看完整版| 金瓶梅在线观看全集高清徐少强| 小东西我们两个C你好不好| 男人帮电视剧| 隔壁邻居很美味免费观看| 阿凡达:火与烬未删减| 搜查瑠公圳| 大头的小媳妇儿| 爱丫爱丫高清在线观看电视剧| 头脑特工队2普通话完整免费观看| 《亲爱的客栈2026》| 遂昌县| 《无憾》完整版免费观看| 天海翼匪名侦探完整版| 冰锋电视剧| 《女战狼4》免费999在线观看| 女人公敌5| 五十度灰ed2k| 绝密追击| 白峰电影在线观看在| 漂亮的保姆高清在线完整版| 和最讨厌的社长出差日本电影| 爸爸的3次婚礼| 疯狂的麦克斯4狂暴之路| 帕尔哈提礼物| 王凯主演的电视剧大全(全部)| 苍月女战士H版成人版| 福尔摩斯小姐| 阿神的实况教室| 《初体验5》免费观看完整版| 3d肉蒲团种子下载| 恰似你的温柔原唱| 长江7号爱地球电影| 《妽妽的丰满大胸》| 庆余年2在线电视剧免费播放| 永不磨灭的番号电视剧| 樱井莉亚bt| 青梅竹马第二季未删版| 青春环游记综艺| 梦魇绝镇第二季在线观看| 《示范销售避孕套》剧情介绍| xl号司令动漫全集免费在线观看| 罗龙镇女人电视剧| 鬼剧院之惊青艳女郎| 交换上司的秘书| 《揉胸按摩》在线播放| 二人转全集正戏| 电影女儿国| 被躁BD水电工在浴室| 老农民60集完整版电视剧| 古墓丽影法国版真人版| 说书人 电视剧| 星刻的龙骑士免费观看| 玻钻之争国语版全集优酷| 厚颜无耻无删减版| 《姊妹牙医》完整版在线播放| 高清《杀戮天使》免费观看| 天长市| 《李瓶儿之真爱无悔》全集播放 | 神秘窥视电影| 蔚蓝50米| 雪中悍刀行2部全集免费播放| 韩国电影女主叫梅川的电影| 烟袋斜街10号| 赛德克巴莱完整版电影| 为人民服务全文| 混血儿的摇篮| 四周恋人第二季| 《风月宝鉴》完整版在线看| 方世玉免费| 美胸按摩电影| 我结中国版| 姐姐睡着高清免费观看电视剧全集| 唐诡之长安免费观看全集高清| 甜美姐姐在线免费看| 风云再起电影完整版| 战争与音乐电影完整版免费观看| 唐吉可德| 继母的拖油瓶是我的前女友| 美国派百度影音| 女版战狼10免费观看入口| 火蓝刀锋土豆| 野兽们的战争完整版免费在线观看 | 森林女王在线高清观看 | 越南女子特别行动队电影在线播放| 大江大河在线播放免费观看| 女佣机器人vs男招待机器人军团| 黑白配国语版超清1080p高清| 牝教室| 肖申克的救赎 电影| 失笑电视剧免费观看全集高清| 战狼10欧式| 桑德拉·拉索《满天星》女店主| 《红字》中文版| 定风波免费观看全集高清| 我们的宇宙泰剧免费观看| 四十九日 祭 电视剧| 高清《天气之子》电影免费看| 朝国年经继拇3| 谈股论金股市聊聊吧| 最新凤凰军事观察室| 虎林市| 需要爸爸播下种子美剧第二季免费观看 | 无颜之月迅雷下载| 男生女生相愁愁愁电视剧在线观| 小女霓裳电视剧免费| 三d肉浦团| 《女神宿舍的管理员》| 《法国空乘5》电影免费观看| 《正在缩小的男人》| 边做饭边被躁BD水电工的艳遇| 新娘十八岁电视剧国语版全集| 斗破苍穹缘起在线观看| 雨春电影| wwwddd| 一口气看完雪中悍刀行| 返老还童 在线看| 电视剧怪侠欧阳德| 凯·帕克《家庭聚会》| 唐人街探案3免费西瓜观看完整版 嘉庆王朝42集免费观看电视剧 | 商务老板旅行戴的帽子电影在线观看 | 玉蒲团2快播| 仙剑奇侠传3 电视剧| 青梅竹马第二季未删版| 漫长的季节在哪个平台看| 租借女友第3季免费观看动漫| 《克里斯蒂娜》电影在线观看| 酒店1-60集完整版播放| 年轻的馊子8| 秘密的爱| 布衣知县梵如花| 7巴字开头中字| 电影 上位| 岁月电视剧| 短剧《焚心》免费观看| 《性/生活4》未删减版| 怀念中国| 我的阿勒泰免费观看| 天下足球音乐| 鄂伦春自治旗| 《高压监狱2》在线观看| 不会说话的爱电视剧免费观看| 错撩电视剧| 大雄与天空的理想乡| 八戒八戒八戒免费看电视剧大全八| 零度战姬03| 当旺爸爸粤语电视剧| 韩剧《墙洞》在线观看| 公的浮之手中字电影完整版| 杨光的快乐生活5部| 乌云之上电视剧全集剧情| 月光宝盒电影| 浪漫女家教电影在线观看全集 | 开心家族下载| 县委大院在线观看完整版| 浮之手中字12| 鲜花盛开的村庄电视剧| 少年派2国语版免费观看| 已婚妇女的下午电影| 暑假作业赶工名场面| 迈克尔 道格拉斯| 暴操老妈1一46集免费看| 毒爱泰剧| 刺杀盖世太保| 五夜天| 法国女超人麦乐迪满天星版本| 高清《希望的大地》电视剧| 噬血狂袭第五季| 在天亮前离开 周程成| 白嫖者电视剧在线观看免费 | 《妻子5》免费高清电视剧| 魔盒电影网| 富婆三姐妹免费播放电视剧| 新妈妈2在线| 小辣椒1983年美国| 《法国空乘5》无删减版| 命悬一线的浪漫| 镜双城电视剧免费观看全集完整版 | 魔尺的玩法| 借种在线观看| 人面桃花别样红| 宁河县| 村上沙兽皇电影在线观| 蒲剧下载| 《局内人》电影完整版在线观看| 忠贞苏菲玛索| 杰克影院满天星免费观看方法| 淘众福逐梦| 《美容院:特殊待遇》4| 爱本无罪| 岱山县| 公之手| 魔帝归来:三界独尊全集免费| 布衣神相| 精灵幻想| 英国空姐3免费高清电视剧在线播放| 《和前辈夫妇的交换》| 洪武大案电视剧| 财阀家的小儿子 电视剧| 女士邀请函电影| 女超人满天星法版在线播放| 钟馗电视剧| 锡剧珍珠塔全集| 哈利波特生日| 50岁阿姨大人免费观看电视剧手机版| 巜性刑房3捆绑凌虐电影免费观看| 天才不能承受之重| 斗罗大陆240集免费观看全集在线| 哈哈哈哈哈第5季免费| 法国粉红萝卜| 速度与激情2高清版| 吕继宏歌曲咱老百姓| 《激战丛林》-罗莎·卡拉乔洛免费观| 美丽的小蜜在线观看完整版| 电视剧大考| 宰相刘罗锅40集在线观看| 梨泰院class在线观看| 黄色仓库最新在线观看地址 | 冬暖花会开| 宁乡县| 房奴试爱《高潮》| 郭德纲最新单口相声| 非礼勿视2| 电影《人脉王》在线观看| 双人调情按摩术在线观看| 法国版《女超人:麦乐迪》星辰影院| 网民发布辱国等不当言论被刑拘| 玉米锦蛇有毒吗| 女子寄快递丢失4800元手镯| 交换上司的秘书在线播放| 神印王座在线观看免费| 我的相亲对象是消防员第二季| 世界末日是哪一天| 从宫本到你在线观看| 结城美沙| 坐学霸鸡上背单词免费观看| 链-两个女人的诱惑 电影| 我们的当打之年| 莫莉特别酒店4| 母亲爱上儿子同学的美剧| 行尸走肉第三季09| 刃牙道:无敌武士未删减| 幸福一家人电视剧| 3d柔铺团之极宝乐鉴宝鉴电影虞书欣 | 初体验5电视剧免费观看| 禁忌的女人电影| 人质完整版在线观看| 使徒行者2粤语百度网盘| 法国空乘2中字| 私人航空未删减版在线观看免费 | 贝拉日记| 幽冥电影| 巨乳的继拇4| 越南版《女兵俘虏营》完整版在线观看| 感官之旅| 原千岁免费观看完整版 | 飞跃疯人院| 陈观泰电影| 唐朝秘史| 安斋拉拉爱情电影网| 小学生在线观看完整免费| 铃音りおな| 普宁市| 岳円木下檀檩子温泉观看| 藏海传电视剧高清在线观看| 部长出差的日子在线| 齐天大剩| 青春 韩国| 《刺青》| 飞机上空姐电影在线观看| 熊出没之过年2部| 电视剧邻居也疯狂| 《法国空姐2019法版》中文版| 明日之子乐团季| 月上重火免费观看| 电影战马| 金瓶梅2:爱的奴隶 电影| 爱我几何 完整| 越狱第五季在线观看| 金庸的籍贯| 粉红的窗帘| 朝阳县| 黄圣依小儿子庆生| 好汉两个半第10季| 一个朋友的母亲中字ID英文| 如果.爱| 危险伴侣| 《情深深雨蒙蒙》电视剧| 《绿色椅子》| 年少轻狂| 电视剧名媛望族| 魔力宝贝监狱| 禁室培欲电影| 牙医郝板栗未删减版共几集| 使徒行者3粤语电视剧| 《古墓神蛇》| 跆拳道表演| 韩国女教师索立信售楼小姐| 下一站是幸福免费观看| 火箭军司令员李玉超| 韩剧《隐身蓝帽子》朴亚珍 | 变形记阳光的背后| 神木丽| 切小金家的旅馆| 情深深雨蒙蒙36| 保罗5妈妈| 刀郎2023最新歌曲| 现在我们相爱吗| 《女超人-麦乐迪版》在线播放| 离山野人之谜| 印度19名官员被热死| 乐在其中 途我自在| 菊色宫影音先锋| 空姐3免费高清完整版| 和大胸大乳继拇做爰5| 目光所及之处| 狂飙未删减版| 新津县| 仙剑奇侠传六| shameless第三季免费观看 | 爱情悠悠药草| 马腾你别走电影完整版在线观看| yellow高清免费视频| 陈坤 盗墓笔记| 铃芽之旅免费观影| 电影克莱尔的迷宫在线观看| 纯情房东俏房客| 私人教练1983年意大利| 亲爱的老师HD中字免费| 美味的交换| 电影呱哒卢佩的玫瑰免费观看| 监狱女孩| 纸钞屋第五季在线观看完整版| 《示范销售避孕套》剧情介绍 | 赛尔号大电影5| TOTAKKAHAYAKIRGUZUX| 釜山行完整版在线观看| 局内人2在线观看| 哇嘎电影免费观看高清版下载| 少年派第一季免费播放| 小卫西行记最新视频| 越战忠魂| 大槻响作品番号| 女超人1979在线观看完整版| 闪电侠5| 红问号剧情| 霹雳囧花 电影| 《得闲谨制》在线观看| 白峰美羽免费电影| 巜人妻初次按摩2韩国| 突然的自我吉他弹唱| 年轻丰满的在线播放免费观看| 蜜桃女孩成熟时| 《overflower》动漫第1季免费观看全集 | 《妻子10》在线观看全集| 安姨在线观看| 电影 非诚勿扰2| 滚蛋吧肿瘤君| XL司令第二季真人版在线观看| 我的朋友他的妻子电影| 轮回电影在线观看免费完整版国语 | 快乐星球全集| 人完美体型的油画| 白峰正版国语全集下载| 神代弓子| 魔角侦探| 谁是真英雄电视剧| 男模走秀| 壮志凌云女版1994年版| 年轻女保险销售员韩国| 桃花映江山免费观看完整版| 对不起我爱你国语版全集| 烈火街头| 奇皇后32集| 火山口上的2人| 为爱疯狂| 《雪花女神龙》电视剧| 下一站婚姻 电视剧| 高清命中婚劫| 爸爸的种子免费全集电视剧| 壮志凌云啄木鸟满天星 | 叛逆者免费观看完整| 朋友的母亲8中语版| 女特警电视剧2024免费播放| 落魄贵族琉璃川在线观看免费动漫 | 魔力宝贝监狱免费观看在线| 美人鱼 1984 电影| 最新影视剧| 他是谁电视剧免费观看完整版国语| 我喜欢你免费观看电视剧完整版| 桑日县| 牙医郝板栗完整版电视剧在线观看| 三毛丛军记| 只想说爱你泰剧第10集| 洗冤录第一部国语电视剧免费观看| 爱在生死边缘| 成全完整版动漫高清免费 | 28天后百度影音| 公与媳2电视剧免费观看电影院| 小辣椒3美国伦理-MKV高清视频全集-FD202AV | gogo高清视频在线观看| 高清凤仙花未删减| 小巷人家电视剧免费高清观看| 1987版《娃娃脸》免费观看| 酒店1-80集全免费高清看| 灼人秘密免费观看高清| 索多玛的120天| 冲出亚马逊高清电影| 八仙全传之八仙过海高清| 视频列表--蜜桃 - 17| 斗罗大陆140| 开端全集在线观看| 我们都是坏孩子1| 足疗技师输出学校| 高清《奇迹》电影完整版免费观看| 千金肉奴隶电影| 蜜桃成熟时3d快播| 星际穿越电影完整版 | 陪你一起老歌词| 加菲猫大电影1普通话版免费| 夺粮剿匪记全集| 高清《大军阀》| 《俄罗斯美女学院:泳池派对》英文 | 虹猫蓝兔火凤凰配音| 爹别苟了出山吧 你真无敌了| 《爱的色放》| 八戒8免费观看完整版电影| 兰若寺电影免费观看国语| 大神同学想吃掉我接档樱花动漫| 美容院 | 樱桃小丸子| 汕头疑似纵火案| 一个好妈妈的d5申字| 十大rko| 小学生在线观看完整版| 日本波多野吉衣| 不是闹着玩的第二部| 金钱堡垒电影未删减完整版免费观看| 俘虏之锁在线观看| 那片花那片海电视剧| 李献计历险记下载| 《高压监狱2》法国| 女子疑高楼撒10多万现金后跳楼 | 日本空姐2019年在线观看| 年轻的母亲5免费观版| 停车坐爱枫林晚全诗| 《示范销售避孕套》2| 髙压监狱法版免费| 甄嬛传第57集| 百度蹊径| 爱了散了电视剧剧情介绍| 倔强的驱魔师在线观看| 旋风管家第四季| 道德的火焰| 海角7号| 韩剧理发店的特别待遇| 团鬼六美女绳地狱| 特殊精油按摩在线观看| 圣手仁医短剧在线免费看| 我丰满的继牳3| 蛇姬恋泰国电影完整版| 战斗之魂:少年激霸弹| 都市条形码直播| 小虎队老磁带上万| 云中玫瑰国语版| 女间谍满天星1996版叫什么名字| 黑暗天使萧淑慎| 米易县| 台湾女家教| 沧元图2动漫全集免费观看高清 | 钱的味道| 药王神篇| 孕妇的诱惑在线观看| 状志凌云满天星无删减版| 1983版高山下的花环| 满天星版《荒!女儿国》| 茜拉 洋葱| 韩国电影医生免费下载| overflower在线免费观看| 梦想天空分外蓝 陈奕迅| 九歌 电影| 小镇姑娘免费高清观看全集| 金银瓶1-5hd普通话水蜜桃2 布隆迪| 韩国夫妇交换| 电视剧成长全集| 花儿与少年第5季| 雪梨枪4p视频下载| 《一分钟》电影免费观看高清| 落魄贵族琉璃川在线观看全集| 回复术士的重来人生在线观看| 插曲的痛30集免费播放最新| 想要爸爸播种子在线观看| 电影 金瓶梅| 东京一店长闻到煤气味后点了根烟 | 美容院特殊待遇4演员表| 危情24小时| 风之刀粤语|