精华内容
下载资源
问答
  • 一、什么是数据库连接池? 官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,...个人理解:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全...

    文章转载自:https://blog.csdn.net/hu_belif/article/details/80812047

    一、什么是数据库连接池?

    官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。
    个人理解:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。

    二、数据库连接池的运行机制

    (1)  程序初始化时创建连接池
    (2) 使用时向连接池申请可用连接
    (3) 使用完毕,将连接返还给连接池
    (4) 程序退出时,断开所有连接,并释放资源

    三、数据库连接池的使用

    作为开源的数据库连接池,C3P0是一个优秀的连接池,性能也十分可靠。



    首先到http://sourceforge.net/projects/c3p0/下载相应的jar包,总共三个,如下图所示。
     
    其次将jar包导入到工程当中,然后就可以使用cp30了。
    示例代码如下:
    [java] view plain copy
     
     
     
     
     
    1. package com.zww.server;  
    2.   
    3. import java.beans.PropertyVetoException;  
    4. import java.sql.Connection;  
    5. import java.sql.SQLException;  
    6. import com.mchange.v2.c3p0.ComboPooledDataSource;  
    7.   
    8. public final class ConnectionManager {  
    9.     //使用单利模式创建数据库连接池  
    10.     private static ConnectionManager instance;  
    11.     private static ComboPooledDataSource dataSource;  
    12.   
    13.     private ConnectionManager() throws SQLException, PropertyVetoException {  
    14.         dataSource = new ComboPooledDataSource();  
    15.   
    16.         dataSource.setUser("root");     //用户名  
    17.         dataSource.setPassword("123456"); //密码  
    18.         dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/zww");//数据库地址  
    19.         dataSource.setDriverClass("com.mysql.jdbc.Driver");  
    20.         dataSource.setInitialPoolSize(5); //初始化连接数  
    21.         dataSource.setMinPoolSize(1);//最小连接数  
    22.         dataSource.setMaxPoolSize(10);//最大连接数  
    23.         dataSource.setMaxStatements(50);//最长等待时间  
    24.         dataSource.setMaxIdleTime(60);//最大空闲时间,单位毫秒  
    25.     }  
    26.   
    27.     public static final ConnectionManager getInstance() {  
    28.         if (instance == null) {  
    29.             try {  
    30.                 instance = new ConnectionManager();  
    31.             } catch (Exception e) {  
    32.                 e.printStackTrace();  
    33.             }  
    34.         }  
    35.         return instance;  
    36.     }  
    37.   
    38.     public synchronized final Connection getConnection() {  
    39.         Connection conn = null;  
    40.         try {  
    41.             conn = dataSource.getConnection();  
    42.         } catch (SQLException e) {  
    43.             e.printStackTrace();  
    44.         }  
    45.         return conn;  
    46.     }  
    47. }  
    下面是测试代码:
    [java] view plain copy
     
     
     
     
     
    1. package com.zww.server;  
    2.   
    3. import java.sql.Connection;  
    4. import java.sql.PreparedStatement;  
    5. import java.sql.ResultSet;  
    6. import java.sql.SQLException;  
    7.   
    8. import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;  
    9.   
    10.   
    11. public class ConnectionDemo {  
    12.   
    13.     public static void main(String[] args) throws SQLException {  
    14.         System.out.println("使用连接池................................");  
    15.         for (int i = 0; i < 20; i++) {  
    16.             long beginTime = System.currentTimeMillis();  
    17.             Connection conn = ConnectionManager.getInstance().getConnection();  
    18.             try {  
    19.                 PreparedStatement pstmt = conn.prepareStatement("select * from event");  
    20.                 ResultSet rs = pstmt.executeQuery();  
    21.                 while (rs.next()) {  
    22.                      // do nothing...  
    23.                 }  
    24.             } catch (SQLException e) {  
    25.                 e.printStackTrace();  
    26.             } finally {  
    27.                 try {  
    28.                     conn.close();  
    29.                 } catch (SQLException e) {  
    30.                     e.printStackTrace();  
    31.                 }  
    32.             }  
    33.   
    34.             long endTime = System.currentTimeMillis();  
    35.             System.out.println("第" + (i + 1) + "次执行花费时间为:" + (endTime - beginTime));  
    36.         }  
    37.   
    38.         System.out.println("不使用连接池................................");  
    39.         for (int i = 0; i < 20; i++) {  
    40.             long beginTime = System.currentTimeMillis();  
    41.             MysqlDataSource mds = new MysqlDataSource();  
    42.             mds.setURL("jdbc:mysql://localhost:3306/zww");  
    43.             mds.setUser("root");  
    44.             mds.setPassword("123456");  
    45.             Connection conn = mds.getConnection();  
    46.             try {  
    47.                 PreparedStatement pstmt = conn.prepareStatement("select * from event");  
    48.                 ResultSet rs = pstmt.executeQuery();  
    49.                 while (rs.next()) {  
    50.                                     // do nothing...  
    51.                 }  
    52.             } catch (SQLException e) {  
    53.                 e.printStackTrace();  
    54.             } finally {  
    55.                 try {  
    56.                     conn.close();  
    57.                 } catch (SQLException e) {  
    58.                     e.printStackTrace();  
    59.                 }  
    60.             }  
    61.             long endTime = System.currentTimeMillis();  
    62.             System.out.println("第" + (i + 1) + "次执行花费时间为:"  
    63.                                 + (endTime - beginTime));  
    64.         }  
    65.   
    66.     }  

    运行结果如下图所示:

    测试结果表明,在使用连接池时,只在第一次初始化时,比较耗时,完成初始化之后,使用连接池进行数据库操作明显比不使用连接池花费的时间少。

     

    转载于:https://www.cnblogs.com/HSH0709beliefs/p/9228602.html

    展开全文
  • 数据库连接池 1.什么是连接池 (connection pool)连接池 在没有接触到连接池的时候,我们都重复的去和数据库进行连接,打开资源,关闭资源,这样特别的繁琐。性能特别低,特别在多用户访问的情况下。连接...

    数据库连接池

    1.什么是连接池 (connection pool)连接池


    在没有接触到连接池的时候,我们都是重复的去和数据库进行连接,打开资源,关闭资源,这样特别的繁琐。性能特别低,特别是在多用户访问的情况下。
    连接池负责与数据库进行连接不用重复进行打开资源和关闭资源,大大提高了程序的性能。连接池的最小连接数是由最小的数据库数量来定的。当应用程序
    连接数量超过了连接池的最大数量,则被加入等待队列。
    用户是怎么拿连接的?
    当用户去连接池拿连接的时候,连接池会向一个空闲池放入连接,如果空闲池有连接,用户直接拿空闲池中的连接,如果没有,则连接池看有没有超过连接池连接的
    最大数量,如果没有超过则创建一条连接给用户,如果超过则用户连接处于等待队列。。
    2.数据源与连接池
    数据源一组特性用于确定和描述他所表示的现实存在的数据源,数据源可以创建一些数据保存到连接池中,java程序直接可以在连接池中拿空闲的连接。
    数据源其实现负责建立与数据库的连接。

    软件设计分层模式
    1.三层架构 (分层用的最多的是三层架构,如果项目复杂也可以增加层!)
    表示层:使用户可以直接访问,可以接受用户的数据,和显示数据。一般表示层都是jsp文件、html文件。
    数据访问层:Dao层,用于对数据库的访问、连接。实现对数据的保存和读取操作。
    业务逻辑层:提供对业务逻辑处理的封装,表示层可以调用业务逻辑层的一些接口实现各种操作。
    2.层与层之间的关系
    三层之间互相依赖,表示层依赖业务逻辑层去实现各种操作,业务逻辑层依赖于数据访问层,一些功能代码基本都写在数据访问层(DAO层)。

     


    3.分层原则 如上图:
    01.上一层依赖下一层,依赖关系不夸层
    表示层依赖业务逻辑层,业务逻辑层依赖于数据访问层。
    02.下一层不能调用上一层
    业务逻辑层不能调用表示层,数据访问层不能调用业务逻辑层。
    03.下一层不依赖上一层
    数据访问层不依赖与业务逻辑层。
    04.在上一层中不能出现下一层的概念
    在表示层不会出现业务逻辑层的概念,在业务逻辑层也不会出现数据访问层的概念。
    4.分层实现
    我们将业务逻辑处理的代码提取出来并进行了封装,在JSP页面找不到与数据库访问有关的信息。各层发挥出了不同的功能。页面展示、业务处理、数据访问。有了分层写代码更加的明确清晰。

     

    转载于:https://www.cnblogs.com/java-263/p/9836147.html

    展开全文
  • 2.使用Dao模式的好处3.DAO模式主要组成部分二、实例:DAO设计模式demo -- 使用‘数据库连接类’连接MySql数据库并实现在网页上注册用户(即添加用户到数据库) 一、DAO设计模式 1.什么是DAO? DAO模式提供了访问关系...

    一、DAO设计模式

    1.什么是DAO?

    DAO模式提供了访问关系型数据系统所需操作的接口,将数据访问和业务逻辑分开,对上层提供面向对象的数据访问接口.

    2.使用Dao模式的好处

    在编写了dao模式以后,就使得代码变得模块化,更有利于代码的维护和升级。
    DAO模式实现两层分离:代码间分工明确,数据访问层代码不影响业务逻辑层代码,这也符合单一职能原则,降低了耦合度,提高了代码的可复用性。
    隔离了不同的数据库的实现,采用面向接口编程,如果底层数据变化了,如mysql变成了oracle。中需要增加DAO接口的实现类即可,原来的Mysql实现类不用修改,这符合开闭原则,降低耦合性,提高扩展性和移植性.

    3.DAO模式主要组成部分

    (1)DAO接口:把对数据库的所有操作定义为抽象方法,放在接口里面,可以提供多种实现
    (2)DAO实现类:针对不同的数据库给出不同的DAO接口定义的方法的实现(不同的实现类)
    (3)实体类:用于存放传送的对象数据,就直接传递对象就可以,不用传递很多参数
    例如:
    (1)DAO接口:
    在这里插入图片描述
    具体代码:

    public interface BaseDAO {
        void getConn(String driver,String url,String user,String pwd);
        void query(String sql,String... params);
        boolean update(String sql,String... params);
        void close();
    
    }
    

    (2)DAO实现类:
    在这里插入图片描述
    具体代码如下:

    public class BaseDAOImpl implements BaseDAO {
    
        private Connection conn;
        private PreparedStatement pst;
        private ResultSet rs;
    
        public ResultSet getRs() {
            return rs;
        }
    
        @Override
        public void getConn(String driver, String url, String user, String pwd) {
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try {
                conn = DriverManager.getConnection(url,user,pwd);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void query(String sql, String... params) {
            try {
                pst=conn.prepareStatement(sql);
                for (int i = 0; params!=null&&i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
                rs=pst.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
        }
    
    
        @Override
        public boolean update(String sql, String... params) {
            int num=0;
            try {
                pst=conn.prepareStatement(sql);
                for (int i = 0; params!=null&&i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
                num=pst.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return num>0;
        }
    
        @Override
        public void close() {
            try {
                if (rs!=null)
                    rs.close();
                if (pst!=null)
                    pst.close();
                if (conn!=null)
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    (3)实体类:

    在这里插入图片描述
    具体代码:

    public class StudentDAO extends BaseDAOImpl {//假装这里已经做了接口
        private final String DRIVER="com.mysql.jdbc.Driver";
        private final String URL="jdbc:mysql://192.168.21.2:3306/test";
    
       public Student getStudentById(String id){
         String sql = "select * from student where stu_id=?";
         getConn(DRIVER,URL,"root","ok");
         query(sql,id);
         ResultSet rs = getRs();
            //Data Access Object
            Student s = new Student();
            try {
                if (rs.next()) {
                    s.setStu_id(rs.getInt("Stu_id"));
                    s.setStu_name(rs.getString("Stu_name"));
                    s.setGrade_id(rs.getInt("grade_id"));
                    s.setGender(rs.getString("gender"));
                    s.setAddress(rs.getString("address"));
                    s.setPhone(rs.getString("phone"));
                    s.setIdCard(rs.getString("idCard"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                close();
            }
           return s;
    
    
        }
    
    //    public boolean setStudentINfo(String Stu_id,String Stu_name,String gender){
    //        String sql="insert into student(Stu_id,Stu_name,gender) values(?,?,?)";
    //        getConn(DRIVER,URL,"root","ok");
    //        return update(sql,Stu_id,Stu_name,gender);
    //    }
    //
    //
    //    public static void main(String[] args) {
    //          StudentDAO dao = new StudentDAO();
              Student student = dao.getStudentById();
              System.out.println(student);
    //          Boolean s = dao.setStudentINfo("15","yy","女");
    //          System.out.println(s);
    //          System.out.println(dao.getStudentById("15"));
    //
    //    }
    

    二、单例模式:懒汉式 饿汉式

    单件模式用途:
    单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。
    单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。
    1、饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
    2、懒汉式:当程序第一次访问单件模式实例时才进行创建。

    三、为什么要使用配置文件来保存数据库连接信息

    在开发或部署项目时会用到不同的数据库,也可能因为客户的需求更换数据库,若每次更改数据库需要重新修改代码会比较麻烦,那么将数据库信息写在配置文件中,会比较便捷
    在这里插入图片描述

    四、javaBean是什么,如何使用javaBean传递数据

    Javabean 就是一个类,这个类就定义一系列 get 和 set 方法。 So simple !
    Javabean 就是为了和 jsp 页面 传数据 化简 交互过程 而产生的。

    五、Servlet

    5.1 Servlet是什么?什么时候用?

    Servlet是什么?
    servlet本身不做任何业务处理,只是接收请求并决定调用哪个JavaBean去处理请求确定用哪个页面来显示处理返回的数据
    Servlet是什么?
    Server+Applet,是—种服务器端的Java应用程序
    只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet

    5.2 web.xml是什么?

    一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

    5.3 web.xml 用来配置Servlet中的标签介绍

    ></servlet> 用来声明一个servlet的数据,主要有以下子元素:
    
    <servlet-name></servlet-name> 指定servlet的名称
    <servlet-class></servlet-class> 指定servlet的类名称
    <jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径
    <init-param></init-param> 用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数
    <load-on-startup></load-on-startup>指定当Web应用启动时,装载Servlet的次序。当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。
    <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素
    <servlet-name></servlet-name> 指定servlet的名称
    <url-pattern></url-pattern> 指定servlet所对应的URL
    

    五、实例1:DAO设计模式demo – 使用‘数据库连接类’连接MySql数据库并实现在网页上注册用户(即添加用户到数据库)

    实现效果:用户在页面注册一条信息,添加用户名和密码 点击注册之后会跳转到另一个页面,提示注册成功或者失败。判断成功或者失败,是将添加的username 和 password作为更新语句的条件,用户实体类继承DAO接口实现类,根据update返回的true或者false,显示注册成功与否。

    需要用到:
    1.DAO接口:baseDAO
    2.DAO接口实现类:baseDAOImpl
    3.用户接口:UserDAO
    4.用户接口实体类:UserDAOImpl
    5.两个jsp文件用于网页上用户注册:
    –注册页面:createLogin
    –跳转反馈注册情况的页面:doLogin
    具体代码如下:
    (1.DAO接口) 同上
    (2.DAO接口实现类)同上
    (3.用户接口:UserDAO:)

    
    public interface UserDao {
        //注册
        boolean createUser(String username,String password);
        //登录
        boolean login(String username,String password);
        //展示所有用户
        ArrayList<User> quryAll();
        //修改密码
        void changPassword(String username,String password);
        //删除用户
        void deleteUser(String username,String password);
    }
    

    (4.用户接口实体类:UserDAOImpl)

    public class UserDaoImpl extends BaseDAOImpl implements UserDao {
        private final String Driver= Prop.getValue("driver");
        private final String URL= Prop.getValue("url");
        private final String NAME= Prop.getValue("user");
        private final String PWD= Prop.getValue("pwd");
        @Override
        public boolean createUser(String username, String password) {
            String sql="insert into user(user_name,password) values(?,?)";
            getConn(Driver, URL,NAME,PWD);
            return update(sql,username,password);
    
        }
    
        @Override
        public boolean login(String username, String password) {
            return false;
        }
    
        @Override
        public ArrayList<User> quryAll() {
            return null;
        }
    
        @Override
        public void changPassword(String username, String password) {
    
        }
    
        @Override
        public void deleteUser(String username, String password) {
    
        }
    }
    

    5.两个jsp文件用于网页上用户注册:
    –注册页面:createLogin
    –跳转反馈注册情况的页面:doLogin

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>注册页面</title>
    </head>
    <body>
    <form action="doCreate.jsp">
        <p>用 户 名:<input type="text" name="user"></p>
        <p>&nbsp;码:<input type="password" name="pwd"></p>
        <p>确认密码:<input type="password" name="cfmPwd" ></p>
        <p><input type="submit" value="注册"></p>
    </form>
    </body>
    </html>
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>注册确认</title>
    </head>
    <body>
    <%
        String username=request.getParameter("user");
        String pwd=request.getParameter("pwd");
        String cfmPwd=request.getParameter("cfmPwd");
        UserDao ud = new UserDaoImpl();
        if (pwd!=null && pwd.equals(cfmPwd)) {
            boolean isSuccess = ud.createUser(username, pwd);
            out.print(isSuccess?"注册成功":"注册失败");
        }
    %>
    </body>
    </html>
    

    六、实例2 : 在实例1的基础上使用servlet,将原本写在jsp中用于请求的语句写到servlet中,使得写在jsp中的语句完全是用于进行页面展示的。

    需要用到:
    1.DAO接口:baseDAO
    2.DAO接口实现类:baseDAOImpl
    3.用户接口:UserDAO
    4.用户接口实体类:UserDAOImpl
    5.两个jsp文件:注册界面和跳转界面
    6.UserServlet类
    7.web.xml:将 UserServlet类(类名) 和 跳转页面地址 填进去

    具体代码如下:
    1.DAO接口:baseDAO -----同上实例1,是通用接口
    2.DAO接口实现类:baseDAOImpl -----同上实例1
    3.用户接口:UserDAO -----同上实例1
    4.用户接口实体类:UserDAOImpl -----同上实例1
    5.两个jsp文件:注册界面和跳转界面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>注册页面</title>
    </head>
    <body>
    <form action="/doCreate">
        <p>用 户 名:<input type="text" name="user"></p>
        <p>&nbsp;码:<input type="password" name="pwd"></p>
        <p>确认密码:<input type="password" name="cfmPwd" ></p>
        <p><input type="submit" value="注册"></p>
    </form>
    </body>
    </html>
    

    6.UserServlet类

    public  class UserServlet extends HttpServlet {
        UserService service = new UserServiceLmpl();
        UserDao user = new UserDaoImpl();
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String name=req.getParameter("username");
            String pwd =req.getParameter("pwd");
            String pwd1=req.getParameter("pwd1");
            String pwd2=req.getParameter("pwd2");
        //################注册########################
    //        String cfmPwd=req.getParameter("cfmPwd");
    //        boolean isSuccess = service.register(name,pwd,cfmPwd);
    //        System.out.println(isSuccess?"注册成功":"注册失败");
    //
    //        if(isSuccess){
    //            resp.sendRedirect("/login/home.jsp");
    //        }else {
    //            req.getRequestDispatcher("/login/createUser.jsp").forward(req,resp);
    //        }
        //################登录########################
    //        boolean isSuccess = user.login(name,pwd);
    //        if(isSuccess){
    //
    //            req.getRequestDispatcher("/login/doLogin.jsp").forward(req,resp);
    //            //转发
    //        }else {
    //            //重定向
    //            resp.sendRedirect("/login/home.jsp");
    //        }
        //################修改密码####################
    //        boolean isSuccess = user.changPassword(name,pwd1,pwd2);
    //        if(isSuccess){
    //            req.getRequestDispatcher("/login/doLogin.jsp").forward(req,resp);
    //            //转发
    //        }else {
    //            //重定向
    //            resp.sendRedirect("/login/createUser.jsp");
    //        }
    
        //################删除用户####################
            boolean isSuccess = user.deleteUser(name,pwd);
            if(isSuccess){
                req.getRequestDispatcher("/login/doDelete.jsp").forward(req,resp);
                //转发
            }else {
                //重定向
                resp.sendRedirect("/login/deleteUser.jsp");
            }
    
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doPost(req, resp);
        }
    
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.service(req, resp);
        }
    }
    

    7.web.xml:将 UserServlet类(类名) 和 跳转页面地址 填进去

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <servlet>
            <servlet-name>userServlet</servlet-name>
            <servlet-class>cn.kgc.kb11.servlet.UserServlet</servlet-class>
    
        </servlet>
        <servlet-mapping>
            <servlet-name>userServlet</servlet-name>
            <url-pattern>/doDelete</url-pattern>
        </servlet-mapping>
    </web-
    

    七、 <总结:写一个用到 jsp、jdbc、DAO设计模式、Servlet 的JavaWeb工程的步骤>

    1.DAO接口:baseDAO
    2.DAO接口实现类:baseDAOImpl ---------实现操作数据库的通用步骤,以后直接调用即可
    3.用户接口:UserDAO
    4.用户接口实体类:UserDAOImpl ----------用户个性化需求,继承DAO接口实现类
    5.两个jsp文件:注册界面和跳转界面 ----------展现给用户的界面
    6.UserServlet类 ----------接收页面用户请求再去调用JavaBean,起到调度的作用
    7.web.xml:将 UserServlet类(类名) 和 跳转页面地址 填进去 -----------配置servlet

    展开全文
  • 在动手写自己的数据库连接池的时候我们先来了解什么是数据库连接池: 模拟一个数据库连接池: public class SimpleConnectionPool { private static List listConnection = new ArrayList(); //初始化10个链接对象 ...

    在动手写自己的数据库连接池的时候我们先来了解什么是数据库连接池:
    模拟一个数据库连接池:

    public class SimpleConnectionPool {
    private static List listConnection = new ArrayList();
    //初始化10个链接对象
    static {
    for (int i = 0; i < 10; i++) {
    Connection e = MyJdbcUtil.getConnection();
    listConnection.add(e);
    }
    }
    //获取连接
    public static synchronized Connection getConnection(){
    if(listConnection.size()>0){
    Connection con = listConnection.get(0);
    listConnection.remove(0);
    return con;
    }else{
    throw new RuntimeException(“服务器真忙”);
    }
    }
    //关闭连接
    public static synchronized void closeConnection(Connection connection){
    listConnection.add(connection);
    }
    public static List getListConnection() {
    return listConnection;
    }

    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    

    测试:

    @Test
    public void test() {
    System.out.println(SimpleConnectionPool.getListConnection().size());
    //10
    Connection connection= SimpleConnectionPool.getConnection();//获取连接
    System.out.println(SimpleConnectionPool.getListConnection().size());//9
    SimpleConnectionPool.closeConnection(connection);//关闭连接
    System.out.println(SimpleConnectionPool.getListConnection().size());
    //10

    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    

    现在我们编写一个标准的数据源:
    1.SUN公司定义了一个标准: java.sql.DataSource
    实现了这个接口的才是标准的数据库连接池:
    当我们实现了这个DataSource后,发现只要获取连接的getConnection()、并没有如上我们所示的归还连接.于是我们只有使用connection.close();方法来释放连接、但默认这样只能关闭连接。并不能还到池中去:
    这里有了一个需求:
    1、 更改已知类的某个或某些方法(不能修改原有的代码,应该扩展),有这么几种解决方案:
    a:继承:此处不行
    b:利用包装设计模式(装饰设计模式) 或者适配器模式
    c:利用动态代理
    我们先使用装饰者模式:

    口诀:
    a、编写一个类实现与被包装类(com.mysql.jdbc.Connection)相同的接口
    b、定义一个变量,引用被包装类的实例
    c、定义构造方法,传入被包装类实例的引用
    d、对于要改变的方法,编写自己的代码即可
    e、对于不需要改变的方法,调用原有对象的对应方法

    1
    2
    3
    4
    5
    6
    

    代码示例:

    //a、编写一个类实现与被包装类(com.mysql.jdbc.Connection)相同的接口
    public class MyConnection implements Connection {
    // b、定义一个变量,引用被包装类的实例
    private Connection connection;
    private List list;
    // c、定义构造方法,传入被包装类实例的引用
    public MyConnection(Connection connection, List list) {
    super();
    this.connection = connection;
    this.list = list;
    }
    //d、对于要改变的方法,编写自己的代码即可
    @Override
    public void close() throws SQLException {
    list.add(connection);
    }
    //e、对于不需要改变的方法,调用原有对象的对应方法
    @Override
    public T unwrap(Class iface) throws SQLException {
    // TODO Auto-generated method stub
    return connection.unwrap(iface);
    }

    @Override
    public boolean isWrapperFor(Class<?> iface) throws SQLException {
        // TODO Auto-generated method stub
        return connection.isWrapperFor(iface);
    }
    ....
    

    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    

    现在我们来看我们的连接池:

    public class MyDataSource implements DataSource{
    //初始化10个对象
    private static List listConnection =Collections.synchronizedList(new ArrayList());
    static {
    for (int i = 0; i < 10; i++) {
    Connection e = MyJdbcUtil.getConnection();
    listConnection.add(e);
    }
    }
    @Override
    public Connection getConnection() throws SQLException {
    if(listConnection.size()>0){
    Connection con = listConnection.get(0);
    listConnection.remove(0);
    // 把经过装饰的返回回去
    MyConnection myConnection = new MyConnection(con, listConnection);
    return myConnection;
    }else{
    throw new RuntimeException(“服务器真忙”);
    }
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    

    现在我们使用适配器模式:

    1)首先写一下Connection的适配器:
    适配器的口诀,还是一个包装类
    //a、编写一个类实现与被包装类(com.mysql.jdbc.Connection)相同的接口
    //b、定义一个变量,引用被包装类的实例
    //c、定义构造方法,传入被包装类实例的引用
    //d、对于所有的方法,调用原有对象的对应方法

    //a、编写一个类实现与被包装类(com.mysql.jdbc.Connection)相同的接口
    public class MyConnectionAdapet implements Connection{
    //b、定义一个变量,引用被包装类的实例
    private Connection connection;
    //c、定义构造方法,传入被包装类实例的引用
    public MyConnectionAdapet(Connection connection) {
    this.connection=connection;
    }
    //d、对于所有的方法,调用原有对象的对应方法
    @Override
    public void close() throws SQLException {
    connection.close();
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    

    现在我们通过适配器来修改close()方法
    口诀:
    //a、编写一个类继承已经实现了被包装类(com.mysql.jdbc.Connection)相同的接口的类 (即适配器)
    (适配器引入一个被包装的类Connection。。然后默认用这个引入的类完成所有的方法也就是不改变)
    //b、定义一个变量,引用被包装类的实例
    //c、定义构造方法,传入被包装类实例的引用
    //d、对于要改变的方法,覆盖即可

    //a、编写一个类继承已经实现了被包装类(com.mysql.jdbc.Connection)相同的接口的类 (即适配器)
    public class MyConnection2 extends MyConnectionAdapet{
    //b、定义一个变量,引用被包装类的实例
    private Connection connection;
    private List liConnections;
    //c、定义构造方法,传入被包装类实例的引用
    public MyConnection2(Connection connection, List listConnection) {
    // TODO Auto-generated constructor stub
    super(connection);
    this.connection=connection;
    this.liConnections=listConnection;
    }
    //d、对于要改变的方法,覆盖即可
    @Override
    public void close() throws SQLException {
    // TODO Auto-generated method stub
    liConnections.add(connection);
    }

    }
    http://www.ywslmw.com/vd/20201121/aavdp.html
    http://www.ywslmw.com/vd/20201121/27965.html
    http://www.ywslmw.com/vd/20201121/13713.html
    http://www.ywslmw.com/vd/20201121/90372.html
    http://www.ywslmw.com/vd/20201121/44238.html
    http://www.ywslmw.com/vd/20201121/12808.html
    http://www.ywslmw.com/vd/20201121/62221.html
    http://www.ywslmw.com/vd/20201121/35606.html
    http://www.ywslmw.com/vd/20201121/72674.html
    http://www.ywslmw.com/vd/20201121/73237.html
    http://www.ywslmw.com/vd/20201121/32381.html
    http://www.ywslmw.com/vd/20201121/36843.html
    http://www.ywslmw.com/vd/20201121/76027.html
    http://www.ywslmw.com/vd/20201121/14283.html
    http://www.ywslmw.com/vd/20201121/02948.html
    http://www.ywslmw.com/vd/20201121/91204.html
    http://www.ywslmw.com/vd/20201121/57767.html
    http://www.ywslmw.com/vd/20201121/62621.html
    http://www.ywslmw.com/vd/20201121/40848.html
    http://www.ywslmw.com/vd/20201121/52389.html
    http://www.ywslmw.com/vd/20201121/66025.html
    http://www.ywslmw.com/vd/20201121/21575.html
    http://www.ywslmw.com/vd/20201121/73142.html
    http://www.ywslmw.com/vd/20201121/51343.html
    http://www.ywslmw.com/vd/20201121/55589.html
    http://www.ywslmw.com/vd/20201121/vhrny.html
    http://www.ywslmw.com/vd/20201121/ahujq.html
    http://www.ywslmw.com/vd/20201121/docaa.html
    http://www.ywslmw.com/vd/20201121/jpnff.html
    http://www.ywslmw.com/vd/20201121/qgwew.html
    http://www.ywslmw.com/vd/20201121/tdqwc.html
    http://www.ywslmw.com/vd/20201121/lbqri.html
    http://www.ywslmw.com/vd/20201121/urljg.html
    http://www.ywslmw.com/vd/20201121/mpdbh.html
    http://www.ywslmw.com/vd/20201121/ldnvw.html
    http://www.ywslmw.com/vd/20201121/ofggi.html
    http://www.ywslmw.com/vd/20201121/sothb.html
    http://www.ywslmw.com/vd/20201121/qbwak.html
    http://www.ywslmw.com/vd/20201121/ogijj.html
    http://www.ywslmw.com/vd/20201121/okuln.html
    http://www.ywslmw.com/vd/20201121/nuzyy.html
    http://www.ywslmw.com/vd/20201121/vnkue.html
    http://www.ywslmw.com/vd/20201121/yxduw.html
    http://www.ywslmw.com/vd/20201121/itohq.html
    http://www.ywslmw.com/vd/20201121/jryoe.html
    http://www.ywslmw.com/vd/20201121/yghpz.html
    http://www.ywslmw.com/vd/20201121/gfzwc.html
    http://www.ywslmw.com/vd/20201121/worij.html
    http://www.ywslmw.com/vd/20201121/ptqcf.html
    http://www.ywslmw.com/vd/20201121/gpbpd.html
    http://www.ywslmw.com/vd/20201121/vqbio.html
    http://www.ywslmw.com/vd/20201121/backl.html
    http://www.ywslmw.com/vd/20201121/nmcul.html
    http://www.ywslmw.com/vd/20201121/lymog.html
    http://www.ywslmw.com/vd/20201121/hflqe.html
    http://www.ywslmw.com/vd/20201121/uegrd.html
    http://www.ywslmw.com/vd/20201121/imxrq.html
    http://www.ywslmw.com/vd/20201121/sfwxg.html
    http://www.ywslmw.com/vd/20201121/noghn.html
    http://www.ywslmw.com/vd/20201121/tqnki.html
    http://www.ywslmw.com/vd/20201121/ogolz.html
    http://www.ywslmw.com/vd/20201121/cdgti.html
    http://www.ywslmw.com/vd/20201121/yzczw.html
    http://www.ywslmw.com/vd/20201121/opmlb.html
    http://www.ywslmw.com/vd/20201121/kqlvw.html
    http://www.ywslmw.com/vd/20201121/icfqx.html
    http://www.ywslmw.com/vd/20201121/mrnwb.html
    http://www.ywslmw.com/vd/20201121/vfche.html
    http://www.ywslmw.com/vd/20201121/rgsnq.html
    http://www.ywslmw.com/vd/20201121/77345.html
    http://www.ywslmw.com/vd/20201121/70810.html
    http://www.ywslmw.com/vd/20201121/09027.html
    http://www.ywslmw.com/vd/20201121/40161.html
    http://www.ywslmw.com/vd/20201121/69752.html
    http://www.ywslmw.com/vd/20201121/19098.html
    http://www.ywslmw.com/vd/20201121/46951.html
    http://www.ywslmw.com/vd/20201121/26299.html
    http://www.ywslmw.com/vd/20201121/59255.html
    http://www.ywslmw.com/vd/20201121/32741.html
    http://www.ywslmw.com/vd/20201121/37091.html
    http://www.ywslmw.com/vd/20201121/07082.html
    http://www.ywslmw.com/vd/20201121/36965.html
    http://www.ywslmw.com/vd/20201121/36590.html
    http://www.ywslmw.com/vd/20201121/94264.html
    http://www.ywslmw.com/vd/20201121/49805.html
    http://www.ywslmw.com/vd/20201121/64428.html
    http://www.ywslmw.com/vd/20201121/55304.html
    http://www.ywslmw.com/vd/20201121/30959.html
    http://www.ywslmw.com/vd/20201121/20557.html
    http://www.ywslmw.com/vd/20201121/72537.html
    http://www.ywslmw.com/vd/20201121/55762.html
    http://www.ywslmw.com/vd/20201121/49084.html
    http://www.ywslmw.com/vd/20201121/xbmct.html
    http://www.ywslmw.com/vd/20201121/igsbl.html
    http://www.ywslmw.com/vd/20201121/fkssc.html
    http://www.ywslmw.com/vd/20201121/zyvwy.html
    http://www.ywslmw.com/vd/20201121/pktjj.html
    http://www.ywslmw.com/vd/20201121/avhoe.html
    http://www.ywslmw.com/vd/20201121/sadzw.html
    http://www.ywslmw.com/vd/20201121/jizdr.html
    http://www.ywslmw.com/vd/20201121/wfbzp.html
    http://www.ywslmw.com/vd/20201121/qcdba.html
    http://www.ywslmw.com/vd/20201121/invao.html
    http://www.ywslmw.com/vd/20201121/iuvhl.html
    http://www.ywslmw.com/vd/20201121/ognbw.html
    http://www.ywslmw.com/vd/20201121/hlgsp.html
    http://www.ywslmw.com/vd/20201121/hugqc.html
    http://www.ywslmw.com/vd/20201121/qjgwv.html
    http://www.ywslmw.com/vd/20201121/qdopy.html
    http://www.ywslmw.com/vd/20201121/hpdkt.html
    http://www.ywslmw.com/vd/20201121/znpwf.html
    http://www.ywslmw.com/vd/20201121/ugtcf.html
    http://www.ywslmw.com/vd/20201121/zjhms.html
    http://www.ywslmw.com/vd/20201121/lgshe.html
    http://www.ywslmw.com/vd/20201121/cwtgu.html
    http://www.ywslmw.com/vd/20201121/vlisb.html
    http://www.ywslmw.com/vd/20201121/qmndc.html
    http://www.ywslmw.com/vd/20201121/owkxe.html
    http://www.ywslmw.com/vd/20201121/fzpom.html
    http://www.ywslmw.com/vd/20201121/kliqp.html
    http://www.ywslmw.com/vd/20201121/jcjwm.html
    http://www.ywslmw.com/vd/20201121/jamkt.html
    http://www.ywslmw.com/vd/20201121/wceta.html
    http://www.ywslmw.com/vd/20201121/qznww.html
    http://www.ywslmw.com/vd/20201121/hjslx.html
    http://www.ywslmw.com/vd/20201121/qwlfh.html
    http://www.ywslmw.com/vd/20201121/yrhdq.html
    http://www.ywslmw.com/vd/20201121/aavbk.html
    http://www.ywslmw.com/vd/20201121/fhkkt.html
    http://www.ywslmw.com/vd/20201121/gymcu.html
    http://www.ywslmw.com/vd/20201121/qgqjj.html
    http://www.ywslmw.com/vd/20201121/qesxu.html
    http://www.ywslmw.com/vd/20201121/odelj.html
    http://www.ywslmw.com/vd/20201121/hhvwm.html
    http://www.ywslmw.com/vd/20201121/trskb.html
    http://www.ywslmw.com/vd/20201121/fjkpw.html
    http://www.ywslmw.com/vd/20201121/qtcts.html
    http://www.ywslmw.com/vd/20201121/17366.html
    http://www.ywslmw.com/vd/20201121/25834.html
    http://www.ywslmw.com/vd/20201121/55144.html
    http://www.ywslmw.com/vd/20201121/48253.html
    http://www.ywslmw.com/vd/20201121/83571.html
    http://www.ywslmw.com/vd/20201121/03595.html
    http://www.ywslmw.com/vd/20201121/26183.html
    http://www.ywslmw.com/vd/20201121/40895.html
    http://www.ywslmw.com/vd/20201121/24911.html
    http://www.ywslmw.com/vd/20201121/07684.html
    http://www.ywslmw.com/vd/20201121/92200.html
    http://www.ywslmw.com/vd/20201121/69093.html
    http://www.ywslmw.com/vd/20201121/85100.html
    http://www.ywslmw.com/vd/20201121/75034.html
    http://www.ywslmw.com/vd/20201121/25304.html
    http://www.ywslmw.com/vd/20201121/13012.html
    http://www.ywslmw.com/vd/20201121/67529.html
    http://www.ywslmw.com/vd/20201121/89242.html
    http://www.ywslmw.com/vd/20201121/30852.html
    http://www.ywslmw.com/vd/20201121/26397.html
    http://www.ywslmw.com/vd/20201121/09759.html
    http://www.ywslmw.com/vd/20201121/10234.html
    http://www.ywslmw.com/vd/20201121/36684.html
    http://www.ywslmw.com/vd/20201121/uyaqy.html
    http://www.ywslmw.com/vd/20201121/cndcn.html
    http://www.ywslmw.com/vd/20201121/jfnop.html
    http://www.ywslmw.com/vd/20201121/fmjpg.html
    http://www.ywslmw.com/vd/20201121/rjqek.html
    http://www.ywslmw.com/vd/20201121/hxxem.html
    http://www.ywslmw.com/vd/20201121/cysoj.html
    http://www.ywslmw.com/vd/20201121/zugub.html
    http://www.ywslmw.com/vd/20201121/gpcpe.html
    http://www.ywslmw.com/vd/20201121/oefkn.html
    http://www.ywslmw.com/vd/20201121/rnndk.html
    http://www.ywslmw.com/vd/20201121/jihuz.html
    http://www.ywslmw.com/vd/20201121/aosot.html
    http://www.ywslmw.com/vd/20201121/pkatf.html
    http://www.ywslmw.com/vd/20201121/xhvxl.html
    http://www.ywslmw.com/vd/20201121/dxpwm.html
    http://www.ywslmw.com/vd/20201121/yrcfg.html
    http://www.ywslmw.com/vd/20201121/nqlug.html
    http://www.ywslmw.com/vd/20201121/lvvay.html
    http://www.ywslmw.com/vd/20201121/sydrc.html
    http://www.ywslmw.com/vd/20201121/qrbbw.html
    http://www.ywslmw.com/vd/20201121/xxjss.html
    http://www.ywslmw.com/vd/20201121/dcecb.html
    http://www.ywslmw.com/vd/20201121/mejah.html
    http://www.ywslmw.com/vd/20201121/ougzi.html
    http://www.ywslmw.com/vd/20201121/dakpm.html
    http://www.ywslmw.com/vd/20201121/dfbhe.html
    http://www.ywslmw.com/vd/20201121/ylwkc.html
    http://www.ywslmw.com/vd/20201121/kthph.html
    http://www.ywslmw.com/vd/20201121/rftut.html
    http://www.ywslmw.com/vd/20201121/tifdb.html
    http://www.ywslmw.com/vd/20201121/tanls.html
    http://www.ywslmw.com/vd/20201121/zkkkk.html
    http://www.ywslmw.com/vd/20201121/vqnuk.html
    http://www.ywslmw.com/vd/20201121/amjqy.html
    http://www.ywslmw.com/vd/20201121/ylihz.html
    http://www.ywslmw.com/vd/20201121/fqecc.html
    http://www.ywslmw.com/vd/20201121/fjvtk.html
    http://www.ywslmw.com/vd/20201121/bozgm.html
    http://www.ywslmw.com/vd/20201121/gktba.html
    http://www.ywslmw.com/vd/20201121/nurtc.html
    http://www.ywslmw.com/vd/20201121/mgmmk.html
    http://www.ywslmw.com/vd/20201121/uayob.html
    http://www.ywslmw.com/vd/20201121/60252.html
    http://www.ywslmw.com/vd/20201121/20130.html
    http://www.ywslmw.com/vd/20201121/47074.html
    http://www.ywslmw.com/vd/20201121/91498.html
    http://www.ywslmw.com/vd/20201121/99846.html
    http://www.ywslmw.com/vd/20201121/77701.html
    http://www.ywslmw.com/vd/20201121/10388.html
    http://www.ywslmw.com/vd/20201121/84322.html
    http://www.ywslmw.com/vd/20201121/22954.html
    http://www.ywslmw.com/vd/20201121/90704.html
    http://www.ywslmw.com/vd/20201121/03654.html
    http://www.ywslmw.com/vd/20201121/55621.html
    http://www.ywslmw.com/vd/20201121/04299.html
    http://www.ywslmw.com/vd/20201121/85301.html
    http://www.ywslmw.com/vd/20201121/35238.html
    http://www.ywslmw.com/vd/20201121/03452.html
    http://www.ywslmw.com/vd/20201121/25964.html
    http://www.ywslmw.com/vd/20201121/23184.html
    http://www.ywslmw.com/vd/20201121/50387.html
    http://www.ywslmw.com/vd/20201121/02360.html
    http://www.ywslmw.com/vd/20201121/26822.html
    http://www.ywslmw.com/vd/20201121/07859.html
    http://www.ywslmw.com/vd/20201121/99878.html
    http://www.ywslmw.com/vd/20201121/zexxg.html
    http://www.ywslmw.com/vd/20201121/zkyng.html
    http://www.ywslmw.com/vd/20201121/ciooy.html
    http://www.ywslmw.com/vd/20201121/pbgoq.html
    http://www.ywslmw.com/vd/20201121/kobmr.html
    http://www.ywslmw.com/vd/20201121/bgutl.html
    http://www.ywslmw.com/vd/20201121/qwixx.html
    http://www.ywslmw.com/vd/20201121/hdass.html
    http://www.ywslmw.com/vd/20201121/qneui.html
    http://www.ywslmw.com/vd/20201121/erjva.html
    http://www.ywslmw.com/vd/20201121/qgufz.html
    http://www.ywslmw.com/vd/20201121/rxlas.html
    http://www.ywslmw.com/vd/20201121/webtu.html
    http://www.ywslmw.com/vd/20201121/kocio.html
    http://www.ywslmw.com/vd/20201121/wkzrz.html
    http://www.ywslmw.com/vd/20201121/tqxxi.html
    http://www.ywslmw.com/vd/20201121/rrflt.html
    http://www.ywslmw.com/vd/20201121/ivlgw.html
    http://www.ywslmw.com/vd/20201121/bwjis.html
    http://www.ywslmw.com/vd/20201121/przgg.html
    http://www.ywslmw.com/vd/20201121/88347.html
    http://www.ywslmw.com/vd/20201121/69429.html
    http://www.ywslmw.com/vd/20201121/75460.html
    http://www.ywslmw.com/vd/20201121/ubdjv.html
    http://www.ywslmw.com/vd/20201121/scfen.html
    http://www.ywslmw.com/vd/20201121/knbbc.html
    http://www.ywslmw.com/vd/20201121/zxdnl.html
    http://www.ywslmw.com/vd/20201121/ykhwx.html
    http://www.ywslmw.com/vd/20201121/azmcs.html
    http://www.ywslmw.com/vd/20201121/wyzba.html
    http://www.ywslmw.com/vd/20201121/ojamv.html
    http://www.ywslmw.com/vd/20201121/xduju.html
    http://www.ywslmw.com/vd/20201121/dpbzo.html
    http://www.ywslmw.com/vd/20201121/wroel.html
    http://www.ywslmw.com/vd/20201121/dabac.html
    http://www.ywslmw.com/vd/20201121/dgdff.html
    http://www.ywslmw.com/vd/20201121/kplfq.html
    http://www.ywslmw.com/vd/20201121/xbwfo.html
    http://www.ywslmw.com/vd/20201121/lbzpv.html
    http://www.ywslmw.com/vd/20201121/tfanf.html
    http://www.ywslmw.com/vd/20201121/fnsct.html
    http://www.ywslmw.com/vd/20201121/sniwt.html
    http://www.ywslmw.com/vd/20201121/xpkhq.html
    http://www.ywslmw.com/vd/20201121/ymymd.html
    http://www.ywslmw.com/vd/20201121/srndb.html
    http://www.ywslmw.com/vd/20201121/26563.html
    http://www.ywslmw.com/vd/20201121/93285.html
    http://www.ywslmw.com/vd/20201121/80356.html
    http://www.ywslmw.com/vd/20201121/16742.html
    http://www.ywslmw.com/vd/20201121/15824.html
    http://www.ywslmw.com/vd/20201121/76071.html
    http://www.ywslmw.com/vd/20201121/77518.html
    http://www.ywslmw.com/vd/20201121/86540.html
    http://www.ywslmw.com/vd/20201121/70158.html
    http://www.ywslmw.com/vd/20201121/00575.html
    http://www.ywslmw.com/vd/20201121/33175.html
    http://www.ywslmw.com/vd/20201121/00345.html
    http://www.ywslmw.com/vd/20201121/80761.html
    http://www.ywslmw.com/vd/20201121/08285.html
    http://www.ywslmw.com/vd/20201121/auvsp.html
    http://www.ywslmw.com/vd/20201121/ezzfe.html
    http://www.ywslmw.com/vd/20201121/hidrw.html
    http://www.ywslmw.com/vd/20201121/50660.html
    http://www.ywslmw.com/vd/20201121/88112.html
    http://www.ywslmw.com/vd/20201121/23336.html
    http://www.ywslmw.com/vd/20201121/57904.html
    http://www.ywslmw.com/vd/20201121/89527.html
    http://www.ywslmw.com/vd/20201121/27551.html
    http://www.ywslmw.com/vd/20201121/hmhdz.html
    http://www.ywslmw.com/vd/20201121/nlzar.html
    http://www.ywslmw.com/vd/20201121/pvzss.html
    http://www.ywslmw.com/vd/20201121/mqdlr.html
    http://www.ywslmw.com/vd/20201121/vnayr.html
    http://www.ywslmw.com/vd/20201121/txukm.html
    http://www.ywslmw.com/vd/20201121/jaewl.html
    http://www.ywslmw.com/vd/20201121/pczbg.html
    http://www.ywslmw.com/vd/20201121/atgpp.html
    http://www.ywslmw.com/vd/20201121/kiloq.html
    http://www.ywslmw.com/vd/20201121/qvhaj.html
    http://www.ywslmw.com/vd/20201121/ykywv.html
    http://www.ywslmw.com/vd/20201121/ywbvx.html
    http://www.ywslmw.com/vd/20201121/temmu.html
    http://www.ywslmw.com/vd/20201121/mxtlu.html
    http://www.ywslmw.com/vd/20201121/tnzri.html
    http://www.ywslmw.com/vd/20201121/rboxy.html
    http://www.ywslmw.com/vd/20201121/loccs.html
    http://www.ywslmw.com/vd/20201121/brpbv.html
    http://www.ywslmw.com/vd/20201121/ciliq.html
    http://www.ywslmw.com/vd/20201121/btggg.html
    http://www.ywslmw.com/vd/20201121/vszoo.html
    http://www.ywslmw.com/vd/20201121/uhbfn.html
    http://www.ywslmw.com/vd/20201121/wsjfi.html
    http://www.ywslmw.com/vd/20201121/rcbff.html
    http://www.ywslmw.com/vd/20201121/nfuca.html
    http://www.ywslmw.com/vd/20201121/fgtuv.html
    http://www.ywslmw.com/vd/20201121/soskw.html
    http://www.ywslmw.com/vd/20201121/rdzaa.html
    http://www.ywslmw.com/vd/20201121/tqegr.html
    http://www.ywslmw.com/vd/20201121/lpbzf.html
    http://www.ywslmw.com/vd/20201121/tbnbq.html
    http://www.ywslmw.com/vd/20201121/nimga.html
    http://www.ywslmw.com/vd/20201121/hjvsg.html
    http://www.ywslmw.com/vd/20201121/ykont.html
    http://www.ywslmw.com/vd/20201121/opfzc.html
    http://www.ywslmw.com/vd/20201121/ycnrd.html
    http://www.ywslmw.com/vd/20201121/rupda.html
    http://www.ywslmw.com/vd/20201121/mykpu.html
    http://www.ywslmw.com/vd/20201121/nxpaw.html
    http://www.ywslmw.com/vd/20201121/mxcmq.html
    http://www.ywslmw.com/vd/20201121/yqffz.html
    http://www.ywslmw.com/vd/20201121/beqgg.html
    http://www.ywslmw.com/vd/20201121/yykpo.html
    http://www.ywslmw.com/vd/20201121/uhsos.html
    http://www.ywslmw.com/vd/20201121/qfnsf.html
    http://www.ywslmw.com/vd/20201121/98481.html
    http://www.ywslmw.com/vd/20201121/23186.html
    http://www.ywslmw.com/vd/20201121/91838.html
    http://www.ywslmw.com/vd/20201121/91852.html
    http://www.ywslmw.com/vd/20201121/32901.html
    http://www.ywslmw.com/vd/20201121/mggwh.html
    http://www.ywslmw.com/vd/20201121/fqktc.html
    http://www.ywslmw.com/vd/20201121/bvsjj.html
    http://www.ywslmw.com/vd/20201121/ahheu.html
    http://www.ywslmw.com/vd/20201121/qpwqc.html
    http://www.ywslmw.com/vd/20201121/etspm.html
    http://www.ywslmw.com/vd/20201121/spdlv.html
    http://www.ywslmw.com/vd/20201121/kasvj.html
    http://www.ywslmw.com/vd/20201121/xrovx.html
    http://www.ywslmw.com/vd/20201121/xcweo.html
    http://www.ywslmw.com/vd/20201121/nqhsy.html
    http://www.ywslmw.com/vd/20201121/chqxo.html
    http://www.ywslmw.com/vd/20201121/cxlvn.html
    http://www.ywslmw.com/vd/20201121/axqzh.html
    http://www.ywslmw.com/vd/20201121/jlfgx.html
    http://www.ywslmw.com/vd/20201121/ibwnn.html
    http://www.ywslmw.com/vd/20201121/uheme.html
    http://www.ywslmw.com/vd/20201121/12721.html
    http://www.ywslmw.com/vd/20201121/89293.html
    http://www.ywslmw.com/vd/20201121/nnwhb.html
    http://www.ywslmw.com/vd/20201121/tnelm.html
    http://www.ywslmw.com/vd/20201121/krspo.html
    http://www.ywslmw.com/vd/20201121/ojxqx.html
    http://www.ywslmw.com/vd/20201121/ayhhq.html
    http://www.ywslmw.com/vd/20201121/kuggw.html
    http://www.ywslmw.com/vd/20201121/kjjab.html
    http://www.ywslmw.com/vd/20201121/anzgx.html
    http://www.ywslmw.com/vd/20201121/fltzn.html
    http://www.ywslmw.com/vd/20201121/lfttu.html
    http://www.ywslmw.com/vd/20201121/cxjnc.html
    http://www.ywslmw.com/vd/20201121/xbuze.html
    http://www.ywslmw.com/vd/20201121/lqfwm.html
    http://www.ywslmw.com/vd/20201121/eqedn.html
    http://www.ywslmw.com/vd/20201121/iomtt.html
    http://www.ywslmw.com/vd/20201121/pbpeu.html
    http://www.ywslmw.com/vd/20201121/hagiu.html
    http://www.ywslmw.com/vd/20201121/ssypp.html
    http://www.ywslmw.com/vd/20201121/xsxgh.html
    http://www.ywslmw.com/vd/20201121/ckcgp.html
    http://www.ywslmw.com/vd/20201121/rlzgn.html
    http://www.ywslmw.com/vd/20201121/nnzho.html
    http://www.ywslmw.com/vd/20201121/ochov.html
    http://www.ywslmw.com/vd/20201121/yhssj.html
    http://www.ywslmw.com/vd/20201121/ythvk.html
    http://www.ywslmw.com/vd/20201121/nzlaz.html
    http://www.ywslmw.com/vd/20201121/hyhki.html
    http://www.ywslmw.com/vd/20201121/xxfwh.html
    http://www.ywslmw.com/vd/20201121/oabmh.html
    http://www.ywslmw.com/vd/20201121/yvkkt.html
    http://www.ywslmw.com/vd/20201121/ychhk.html
    http://www.ywslmw.com/vd/20201121/qsljp.html
    http://www.ywslmw.com/vd/20201121/jrhvt.html
    http://www.ywslmw.com/vd/20201121/zcoph.html
    http://www.ywslmw.com/vd/20201121/ffshj.html
    http://www.ywslmw.com/vd/20201121/tcoko.html
    http://www.ywslmw.com/vd/20201121/nlhuf.html
    http://www.ywslmw.com/vd/20201121/blrhg.html
    http://www.ywslmw.com/vd/20201121/ktsda.html
    http://www.ywslmw.com/vd/20201121/ihjnf.html
    http://www.ywslmw.com/vd/20201121/ncifb.html
    http://www.ywslmw.com/vd/20201121/zabee.html
    http://www.ywslmw.com/vd/20201121/cseow.html
    http://www.ywslmw.com/vd/20201121/59337.html
    http://www.ywslmw.com/vd/20201121/34134.html
    http://www.ywslmw.com/vd/20201121/57815.html
    http://www.ywslmw.com/vd/20201121/02312.html
    http://www.ywslmw.com/vd/20201121/29239.html
    http://www.ywslmw.com/vd/20201121/56800.html
    http://www.ywslmw.com/vd/20201121/67077.html
    http://www.ywslmw.com/vd/20201121/08689.html
    http://www.ywslmw.com/vd/20201121/10172.html
    http://www.ywslmw.com/vd/20201121/82151.html
    http://www.ywslmw.com/vd/20201121/56926.html
    http://www.ywslmw.com/vd/20201121/41714.html
    http://www.ywslmw.com/vd/20201121/14741.html
    http://www.ywslmw.com/vd/20201121/52046.html
    http://www.ywslmw.com/vd/20201121/14263.html
    http://www.ywslmw.com/vd/20201121/17784.html
    http://www.ywslmw.com/vd/20201121/70640.html
    http://www.ywslmw.com/vd/20201121/91094.html
    http://www.ywslmw.com/vd/20201121/33628.html
    http://www.ywslmw.com/vd/20201121/05043.html
    http://www.ywslmw.com/vd/20201121/08296.html
    http://www.ywslmw.com/vd/20201121/62075.html
    http://www.ywslmw.com/vd/20201121/36916.html
    http://www.ywslmw.com/vd/20201121/hijon.html
    http://www.ywslmw.com/vd/20201121/keqyp.html
    http://www.ywslmw.com/vd/20201121/qbmty.html
    http://www.ywslmw.com/vd/20201121/icqoe.html
    http://www.ywslmw.com/vd/20201121/dbooo.html
    http://www.ywslmw.com/vd/20201121/pbpzz.html
    http://www.ywslmw.com/vd/20201121/86580.html
    http://www.ywslmw.com/vd/20201121/84387.html
    http://www.ywslmw.com/vd/20201121/43859.html
    http://www.ywslmw.com/vd/20201121/24659.html
    http://www.ywslmw.com/vd/20201121/51518.html
    http://www.ywslmw.com/vd/20201121/53816.html
    http://www.ywslmw.com/vd/20201121/75967.html
    http://www.ywslmw.com/vd/20201121/qaynd.html
    http://www.ywslmw.com/vd/20201121/qbwxd.html
    http://www.ywslmw.com/vd/20201121/yogck.html
    http://www.ywslmw.com/vd/20201121/pmxxm.html
    http://www.ywslmw.com/vd/20201121/ctgnc.html
    http://www.ywslmw.com/vd/20201121/ywbhx.html
    http://www.ywslmw.com/vd/20201121/vqhnd.html
    http://www.ywslmw.com/vd/20201121/swkfa.html
    http://www.ywslmw.com/vd/20201121/95498.html
    http://www.ywslmw.com/vd/20201121/zjxzt.html
    http://www.ywslmw.com/vd/20201121/xtxxj.html
    http://www.ywslmw.com/vd/20201121/ltvnh.html
    http://www.ywslmw.com/vd/20201121/inudm.html
    http://www.ywslmw.com/vd/20201121/qsmax.html
    http://www.ywslmw.com/vd/20201121/sfjvb.html
    http://www.ywslmw.com/vd/20201121/rtxzr.html
    http://www.ywslmw.com/vd/20201121/oberf.html
    http://www.ywslmw.com/vd/20201121/lsgcq.html
    http://www.ywslmw.com/vd/20201121/wanzw.html
    http://www.ywslmw.com/vd/20201121/cvhsc.html
    http://www.ywslmw.com/vd/20201121/gkcai.html
    http://www.ywslmw.com/vd/20201121/nygwe.html
    http://www.ywslmw.com/vd/20201121/ppocy.html
    http://www.ywslmw.com/vd/20201121/gooim.html
    http://www.ywslmw.com/vd/20201121/rihma.html
    http://www.ywslmw.com/vd/20201121/nisln.html
    http://www.ywslmw.com/vd/20201121/zujol.html
    http://www.ywslmw.com/vd/20201121/lwrmb.html
    http://www.ywslmw.com/vd/20201121/cxykx.html
    http://www.ywslmw.com/vd/20201121/xrdmx.html
    http://www.ywslmw.com/vd/20201121/glzqc.html
    http://www.ywslmw.com/vd/20201121/qocjz.html
    http://www.ywslmw.com/vd/20201121/kcxgp.html
    http://www.ywslmw.com/vd/20201121/hgarp.html
    http://www.ywslmw.com/vd/20201121/dzlzn.html
    http://www.ywslmw.com/vd/20201121/kzwgi.html
    http://www.ywslmw.com/vd/20201121/ktyds.html
    http://www.ywslmw.com/vd/20201121/zdwyk.html
    http://www.ywslmw.com/vd/20201121/zfvlf.html
    http://www.ywslmw.com/vd/20201121/bogfm.html
    http://www.ywslmw.com/vd/20201121/iodca.html
    http://www.ywslmw.com/vd/20201121/txxtr.html
    http://www.ywslmw.com/vd/20201121/skyww.html
    http://www.ywslmw.com/vd/20201121/yiqvq.html
    http://www.ywslmw.com/vd/20201121/zfazz.html
    http://www.ywslmw.com/vd/20201121/okaql.html
    http://www.ywslmw.com/vd/20201121/bpjqo.html
    http://www.ywslmw.com/vd/20201121/eudtj.html
    http://www.ywslmw.com/vd/20201121/esmic.html
    http://www.ywslmw.com/vd/20201121/oaanl.html
    http://www.ywslmw.com/vd/20201121/48648.html
    http://www.ywslmw.com/vd/20201121/74359.html
    http://www.ywslmw.com/vd/20201121/81261.html
    http://www.ywslmw.com/vd/20201121/17628.html
    http://www.ywslmw.com/vd/20201121/pfmuq.html
    http://www.ywslmw.com/vd/20201121/etmue.html
    http://www.ywslmw.com/vd/20201121/wjwfr.html
    http://www.ywslmw.com/vd/20201121/cdpsu.html
    http://www.ywslmw.com/vd/20201121/xwqiw.html
    http://www.ywslmw.com/vd/20201121/vawdd.html
    http://www.ywslmw.com/vd/20201121/weoyd.html
    http://www.ywslmw.com/vd/20201121/fdsii.html
    http://www.ywslmw.com/vd/20201121/zhxqc.html
    http://www.ywslmw.com/vd/20201121/vshxe.html
    http://www.ywslmw.com/vd/20201121/mdtcm.html
    http://www.ywslmw.com/vd/20201121/htlkm.html
    http://www.ywslmw.com/vd/20201121/keshy.html
    http://www.ywslmw.com/vd/20201121/qnccl.html
    http://www.ywslmw.com/vd/20201121/bzole.html
    http://www.ywslmw.com/vd/20201121/alnim.html
    http://www.ywslmw.com/vd/20201121/fnfje.html
    http://www.ywslmw.com/vd/20201121/serai.html
    http://www.ywslmw.com/vd/20201121/vvpvl.html
    http://www.ywslmw.com/vd/20201121/oiebw.html
    http://www.ywslmw.com/vd/20201121/fctjc.html
    http://www.ywslmw.com/vd/20201121/kdvng.html
    http://www.ywslmw.com/vd/20201121/hxahd.html
    http://www.ywslmw.com/vd/20201121/ehiqw.html
    http://www.ywslmw.com/vd/20201121/skxgs.html
    http://www.ywslmw.com/vd/20201121/vifff.html
    http://www.ywslmw.com/vd/20201121/typch.html
    http://www.ywslmw.com/vd/20201121/ahwdb.html
    http://www.ywslmw.com/vd/20201121/boirj.html
    http://www.ywslmw.com/vd/20201121/qpcba.html
    http://www.ywslmw.com/vd/20201121/pbyom.html
    http://www.ywslmw.com/vd/20201121/jxshc.html
    http://www.ywslmw.com/vd/20201121/xbprq.html
    http://www.ywslmw.com/vd/20201121/zxkry.html
    http://www.ywslmw.com/vd/20201121/imikt.html
    http://www.ywslmw.com/vd/20201121/zhwew.html
    http://www.ywslmw.com/vd/20201121/ifsja.html
    http://www.ywslmw.com/vd/20201121/ocwdl.html
    http://www.ywslmw.com/vd/20201121/qvjkl.html
    http://www.ywslmw.com/vd/20201121/mkqaz.html
    http://www.ywslmw.com/vd/20201121/zteda.html
    http://www.ywslmw.com/vd/20201121/vqtln.html
    http://www.ywslmw.com/vd/20201121/tkwvu.html
    http://www.ywslmw.com/vd/20201121/soukb.html
    http://www.ywslmw.com/vd/20201121/rmabu.html
    http://www.ywslmw.com/vd/20201121/ahcxz.html
    http://www.ywslmw.com/vd/20201121/27044.html
    http://www.ywslmw.com/vd/20201121/41077.html
    http://www.ywslmw.com/vd/20201121/02415.html
    http://www.ywslmw.com/vd/20201121/62788.html
    http://www.ywslmw.com/vd/20201121/73664.html
    http://www.ywslmw.com/vd/20201121/11314.html
    http://www.ywslmw.com/vd/20201121/24964.html
    http://www.ywslmw.com/vd/20201121/36297.html
    http://www.ywslmw.com/vd/20201121/56872.html
    http://www.ywslmw.com/vd/20201121/45683.html
    http://www.ywslmw.com/vd/20201121/44653.html
    http://www.ywslmw.com/vd/20201121/16749.html
    http://www.ywslmw.com/vd/20201121/54574.html
    http://www.ywslmw.com/vd/20201121/74116.html
    http://www.ywslmw.com/vd/20201121/12755.html
    http://www.ywslmw.com/vd/20201121/27012.html
    http://www.ywslmw.com/vd/20201121/85041.html
    http://www.ywslmw.com/vd/20201121/45994.html
    http://www.ywslmw.com/vd/20201121/14763.html
    http://www.ywslmw.com/vd/20201121/32837.html
    http://www.ywslmw.com/vd/20201121/84263.html
    http://www.ywslmw.com/vd/20201121/55857.html
    http://www.ywslmw.com/vd/20201121/hovxj.html
    http://www.ywslmw.com/vd/20201121/sybtc.html
    http://www.ywslmw.com/vd/20201121/nqbis.html
    http://www.ywslmw.com/vd/20201121/fiady.html
    http://www.ywslmw.com/vd/20201121/dhmkr.html
    http://www.ywslmw.com/vd/20201121/alwlb.html
    http://www.ywslmw.com/vd/20201121/oxaqa.html
    http://www.ywslmw.com/vd/20201121/kpndc.html
    http://www.ywslmw.com/vd/20201121/viwmv.html
    http://www.ywslmw.com/vd/20201121/ikiwp.html
    http://www.ywslmw.com/vd/20201121/dyppz.html
    http://www.ywslmw.com/vd/20201121/nahnt.html
    http://www.ywslmw.com/vd/20201121/xrfqx.html
    http://www.ywslmw.com/vd/20201121/flhii.html
    http://www.ywslmw.com/vd/20201121/kvlnm.html
    http://www.ywslmw.com/vd/20201121/ywoyl.html
    http://www.ywslmw.com/vd/20201121/zlzzz.html
    http://www.ywslmw.com/vd/20201121/ukykm.html
    http://www.ywslmw.com/vd/20201121/mhajv.html
    http://www.ywslmw.com/vd/20201121/jcfaq.html
    http://www.ywslmw.com/vd/20201121/aqdrw.html
    http://www.ywslmw.com/vd/20201121/zfqom.html
    http://www.ywslmw.com/vd/20201121/dtlpd.html
    http://www.ywslmw.com/vd/20201121/duseg.html
    http://www.ywslmw.com/vd/20201121/stflb.html
    http://www.ywslmw.com/vd/20201121/dxeav.html
    http://www.ywslmw.com/vd/20201121/acrrd.html
    http://www.ywslmw.com/vd/20201121/seybx.html
    http://www.ywslmw.com/vd/20201121/waigm.html
    http://www.ywslmw.com/vd/20201121/rqqes.html
    http://www.ywslmw.com/vd/20201121/pgdxd.html
    http://www.ywslmw.com/vd/20201121/mhjov.html
    http://www.ywslmw.com/vd/20201121/qilzo.html
    http://www.ywslmw.com/vd/20201121/salvt.html
    http://www.ywslmw.com/vd/20201121/cqiir.html
    http://www.ywslmw.com/vd/20201121/eotcc.html
    http://www.ywslmw.com/vd/20201121/yjvrf.html
    http://www.ywslmw.com/vd/20201121/ecpay.html
    http://www.ywslmw.com/vd/20201121/deqfu.html
    http://www.ywslmw.com/vd/20201121/dhuuw.html
    http://www.ywslmw.com/vd/20201121/ojryg.html
    http://www.ywslmw.com/vd/20201121/fskpd.html
    http://www.ywslmw.com/vd/20201121/frowo.html
    http://www.ywslmw.com/vd/20201121/ugrhf.html
    http://www.ywslmw.com/vd/20201121/xgksi.html
    http://www.ywslmw.com/vd/20201121/hceoa.html
    http://www.ywslmw.com/vd/20201121/gfiqy.html
    http://www.ywslmw.com/vd/20201121/basng.html
    http://www.ywslmw.com/vd/20201121/swzyh.html
    http://www.ywslmw.com/vd/20201121/mshko.html
    http://www.ywslmw.com/vd/20201121/acfcr.html
    http://www.ywslmw.com/vd/20201121/fpzwd.html
    http://www.ywslmw.com/vd/20201121/mbhmr.html
    http://www.ywslmw.com/vd/20201121/uolzm.html
    http://www.ywslmw.com/vd/20201121/bcekr.html
    http://www.ywslmw.com/vd/20201121/eztwq.html
    http://www.ywslmw.com/vd/20201121/aofde.html
    http://www.ywslmw.com/vd/20201121/dqqnc.html
    http://www.ywslmw.com/vd/20201121/uezgn.html
    http://www.ywslmw.com/vd/20201121/16472.html
    http://www.ywslmw.com/vd/20201121/84681.html
    http://www.ywslmw.com/vd/20201121/35536.html
    http://www.ywslmw.com/vd/20201121/99404.html
    http://www.ywslmw.com/vd/20201121/86286.html
    http://www.ywslmw.com/vd/20201121/56957.html
    http://www.ywslmw.com/vd/20201121/43353.html
    http://www.ywslmw.com/vd/20201121/73229.html
    http://www.ywslmw.com/vd/20201121/99185.html
    http://www.ywslmw.com/vd/20201121/eueul.html
    http://www.ywslmw.com/vd/20201121/lmixx.html
    http://www.ywslmw.com/vd/20201121/aeshx.html
    http://www.ywslmw.com/vd/20201121/einqk.html
    http://www.ywslmw.com/vd/20201121/biyhj.html
    http://www.ywslmw.com/vd/20201121/btpnn.html
    http://www.ywslmw.com/vd/20201121/52617.html
    http://www.ywslmw.com/vd/20201121/73305.html
    http://www.ywslmw.com/vd/20201121/evgkz.html
    http://www.ywslmw.com/vd/20201121/ezubl.html
    http://www.ywslmw.com/vd/20201121/kjmca.html
    http://www.ywslmw.com/vd/20201121/31958.html
    http://www.ywslmw.com/vd/20201121/56963.html
    http://www.ywslmw.com/vd/20201121/48041.html
    http://www.ywslmw.com/vd/20201121/23526.html
    http://www.ywslmw.com/vd/20201121/10534.html
    http://www.ywslmw.com/vd/20201121/50174.html
    http://www.ywslmw.com/vd/20201121/99676.html
    http://www.ywslmw.com/vd/20201121/28456.html
    http://www.ywslmw.com/vd/20201121/65948.html
    http://www.ywslmw.com/vd/20201121/35766.html
    http://www.ywslmw.com/vd/20201121/88466.html
    http://www.ywslmw.com/vd/20201121/16554.html
    http://www.ywslmw.com/vd/20201121/yvpgf.html
    http://www.ywslmw.com/vd/20201121/gccym.html
    http://www.ywslmw.com/vd/20201121/xjsgc.html
    http://www.ywslmw.com/vd/20201121/casiq.html
    http://www.ywslmw.com/vd/20201121/shczm.html
    http://www.ywslmw.com/vd/20201121/rpmbi.html
    http://www.ywslmw.com/vd/20201121/qfqle.html
    http://www.ywslmw.com/vd/20201121/jpnfh.html
    http://www.ywslmw.com/vd/20201121/ocvnw.html
    http://www.ywslmw.com/vd/20201121/hwxwv.html
    http://www.ywslmw.com/vd/20201121/ecbzy.html
    http://www.ywslmw.com/vd/20201121/wcusr.html
    http://www.ywslmw.com/vd/20201121/rfozu.html
    http://www.ywslmw.com/vd/20201121/rgjfl.html
    http://www.ywslmw.com/vd/20201121/uahom.html
    http://www.ywslmw.com/vd/20201121/qorkc.html
    http://www.ywslmw.com/vd/20201121/ahvpa.html
    http://www.ywslmw.com/vd/20201121/flxka.html
    http://www.ywslmw.com/vd/20201121/zaqoe.html
    http://www.ywslmw.com/vd/20201121/olwjp.html
    http://www.ywslmw.com/vd/20201121/scmbi.html
    http://www.ywslmw.com/vd/20201121/pnidg.html
    http://www.ywslmw.com/vd/20201121/81684.html
    http://www.ywslmw.com/vd/20201121/69368.html
    http://www.ywslmw.com/vd/20201121/08995.html
    http://www.ywslmw.com/vd/20201121/80159.html
    http://www.ywslmw.com/vd/20201121/59938.html
    http://www.ywslmw.com/vd/20201121/60407.html
    http://www.ywslmw.com/vd/20201121/11378.html
    http://www.ywslmw.com/vd/20201121/92409.html
    http://www.ywslmw.com/vd/20201121/37795.html
    http://www.ywslmw.com/vd/20201121/68287.html
    http://www.ywslmw.com/vd/20201121/34853.html
    http://www.ywslmw.com/vd/20201121/48182.html
    http://www.ywslmw.com/vd/20201121/49019.html
    http://www.ywslmw.com/vd/20201121/31813.html
    http://www.ywslmw.com/vd/20201121/38913.html
    http://www.ywslmw.com/vd/20201121/82512.html
    http://www.ywslmw.com/vd/20201121/60886.html
    http://www.ywslmw.com/vd/20201121/37026.html
    http://www.ywslmw.com/vd/20201121/45020.html
    http://www.ywslmw.com/vd/20201121/60383.html
    http://www.ywslmw.com/vd/20201121/15072.html
    http://www.ywslmw.com/vd/20201121/43410.html
    http://www.ywslmw.com/vd/20201121/98744.html
    http://www.ywslmw.com/vd/20201121/kwqjb.html
    http://www.ywslmw.com/vd/20201121/hbcfg.html
    http://www.ywslmw.com/vd/20201121/eymgg.html
    http://www.ywslmw.com/vd/20201121/kodpk.html
    http://www.ywslmw.com/vd/20201121/bdrpo.html
    http://www.ywslmw.com/vd/20201121/dshmu.html
    http://www.ywslmw.com/vd/20201121/rlzjz.html
    http://www.ywslmw.com/vd/20201121/shhii.html
    http://www.ywslmw.com/vd/20201121/kggrv.html
    http://www.ywslmw.com/vd/20201121/uezqj.html
    http://www.ywslmw.com/vd/20201121/gbmum.html
    http://www.ywslmw.com/vd/20201121/hovyz.html
    http://www.ywslmw.com/vd/20201121/epcqv.html
    http://www.ywslmw.com/vd/20201121/ixtih.html
    http://www.ywslmw.com/vd/20201121/kgwxh.html
    http://www.ywslmw.com/vd/20201121/icwux.html
    http://www.ywslmw.com/vd/20201121/fwzxm.html
    http://www.ywslmw.com/vd/20201121/lipno.html
    http://www.ywslmw.com/vd/20201121/xqksd.html
    http://www.ywslmw.com/vd/20201121/moohk.html
    http://www.ywslmw.com/vd/20201121/olrfs.html
    http://www.ywslmw.com/vd/20201121/mfjmv.html
    http://www.ywslmw.com/vd/20201121/xavml.html
    http://www.ywslmw.com/vd/20201121/urcvk.html
    http://www.ywslmw.com/vd/20201121/okiad.html
    http://www.ywslmw.com/vd/20201121/hgayo.html
    http://www.ywslmw.com/vd/20201121/vrcba.html
    http://www.ywslmw.com/vd/20201121/tszai.html
    http://www.ywslmw.com/vd/20201121/imusd.html
    http://www.ywslmw.com/vd/20201121/xhdck.html
    http://www.ywslmw.com/vd/20201121/asydt.html
    http://www.ywslmw.com/vd/20201121/rlwyn.html
    http://www.ywslmw.com/vd/20201121/bvzxu.html
    http://www.ywslmw.com/vd/20201121/nmocr.html
    http://www.ywslmw.com/vd/20201121/rugrn.html
    http://www.ywslmw.com/vd/20201121/ekyeu.html
    http://www.ywslmw.com/vd/20201121/ubpxy.html
    http://www.ywslmw.com/vd/20201121/fbeud.html
    http://www.ywslmw.com/vd/20201121/enzpw.html
    http://www.ywslmw.com/vd/20201121/nprit.html
    http://www.ywslmw.com/vd/20201121/ppwoh.html
    http://www.ywslmw.com/vd/20201121/vvxex.html
    http://www.ywslmw.com/vd/20201121/tnhgg.html
    http://www.ywslmw.com/vd/20201121/oinex.html
    http://www.ywslmw.com/vd/20201121/vljlv.html
    http://www.ywslmw.com/vd/20201121/17924.html
    http://www.ywslmw.com/vd/20201121/94070.html
    http://www.ywslmw.com/vd/20201121/26921.html
    http://www.ywslmw.com/vd/20201121/72356.html
    http://www.ywslmw.com/vd/20201121/42741.html
    http://www.ywslmw.com/vd/20201121/42140.html
    http://www.ywslmw.com/vd/20201121/71880.html
    http://www.ywslmw.com/vd/20201121/41274.html
    http://www.ywslmw.com/vd/20201121/14838.html
    http://www.ywslmw.com/vd/20201121/87393.html
    http://www.ywslmw.com/vd/20201121/72457.html
    http://www.ywslmw.com/vd/20201121/18903.html
    http://www.ywslmw.com/vd/20201121/58723.html
    http://www.ywslmw.com/vd/20201121/02563.html
    http://www.ywslmw.com/vd/20201121/24815.html
    http://www.ywslmw.com/vd/20201121/90866.html
    http://www.ywslmw.com/vd/20201121/knftj.html
    http://www.ywslmw.com/vd/20201121/cbeti.html
    http://www.ywslmw.com/vd/20201121/cnoxv.html
    http://www.ywslmw.com/vd/20201121/nsxwg.html
    http://www.ywslmw.com/vd/20201121/wzzwv.html
    http://www.ywslmw.com/vd/20201121/smyra.html
    http://www.ywslmw.com/vd/20201121/36251.html
    http://www.ywslmw.com/vd/20201121/04731.html
    http://www.ywslmw.com/vd/20201121/20593.html
    http://www.ywslmw.com/vd/20201121/03448.html
    http://www.ywslmw.com/vd/20201121/89056.html
    http://www.ywslmw.com/vd/20201121/47081.html
    http://www.ywslmw.com/vd/20201121/09103.html
    http://www.ywslmw.com/vd/20201121/36415.html
    http://www.ywslmw.com/vd/20201121/98160.html
    http://www.ywslmw.com/vd/20201121/45799.html
    http://www.ywslmw.com/vd/20201121/90460.html
    http://www.ywslmw.com/vd/20201121/55912.html
    http://www.ywslmw.com/vd/20201121/78096.html
    http://www.ywslmw.com/vd/20201121/90333.html
    http://www.ywslmw.com/vd/20201121/92766.html
    http://www.ywslmw.com/vd/20201121/72502.html
    http://www.ywslmw.com/vd/20201121/xhslp.html
    http://www.ywslmw.com/vd/20201121/qnxfx.html
    http://www.ywslmw.com/vd/20201121/cquum.html
    http://www.ywslmw.com/vd/20201121/32506.html
    http://www.ywslmw.com/vd/20201121/55469.html
    http://www.ywslmw.com/vd/20201121/09268.html
    http://www.ywslmw.com/vd/20201121/mrjsl.html
    http://www.ywslmw.com/vd/20201121/updlu.html
    http://www.ywslmw.com/vd/20201121/ksbsz.html
    http://www.ywslmw.com/vd/20201121/bwkum.html
    http://www.ywslmw.com/vd/20201121/qvpxh.html
    http://www.ywslmw.com/vd/20201121/tlaye.html
    http://www.ywslmw.com/vd/20201121/gcgni.html
    http://www.ywslmw.com/vd/20201121/xhbuv.html
    http://www.ywslmw.com/vd/20201121/ufjgw.html
    http://www.ywslmw.com/vd/20201121/xqvef.html
    http://www.ywslmw.com/vd/20201121/nxmfe.html
    http://www.ywslmw.com/vd/20201121/etlai.html
    http://www.ywslmw.com/vd/20201121/ueifc.html
    http://www.ywslmw.com/vd/20201121/zjgnt.html
    http://www.ywslmw.com/vd/20201121/vhmiw.html
    http://www.ywslmw.com/vd/20201121/tqwbh.html
    http://www.ywslmw.com/vd/20201121/bgjnu.html
    http://www.ywslmw.com/vd/20201121/dieek.html
    http://www.ywslmw.com/vd/20201121/awoxc.html
    http://www.ywslmw.com/vd/20201121/zxltm.html
    http://www.ywslmw.com/vd/20201121/wqmhw.html
    http://www.ywslmw.com/vd/20201121/bidrk.html
    http://www.ywslmw.com/vd/20201121/45112.html
    http://www.ywslmw.com/vd/20201121/03560.html
    http://www.ywslmw.com/vd/20201121/63059.html
    http://www.ywslmw.com/vd/20201121/77008.html
    http://www.ywslmw.com/vd/20201121/87063.html
    http://www.ywslmw.com/vd/20201121/75604.html
    http://www.ywslmw.com/vd/20201121/87931.html
    http://www.ywslmw.com/vd/20201121/15842.html
    http://www.ywslmw.com/vd/20201121/12308.html
    http://www.ywslmw.com/vd/20201121/54501.html
    http://www.ywslmw.com/vd/20201121/97838.html
    http://www.ywslmw.com/vd/20201121/96730.html
    http://www.ywslmw.com/vd/20201121/42123.html
    http://www.ywslmw.com/vd/20201121/58108.html
    http://www.ywslmw.com/vd/20201121/81969.html
    http://www.ywslmw.com/vd/20201121/01346.html
    http://www.ywslmw.com/vd/20201121/11642.html
    http://www.ywslmw.com/vd/20201121/16255.html
    http://www.ywslmw.com/vd/20201121/87841.html
    http://www.ywslmw.com/vd/20201121/12302.html
    http://www.ywslmw.com/vd/20201121/15403.html
    http://www.ywslmw.com/vd/20201121/44164.html
    http://www.ywslmw.com/vd/20201121/30194.html
    http://www.ywslmw.com/vd/20201121/cknus.html
    http://www.ywslmw.com/vd/20201121/tmgdz.html
    http://www.ywslmw.com/vd/20201121/25503.html
    http://www.ywslmw.com/vd/20201121/vbyyc.html
    http://www.ywslmw.com/vd/20201121/qpqci.html
    http://www.ywslmw.com/vd/20201121/sesjv.html
    http://www.ywslmw.com/vd/20201121/ekozu.html
    http://www.ywslmw.com/vd/20201121/rgkzr.html
    http://www.ywslmw.com/vd/20201121/rlmcj.html
    http://www.ywslmw.com/vd/20201121/golsk.html
    http://www.ywslmw.com/vd/20201121/gaaqp.html
    http://www.ywslmw.com/vd/20201121/pxvll.html
    http://www.ywslmw.com/vd/20201121/ithxf.html
    http://www.ywslmw.com/vd/20201121/jullx.html
    http://www.ywslmw.com/vd/20201121/eykcd.html
    http://www.ywslmw.com/vd/20201121/gvqri.html
    http://www.ywslmw.com/vd/20201121/fqleo.html
    http://www.ywslmw.com/vd/20201121/crolt.html
    http://www.ywslmw.com/vd/20201121/vmpec.html
    http://www.ywslmw.com/vd/20201121/haydm.html
    http://www.ywslmw.com/vd/20201121/mdgkj.html
    http://www.ywslmw.com/vd/20201121/olrkk.html
    http://www.ywslmw.com/vd/20201121/vziyp.html
    http://www.ywslmw.com/vd/20201121/gnxns.html
    http://www.ywslmw.com/vd/20201121/joaii.html
    http://www.ywslmw.com/vd/20201121/zgmtu.html
    http://www.ywslmw.com/vd/20201121/iscrp.html
    http://www.ywslmw.com/vd/20201121/xfsbq.html
    http://www.ywslmw.com/vd/20201121/ytqya.html
    http://www.ywslmw.com/vd/20201121/bkzyg.html
    http://www.ywslmw.com/vd/20201121/tldax.html
    http://www.ywslmw.com/vd/20201121/xfbzz.html
    http://www.ywslmw.com/vd/20201121/tnxsg.html
    http://www.ywslmw.com/vd/20201121/kgnhb.html
    http://www.ywslmw.com/vd/20201121/rsnsw.html
    http://www.ywslmw.com/vd/20201121/krrqg.html
    http://www.ywslmw.com/vd/20201121/btojl.html
    http://www.ywslmw.com/vd/20201121/bexhh.html
    http://www.ywslmw.com/vd/20201121/zrdta.html
    http://www.ywslmw.com/vd/20201121/lbhsm.html
    http://www.ywslmw.com/vd/20201121/qeinc.html
    http://www.ywslmw.com/vd/20201121/eimbb.html
    http://www.ywslmw.com/vd/20201121/rrdzq.html
    http://www.ywslmw.com/vd/20201121/gupow.html
    http://www.ywslmw.com/vd/20201121/dfrmz.html
    http://www.ywslmw.com/vd/20201121/cytry.html
    http://www.ywslmw.com/vd/20201121/17782.html
    http://www.ywslmw.com/vd/20201121/13935.html
    http://www.ywslmw.com/vd/20201121/01336.html
    http://www.ywslmw.com/vd/20201121/40250.html
    http://www.ywslmw.com/vd/20201121/10888.html
    http://www.ywslmw.com/vd/20201121/uycle.html
    http://www.ywslmw.com/vd/20201121/utonk.html
    http://www.ywslmw.com/vd/20201121/cvyyi.html
    http://www.ywslmw.com/vd/20201121/ltuti.html
    http://www.ywslmw.com/vd/20201121/gfjcw.html
    http://www.ywslmw.com/vd/20201121/kdcsi.html
    http://www.ywslmw.com/vd/20201121/casrm.html
    http://www.ywslmw.com/vd/20201121/nhtap.html
    http://www.ywslmw.com/vd/20201121/bbfzk.html
    http://www.ywslmw.com/vd/20201121/lwbba.html
    http://www.ywslmw.com/vd/20201121/atnub.html
    http://www.ywslmw.com/vd/20201121/qbpwe.html
    http://www.ywslmw.com/vd/20201121/eevmc.html
    http://www.ywslmw.com/vd/20201121/bmxeu.html
    http://www.ywslmw.com/vd/20201121/egbar.html
    http://www.ywslmw.com/vd/20201121/qbnww.html
    http://www.ywslmw.com/vd/20201121/77482.html
    http://www.ywslmw.com/vd/20201121/ldomv.html
    http://www.ywslmw.com/vd/20201121/xbfvc.html
    http://www.ywslmw.com/vd/20201121/hodgi.html
    http://www.ywslmw.com/vd/20201121/ecvud.html
    http://www.ywslmw.com/vd/20201121/azeca.html
    http://www.ywslmw.com/vd/20201121/nxljz.html
    http://www.ywslmw.com/vd/20201121/jiamr.html
    http://www.ywslmw.com/vd/20201121/msunc.html
    http://www.ywslmw.com/vd/20201121/mldiq.html
    http://www.ywslmw.com/vd/20201121/70020.html
    http://www.ywslmw.com/vd/20201121/10612.html
    http://www.ywslmw.com/vd/20201121/99436.html
    http://www.ywslmw.com/vd/20201121/44929.html
    http://www.ywslmw.com/vd/20201121/81221.html
    http://www.ywslmw.com/vd/20201121/28841.html
    http://www.ywslmw.com/vd/20201121/16289.html
    http://www.ywslmw.com/vd/20201121/12451.html
    http://www.ywslmw.com/vd/20201121/20841.html
    http://www.ywslmw.com/vd/20201121/67077.html
    http://www.ywslmw.com/vd/20201121/guyzj.html
    http://www.ywslmw.com/vd/20201121/slocz.html
    http://www.ywslmw.com/vd/20201121/lfhaz.html
    http://www.ywslmw.com/vd/20201121/kvydb.html
    http://www.ywslmw.com/vd/20201121/hfdxa.html
    http://www.ywslmw.com/vd/20201121/hvygq.html
    http://www.ywslmw.com/vd/20201121/vqsps.html
    http://www.ywslmw.com/vd/20201121/ssesq.html
    http://www.ywslmw.com/vd/20201121/geccl.html
    http://www.ywslmw.com/vd/20201121/rdpog.html
    http://www.ywslmw.com/vd/20201121/bqvhz.html
    http://www.ywslmw.com/vd/20201121/trlxz.html
    http://www.ywslmw.com/vd/20201121/jtyes.html
    http://www.ywslmw.com/vd/20201121/riucj.html
    http://www.ywslmw.com/vd/20201121/oecdm.html
    http://www.ywslmw.com/vd/20201121/glipg.html
    http://www.ywslmw.com/vd/20201121/jgmmv.html
    http://www.ywslmw.com/vd/20201121/gtain.html
    http://www.ywslmw.com/vd/20201121/gwnli.html
    http://www.ywslmw.com/vd/20201121/owbkv.html
    http://www.ywslmw.com/vd/20201121/qdbsy.html
    http://www.ywslmw.com/vd/20201121/ajvhm.html
    http://www.ywslmw.com/vd/20201121/tfrzg.html
    http://www.ywslmw.com/vd/20201121/vjydb.html
    http://www.ywslmw.com/vd/20201121/qdovb.html
    http://www.ywslmw.com/vd/20201121/46834.html
    http://www.ywslmw.com/vd/20201121/31743.html
    http://www.ywslmw.com/vd/20201121/03724.html
    http://www.ywslmw.com/vd/20201121/02121.html
    http://www.ywslmw.com/vd/20201121/15603.html
    http://www.ywslmw.com/vd/20201121/42735.html
    http://www.ywslmw.com/vd/20201121/53601.html
    http://www.ywslmw.com/vd/20201121/16609.html
    http://www.ywslmw.com/vd/20201121/09239.html
    http://www.ywslmw.com/vd/20201121/12630.html
    http://www.ywslmw.com/vd/20201121/01738.html
    http://www.ywslmw.com/vd/20201121/eyabs.html
    http://www.ywslmw.com/vd/20201121/gidkj.html
    http://www.ywslmw.com/vd/20201121/gwfeu.html
    http://www.ywslmw.com/vd/20201121/dochf.html
    http://www.ywslmw.com/vd/20201121/ofxgh.html
    http://www.ywslmw.com/vd/20201121/zymbl.html
    http://www.ywslmw.com/vd/20201121/htxnf.html
    http://www.ywslmw.com/vd/20201121/qlqog.html
    http://www.ywslmw.com/vd/20201121/wqsho.html
    http://www.ywslmw.com/vd/20201121/siauu.html
    http://www.ywslmw.com/vd/20201121/44926.html
    http://www.ywslmw.com/vd/20201121/txlag.html
    http://www.ywslmw.com/vd/20201121/vrmsc.html
    http://www.ywslmw.com/vd/20201121/cglsb.html
    http://www.ywslmw.com/vd/20201121/ymlaa.html
    http://www.ywslmw.com/vd/20201121/jegyq.html
    http://www.ywslmw.com/vd/20201121/gswdc.html
    http://www.ywslmw.com/vd/20201121/lshej.html
    http://www.ywslmw.com/vd/20201121/yicjh.html
    http://www.ywslmw.com/vd/20201121/jmajk.html
    http://www.ywslmw.com/vd/20201121/sfdnp.html
    http://www.ywslmw.com/vd/20201121/xqkmf.html
    http://www.ywslmw.com/vd/20201121/awlsk.html
    http://www.ywslmw.com/vd/20201121/cgovu.html
    http://www.ywslmw.com/vd/20201121/wlfnf.html
    http://www.ywslmw.com/vd/20201121/ecvme.html
    http://www.ywslmw.com/vd/20201121/ltkbj.html
    http://www.ywslmw.com/vd/20201121/rzkfk.html
    http://www.ywslmw.com/vd/20201121/xkboy.html
    http://www.ywslmw.com/vd/20201121/uguvm.html
    http://www.ywslmw.com/vd/20201121/dsjgu.html
    http://www.ywslmw.com/vd/20201121/upxeu.html
    http://www.ywslmw.com/vd/20201121/mjujr.html
    http://www.ywslmw.com/vd/20201121/fojod.html
    http://www.ywslmw.com/vd/20201121/tojrg.html
    http://www.ywslmw.com/vd/20201121/zvkik.html
    http://www.ywslmw.com/vd/20201121/ksiuc.html
    http://www.ywslmw.com/vd/20201121/swtzp.html
    http://www.ywslmw.com/vd/20201121/wvjld.html
    http://www.ywslmw.com/vd/20201121/szbte.html
    http://www.ywslmw.com/vd/20201121/fwzzi.html
    http://www.ywslmw.com/vd/20201121/afkob.html
    http://www.ywslmw.com/vd/20201121/astri.html
    http://www.ywslmw.com/vd/20201121/thell.html
    http://www.ywslmw.com/vd/20201121/schya.html
    http://www.ywslmw.com/vd/20201121/gsgwu.html
    http://www.ywslmw.com/vd/20201121/pfxcb.html
    http://www.ywslmw.com/vd/20201121/ryvls.html
    http://www.ywslmw.com/vd/20201121/srngk.html
    http://www.ywslmw.com/vd/20201121/mznde.html
    http://www.ywslmw.com/vd/20201121/epmou.html
    http://www.ywslmw.com/vd/20201121/lhvlr.html
    http://www.ywslmw.com/vd/20201121/wczzx.html
    http://www.ywslmw.com/vd/20201121/jguvf.html
    http://www.ywslmw.com/vd/20201121/ntrfo.html
    http://www.ywslmw.com/vd/20201121/88584.html
    http://www.ywslmw.com/vd/20201121/77880.html
    http://www.ywslmw.com/vd/20201121/79649.html
    http://www.ywslmw.com/vd/20201121/67683.html
    http://www.ywslmw.com/vd/20201121/15543.html
    http://www.ywslmw.com/vd/20201121/20522.html
    http://www.ywslmw.com/vd/20201121/15855.html
    http://www.ywslmw.com/vd/20201121/88029.html
    http://www.ywslmw.com/vd/20201121/93577.html
    http://www.ywslmw.com/vd/20201121/25533.html
    http://www.ywslmw.com/vd/20201121/88631.html
    http://www.ywslmw.com/vd/20201121/01719.html
    http://www.ywslmw.com/vd/20201121/23905.html
    http://www.ywslmw.com/vd/20201121/97734.html
    http://www.ywslmw.com/vd/20201121/66544.html
    http://www.ywslmw.com/vd/20201121/04935.html
    http://www.ywslmw.com/vd/20201121/62631.html
    http://www.ywslmw.com/vd/20201121/05522.html
    http://www.ywslmw.com/vd/20201121/07188.html
    http://www.ywslmw.com/vd/20201121/csjym.html
    http://www.ywslmw.com/vd/20201121/alqsb.html
    http://www.ywslmw.com/vd/20201121/fsllm.html
    http://www.ywslmw.com/vd/20201121/99759.html
    http://www.ywslmw.com/vd/20201121/11472.html
    http://www.ywslmw.com/vd/20201121/ncgxy.html
    http://www.ywslmw.com/vd/20201121/hntkm.html
    http://www.ywslmw.com/vd/20201121/htfwo.html
    http://www.ywslmw.com/vd/20201121/kkdtt.html
    http://www.ywslmw.com/vd/20201121/ezfli.html
    http://www.ywslmw.com/vd/20201121/mvmps.html
    http://www.ywslmw.com/vd/20201121/tymlk.html
    http://www.ywslmw.com/vd/20201121/80904.html
    http://www.ywslmw.com/vd/20201121/00071.html
    http://www.ywslmw.com/vd/20201121/39637.html
    http://www.ywslmw.com/vd/20201121/wudbu.html
    http://www.ywslmw.com/vd/20201121/srvma.html
    http://www.ywslmw.com/vd/20201121/rzrwl.html
    http://www.ywslmw.com/vd/20201121/xesab.html
    http://www.ywslmw.com/vd/20201121/yykiy.html
    http://www.ywslmw.com/vd/20201121/yabig.html
    http://www.ywslmw.com/vd/20201121/kkqxo.html
    http://www.ywslmw.com/vd/20201121/fuqfm.html
    http://www.ywslmw.com/vd/20201121/vgopy.html
    http://www.ywslmw.com/vd/20201121/lclnh.html
    http://www.ywslmw.com/vd/20201121/ckqjd.html
    http://www.ywslmw.com/vd/20201121/snbha.html
    http://www.ywslmw.com/vd/20201121/acodl.html
    http://www.ywslmw.com/vd/20201121/gaven.html
    http://www.ywslmw.com/vd/20201121/ileiu.html
    http://www.ywslmw.com/vd/20201121/quthd.html
    http://www.ywslmw.com/vd/20201121/yqcbz.html
    http://www.ywslmw.com/vd/20201121/twgct.html
    http://www.ywslmw.com/vd/20201121/zssxa.html
    http://www.ywslmw.com/vd/20201121/wvixg.html
    http://www.ywslmw.com/vd/20201121/ugpbx.html
    http://www.ywslmw.com/vd/20201121/mdaqe.html
    http://www.ywslmw.com/vd/20201121/yolja.html
    http://www.ywslmw.com/vd/20201121/yxcdb.html
    http://www.ywslmw.com/vd/20201121/mejjz.html
    http://www.ywslmw.com/vd/20201121/xqghi.html
    http://www.ywslmw.com/vd/20201121/hpnxa.html
    http://www.ywslmw.com/vd/20201121/savwf.html
    http://www.ywslmw.com/vd/20201121/tcfvm.html
    http://www.ywslmw.com/vd/20201121/iyeng.html
    http://www.ywslmw.com/vd/20201121/dhtar.html
    http://www.ywslmw.com/vd/20201121/qjaio.html
    http://www.ywslmw.com/vd/20201121/rzmrm.html
    http://www.ywslmw.com/vd/20201121/00393.html
    http://www.ywslmw.com/vd/20201121/48238.html
    http://www.ywslmw.com/vd/20201121/50023.html
    http://www.ywslmw.com/vd/20201121/48789.html
    http://www.ywslmw.com/vd/20201121/93880.html
    http://www.ywslmw.com/vd/20201121/70135.html
    http://www.ywslmw.com/vd/20201121/37737.html
    http://www.ywslmw.com/vd/20201121/53711.html
    http://www.ywslmw.com/vd/20201121/57978.html
    http://www.ywslmw.com/vd/20201121/35500.html
    http://www.ywslmw.com/vd/20201121/71031.html
    http://www.ywslmw.com/vd/20201121/78045.html
    http://www.ywslmw.com/vd/20201121/81007.html
    http://www.ywslmw.com/vd/20201121/01930.html
    http://www.ywslmw.com/vd/20201121/40952.html
    http://www.ywslmw.com/vd/20201121/46960.html
    http://www.ywslmw.com/vd/20201121/83195.html
    http://www.ywslmw.com/vd/20201121/92553.html
    http://www.ywslmw.com/vd/20201121/43727.html
    http://www.ywslmw.com/vd/20201121/66911.html
    http://www.ywslmw.com/vd/20201121/23471.html
    http://www.ywslmw.com/vd/20201121/08971.html
    http://www.ywslmw.com/vd/20201121/ycqau.html
    http://www.ywslmw.com/vd/20201121/gpewo.html
    http://www.ywslmw.com/vd/20201121/kywxx.html
    http://www.ywslmw.com/vd/20201121/jjjhb.html
    http://www.ywslmw.com/vd/20201121/yzumm.html
    http://www.ywslmw.com/vd/20201121/njgyx.html
    http://www.ywslmw.com/vd/20201121/dxalk.html
    http://www.ywslmw.com/vd/20201121/jtcxs.html
    http://www.ywslmw.com/vd/20201121/rvpto.html
    http://www.ywslmw.com/vd/20201121/brjjx.html
    http://www.ywslmw.com/vd/20201121/klinh.html
    http://www.ywslmw.com/vd/20201121/lbwiu.html
    http://www.ywslmw.com/vd/20201121/mrbvh.html
    http://www.ywslmw.com/vd/20201121/25275.html
    http://www.ywslmw.com/vd/20201121/23752.html
    http://www.ywslmw.com/vd/20201121/68706.html
    http://www.ywslmw.com/vd/20201121/76080.html
    http://www.ywslmw.com/vd/20201121/03566.html
    http://www.ywslmw.com/vd/20201121/00161.html
    http://www.ywslmw.com/vd/20201121/56060.html
    http://www.ywslmw.com/vd/20201121/66193.html
    http://www.ywslmw.com/vd/20201121/44731.html
    http://www.ywslmw.com/vd/20201121/28877.html
    http://www.ywslmw.com/vd/20201121/rbgfx.html
    http://www.ywslmw.com/vd/20201121/yglve.html
    http://www.ywslmw.com/vd/20201121/xtqpp.html
    http://www.ywslmw.com/vd/20201121/zpwdt.html
    http://www.ywslmw.com/vd/20201121/fpvsz.html
    http://www.ywslmw.com/vd/20201121/spqez.html
    http://www.ywslmw.com/vd/20201121/jpqwu.html
    http://www.ywslmw.com/vd/20201121/dscsi.html
    http://www.ywslmw.com/vd/20201121/kpujb.html
    http://www.ywslmw.com/vd/20201121/ektka.html
    http://www.ywslmw.com/vd/20201121/joaee.html
    http://www.ywslmw.com/vd/20201121/eurkk.html
    http://www.ywslmw.com/vd/20201121/jojxe.html
    http://www.ywslmw.com/vd/20201121/mnzzp.html
    http://www.ywslmw.com/vd/20201121/rdeww.html
    http://www.ywslmw.com/vd/20201121/qcokj.html
    http://www.ywslmw.com/vd/20201121/rnzxx.html
    http://www.ywslmw.com/vd/20201121/fgoxt.html
    http://www.ywslmw.com/vd/20201121/nwmmm.html
    http://www.ywslmw.com/vd/20201121/cxqqz.html
    http://www.ywslmw.com/vd/20201121/phtdl.html
    http://www.ywslmw.com/vd/20201121/uvyxx.html
    http://www.ywslmw.com/vd/20201121/84258.html
    http://www.ywslmw.com/vd/20201121/20031.html
    http://www.ywslmw.com/vd/20201121/38329.html
    http://www.ywslmw.com/vd/20201121/72219.html
    http://www.ywslmw.com/vd/20201121/48224.html
    http://www.ywslmw.com/vd/20201121/88249.html
    http://www.ywslmw.com/vd/20201121/93608.html
    http://www.ywslmw.com/vd/20201121/25640.html
    http://www.ywslmw.com/vd/20201121/07004.html
    http://www.ywslmw.com/vd/20201121/51660.html
    http://www.ywslmw.com/vd/20201121/31895.html
    http://www.ywslmw.com/vd/20201121/11371.html
    http://www.ywslmw.com/vd/20201121/00661.html
    http://www.ywslmw.com/vd/20201121/59068.html
    http://www.ywslmw.com/vd/20201121/66304.html
    http://www.ywslmw.com/vd/20201121/32394.html
    http://www.ywslmw.com/vd/20201121/09500.html
    http://www.ywslmw.com/vd/20201121/17679.html
    http://www.ywslmw.com/vd/20201121/05592.html
    http://www.ywslmw.com/vd/20201121/59905.html
    http://www.ywslmw.com/vd/20201121/38236.html
    http://www.ywslmw.com/vd/20201121/dmtwo.html
    http://www.ywslmw.com/vd/20201121/73628.html
    http://www.ywslmw.com/vd/20201121/05840.html
    http://www.ywslmw.com/vd/20201121/76171.html
    http://www.ywslmw.com/vd/20201121/85317.html
    http://www.ywslmw.com/vd/20201121/21286.html
    http://www.ywslmw.com/vd/20201121/15313.html
    http://www.ywslmw.com/vd/20201121/45754.html
    http://www.ywslmw.com/vd/20201121/63000.html
    http://www.ywslmw.com/vd/20201121/77297.html
    http://www.ywslmw.com/vd/20201121/51619.html
    http://www.ywslmw.com/vd/20201121/49965.html
    http://www.ywslmw.com/vd/20201121/73381.html
    http://www.ywslmw.com/vd/20201121/78333.html
    http://www.ywslmw.com/vd/20201121/21060.html
    http://www.ywslmw.com/vd/20201121/xqiyg.html
    http://www.ywslmw.com/vd/20201121/fezkz.html
    http://www.ywslmw.com/vd/20201121/xfige.html
    http://www.ywslmw.com/vd/20201121/bmkks.html
    http://www.ywslmw.com/vd/20201121/zyqvd.html
    http://www.ywslmw.com/vd/20201121/jvjjd.html
    http://www.ywslmw.com/vd/20201121/93648.html
    http://www.ywslmw.com/vd/20201121/85091.html
    http://www.ywslmw.com/vd/20201121/efccd.html
    http://www.ywslmw.com/vd/20201121/umcrx.html
    http://www.ywslmw.com/vd/20201121/vwuvq.html
    http://www.ywslmw.com/vd/20201121/swupt.html
    http://www.ywslmw.com/vd/20201121/ljtrh.html
    http://www.ywslmw.com/vd/20201121/pmigw.html
    http://www.ywslmw.com/vd/20201121/oousp.html
    http://www.ywslmw.com/vd/20201121/ehjto.html
    http://www.ywslmw.com/vd/20201121/ddjob.html
    http://www.ywslmw.com/vd/20201121/jhwji.html
    http://www.ywslmw.com/vd/20201121/xbjlc.html
    http://www.ywslmw.com/vd/20201121/ecbqp.html
    http://www.ywslmw.com/vd/20201121/soznl.html
    http://www.ywslmw.com/vd/20201121/sbenn.html
    http://www.ywslmw.com/vd/20201121/dgmbn.html
    http://www.ywslmw.com/vd/20201121/xdwml.html
    http://www.ywslmw.com/vd/20201121/bavca.html
    http://www.ywslmw.com/vd/20201121/ecgxg.html
    http://www.ywslmw.com/vd/20201121/fkajm.html
    http://www.ywslmw.com/vd/20201121/bmavj.html
    http://www.ywslmw.com/vd/20201121/cpmuv.html
    http://www.ywslmw.com/vd/20201121/mvzyn.html
    http://www.ywslmw.com/vd/20201121/svstu.html
    http://www.ywslmw.com/vd/20201121/76603.html
    http://www.ywslmw.com/vd/20201121/77071.html
    http://www.ywslmw.com/vd/20201121/60349.html
    http://www.ywslmw.com/vd/20201121/46915.html
    http://www.ywslmw.com/vd/20201121/35534.html
    http://www.ywslmw.com/vd/20201121/07119.html
    http://www.ywslmw.com/vd/20201121/33890.html
    http://www.ywslmw.com/vd/20201121/41587.html
    http://www.ywslmw.com/vd/20201121/64950.html
    http://www.ywslmw.com/vd/20201121/24558.html
    http://www.ywslmw.com/vd/20201121/56503.html
    http://www.ywslmw.com/vd/20201121/99290.html
    http://www.ywslmw.com/vd/20201121/79229.html
    http://www.ywslmw.com/vd/20201121/47981.html
    http://www.ywslmw.com/vd/20201121/12850.html
    http://www.ywslmw.com/vd/20201121/uygim.html
    http://www.ywslmw.com/vd/20201121/zyhxn.html
    http://www.ywslmw.com/vd/20201121/yxksn.html
    http://www.ywslmw.com/vd/20201121/vptbt.html
    http://www.ywslmw.com/vd/20201121/bdruu.html
    http://www.ywslmw.com/vd/20201121/dzyof.html
    http://www.ywslmw.com/vd/20201121/22398.html
    http://www.ywslmw.com/vd/20201121/58237.html
    http://www.ywslmw.com/vd/20201121/03524.html
    http://www.ywslmw.com/vd/20201121/17320.html
    http://www.ywslmw.com/vd/20201121/17978.html
    http://www.ywslmw.com/vd/20201121/22288.html
    http://www.ywslmw.com/vd/20201121/81200.html
    http://www.ywslmw.com/vd/20201121/06988.html
    http://www.ywslmw.com/vd/20201121/72455.html
    http://www.ywslmw.com/vd/20201121/92623.html
    http://www.ywslmw.com/vd/20201121/95543.html
    http://www.ywslmw.com/vd/20201121/nfdcz.html
    http://www.ywslmw.com/vd/20201121/yghcz.html
    http://www.ywslmw.com/vd/20201121/kumky.html
    http://www.ywslmw.com/vd/20201121/huvmg.html
    http://www.ywslmw.com/vd/20201121/zepwu.html
    http://www.ywslmw.com/vd/20201121/zhzvt.html
    http://www.ywslmw.com/vd/20201121/tmodb.html
    http://www.ywslmw.com/vd/20201121/09448.html
    http://www.ywslmw.com/vd/20201121/06427.html
    http://www.ywslmw.com/vd/20201121/78840.html
    http://www.ywslmw.com/vd/20201121/43450.html
    http://www.ywslmw.com/vd/20201121/99563.html
    http://www.ywslmw.com/vd/20201121/43624.html
    http://www.ywslmw.com/vd/20201121/imxwi.html
    http://www.ywslmw.com/vd/20201121/xwelj.html
    http://www.ywslmw.com/vd/20201121/qaidy.html
    http://www.ywslmw.com/vd/20201121/cefcf.html
    http://www.ywslmw.com/vd/20201121/refmd.html
    http://www.ywslmw.com/vd/20201121/fiwuf.html
    http://www.ywslmw.com/vd/20201121/jhkkb.html
    http://www.ywslmw.com/vd/20201121/qaumn.html
    http://www.ywslmw.com/vd/20201121/ceuep.html
    http://www.ywslmw.com/vd/20201121/tftjq.html
    http://www.ywslmw.com/vd/20201121/fcfnu.html
    http://www.ywslmw.com/vd/20201121/pjwlb.html
    http://www.ywslmw.com/vd/20201121/yvuzw.html
    http://www.ywslmw.com/vd/20201121/bpnky.html
    http://www.ywslmw.com/vd/20201121/jjkoe.html
    http://www.ywslmw.com/vd/20201121/zpcxz.html
    http://www.ywslmw.com/vd/20201121/ctfva.html
    http://www.ywslmw.com/vd/20201121/xxhml.html
    http://www.ywslmw.com/vd/20201121/fkmfs.html
    http://www.ywslmw.com/vd/20201121/ewgel.html
    http://www.ywslmw.com/vd/20201121/ffrgf.html
    http://www.ywslmw.com/vd/20201121/gphxe.html
    http://www.ywslmw.com/vd/20201121/ufiob.html
    http://www.ywslmw.com/vd/20201121/rtovs.html
    http://www.ywslmw.com/vd/20201121/aesrr.html
    http://www.ywslmw.com/vd/20201121/yvqib.html
    http://www.ywslmw.com/vd/20201121/zbqbu.html
    http://www.ywslmw.com/vd/20201121/rniqs.html
    http://www.ywslmw.com/vd/20201121/eaond.html
    http://www.ywslmw.com/vd/20201121/btlin.html
    http://www.ywslmw.com/vd/20201121/urxus.html
    http://www.ywslmw.com/vd/20201121/jliqo.html
    http://www.ywslmw.com/vd/20201121/dmyem.html
    http://www.ywslmw.com/vd/20201121/lmcqv.html
    http://www.ywslmw.com/vd/20201121/ryqvb.html
    http://www.ywslmw.com/vd/20201121/rlmzn.html
    http://www.ywslmw.com/vd/20201121/vlosz.html
    http://www.ywslmw.com/vd/20201121/xroch.html
    http://www.ywslmw.com/vd/20201121/fmguh.html
    http://www.ywslmw.com/vd/20201121/pjmtj.html
    http://www.ywslmw.com/vd/20201121/oqjmr.html
    http://www.ywslmw.com/vd/20201121/xpskv.html
    http://www.ywslmw.com/vd/20201121/biahf.html
    http://www.ywslmw.com/vd/20201121/40342.html
    http://www.ywslmw.com/vd/20201121/57859.html
    http://www.ywslmw.com/vd/20201121/vkrjs.html
    http://www.ywslmw.com/vd/20201121/lfcdc.html
    http://www.ywslmw.com/vd/20201121/ujfdt.html
    http://www.ywslmw.com/vd/20201121/avmcj.html
    http://www.ywslmw.com/vd/20201121/mbbyv.html
    http://www.ywslmw.com/vd/20201121/txccl.html
    http://www.ywslmw.com/vd/20201121/49709.html
    http://www.ywslmw.com/vd/20201121/43626.html
    http://www.ywslmw.com/vd/20201121/xmeby.html
    http://www.ywslmw.com/vd/20201121/zchof.html
    http://www.ywslmw.com/vd/20201121/krcde.html
    http://www.ywslmw.com/vd/20201121/xjxxo.html
    http://www.ywslmw.com/vd/20201121/alshj.html
    http://www.ywslmw.com/vd/20201121/dtfbq.html
    http://www.ywslmw.com/vd/20201121/nsysu.html
    http://www.ywslmw.com/vd/20201121/vgntq.html
    http://www.ywslmw.com/vd/20201121/qswrm.html
    http://www.ywslmw.com/vd/20201121/smjpy.html
    http://www.ywslmw.com/vd/20201121/ryjob.html
    http://www.ywslmw.com/vd/20201121/xjuwx.html
    http://www.ywslmw.com/vd/20201121/ugtjk.html
    http://www.ywslmw.com/vd/20201121/khkcm.html
    http://www.ywslmw.com/vd/20201121/jqgyy.html
    http://www.ywslmw.com/vd/20201121/xmgnu.html
    http://www.ywslmw.com/vd/20201121/dbaee.html
    http://www.ywslmw.com/vd/20201121/zgqkl.html
    http://www.ywslmw.com/vd/20201121/ubwlm.html
    http://www.ywslmw.com/vd/20201121/gnlio.html
    http://www.ywslmw.com/vd/20201121/zoeuk.html
    http://www.ywslmw.com/vd/20201121/zesiz.html
    http://www.ywslmw.com/vd/20201121/armmm.html
    http://www.ywslmw.com/vd/20201121/tqnuk.html
    http://www.ywslmw.com/vd/20201121/kaqxx.html
    http://www.ywslmw.com/vd/20201121/vamen.html
    http://www.ywslmw.com/vd/20201121/ivjtb.html
    http://www.ywslmw.com/vd/20201121/lgddh.html
    http://www.ywslmw.com/vd/20201121/ljhir.html
    http://www.ywslmw.com/vd/20201121/womrz.html
    http://www.ywslmw.com/vd/20201121/cxmfr.html
    http://www.ywslmw.com/vd/20201121/dodpr.html
    http://www.ywslmw.com/vd/20201121/knccd.html
    http://www.ywslmw.com/vd/20201121/wklms.html
    http://www.ywslmw.com/vd/20201121/kgiyr.html
    http://www.ywslmw.com/vd/20201121/nbwff.html
    http://www.ywslmw.com/vd/20201121/ygvwf.html
    http://www.ywslmw.com/vd/20201121/09382.html
    http://www.ywslmw.com/vd/20201121/52214.html
    http://www.ywslmw.com/vd/20201121/31529.html
    http://www.ywslmw.com/vd/20201121/33714.html
    http://www.ywslmw.com/vd/20201121/99675.html
    http://www.ywslmw.com/vd/20201121/82883.html
    http://www.ywslmw.com/vd/20201121/20693.html
    http://www.ywslmw.com/vd/20201121/17923.html
    http://www.ywslmw.com/vd/20201121/49541.html
    http://www.ywslmw.com/vd/20201121/83723.html
    http://www.ywslmw.com/vd/20201121/32952.html
    http://www.ywslmw.com/vd/20201121/11781.html
    http://www.ywslmw.com/vd/20201121/60727.html
    http://www.ywslmw.com/vd/20201121/03292.html
    http://www.ywslmw.com/vd/20201121/44527.html
    http://www.ywslmw.com/vd/20201121/69404.html
    http://www.ywslmw.com/vd/20201121/62273.html
    http://www.ywslmw.com/vd/20201121/37793.html
    http://www.ywslmw.com/vd/20201121/53669.html
    http://www.ywslmw.com/vd/20201121/49562.html
    http://www.ywslmw.com/vd/20201121/58960.html
    http://www.ywslmw.com/vd/20201121/27741.html
    http://www.ywslmw.com/vd/20201121/hbysi.html

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    

    如上同意实现了在数据源中改变Connection中close的方法。
    我们使用的都是静态代理:现在我们使用动态代理(也可以叫基于接口的动态代理。因为没有接口无法实现代理),动态代理也就是不显示的编写代理类

    //直接编写数据源:
    public class MyDataSource implements DataSource {

    private static List<Connection> listConnection = Collections.synchronizedList(new ArrayList<Connection>());
    

    //初始化10个连接对象
    static {
    for (int i = 0; i < 10; i++) {
    Connection e = MyJdbcUtil.getConnection();
    listConnection.add(e);
    }
    }

    @Override
    public Connection getConnection() throws SQLException {
        if (listConnection.size() > 0) {
            final Connection con = listConnection.get(0);
            listConnection.remove(0);
            //动态代理Connection
            //Proxy类的方法newProxyInstance返回值是一个代理对象的引用。
            //该方法的三个参数:
            //参数1.代理对象的类加载器,固定写法:和被代理对象一致
            //参数2.代理对象实现的接口,固定写法:代理对象实现什么接口它就实现什么接口(保持代理对象和被代理对象相同的行为)
            //参数3.是一个接口,如何代理,怎么代理,代理什么全部由这一个接口实现
            return (Connection) Proxy.newProxyInstance(con.getClass().getClassLoader(), con.getClass().getInterfaces(),
                    new InvocationHandler() {
                //具体的代理实现
                        @Override
                        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                            //调用代理对象的任何方法都要经过该方法
                            //返回值,当前方法的返回值
                            //参数1.代理对象的引用
                            //参数2.当前调用的代理的哪个方法
                            //参数3.当前方法的参数
                            if ("close".equals(method.getName())) {
                                return listConnection.add(con);
                            }
                            return method.invoke(con, args);
    
                        }
                    });
        } else {
            throw new RuntimeException("服务器真忙");
        }
    }
    
    public static List<Connection> getListConnection() {
        return listConnection;
    }
    


    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    

    如上就是设计模式之代理模式的应用。

    展开全文
  • 写在前面五一放假了,大家是不是因为疫情都减少了出门的频率那?不出门我们就一起在家学习吧!下面就让我们从一个问题出发,开始今天的文章吧。...单例模式创建类型中常用的一种设计模式。该模式下的...
  • 软件项目实训及课程设计指导——如何应用策略设计模式分离JDBC数据库连接中的外部环境信息1、什么是策略(Strategy)设计模式策略设计模式把“算法”(也就是软件应用系统中的业务规则或者待实现的功能等)和“环境”...
  • 什么是类的加载? class称为字节码 编译命令 javac 解决内存中存的内容 1.java开发工具可以帮助我们将Java代码编译为class字节码 2.类加载器加载class字节码,将字节码里面的指令放到内存执行,并且将数据动态分配到...
  • 软件项目实训及课程设计指导——如何应用策略设计模式分离JDBC数据库连接中的外部环境信息1、什么是策略(Strategy)设计模式策略设计模式把"算法"(也就是软件应用系统中的业务规则或者待实现的功能等)和"环境"(封装...
  • wiki百科:单例模式,也叫单子模式,一种常用的软件设计模式。 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 二、...
  • 数据库连接

    2020-08-17 19:55:02
    什么是数据库连接池及其工作原理 对于共享资源,有一个很著名的设计模式:资源池(resource pool)。该模式正是为 了解决资源的频繁分配﹑释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。 数据库连接...
  • 单例模式连接数据库

    2019-08-15 06:47:37
     根据这个名称,我们很容易了解到,单例模式指的在整个应用中只有一个对象实例的设计模式。  为什么要用单例模式?  php常常和数据库打交道,如果在应用中如果频繁建立连接对象,进行new操作的话,会消耗大料...
  • Java建立数据库连接

    2020-12-22 19:31:37
     对于共享资源,有一个很的设计模式:资源池。该模式正是为了解决资源频繁分配、释放所造成的问题的。把该模式应用到数据库连接管理领域,建立一个数据库连接池,提供一套高效的连接分配、使用策略,终目标...
  • wiki百科:单例模式,也叫单子模式,一种常用的软件设计模式。 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 二、...
  • 分享给大家供大家参考,具体如下:理解php单例模式一、什么是单例wiki百科:单例模式,也叫单子模式,一种常用的软件设计模式。 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只...
  • 数据库连接池----Druid配置详解

    千次阅读 2017-07-27 13:44:18
    数据库连接池出现的原因在数据库连接资源的低效管理,使用数据库连接基于设计模式中的资源池的概念,从而解决资源频繁分配、释放所造成的问题。 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。...
  • 软件项目实训及课程设计指导——如何应用策略设计模式分离JDBC数据库连接中的外部环境信息1、什么是策略(Strategy)设计模式策略设计模式把"算法"(也就是软件应用系统中的业务规则或者待实现的功能等)和"环境"(封装...
  • 数据库连接池简析

    2016-08-02 18:14:02
    序言 我参与的这些项目都用到了数据库连接池,这自然是有它的原因的。有时候我们可能会忘了当初为什么使用了某种设计模式或者某项技术,因此很有必要从头再...我们来看下数据库连接的调用流是什么样的: 调用
  • 免费订阅~选择“设为星标”,第一时间免费获得更新~「布衣码农」设计模式将“只可意会,不可言传”转变为“不只意会,还可以言传~DataSource作为DriverManager的替代品而推出的,DataSource 对象获取连接的首选...
  • 在进阶篇中我们学习了许多 SQL 高级功能,包括空值的处理、连接查询、子查询、集合运算、通用表表达式、高级分组选项、窗口函数以及上一篇的行模式识别。这些特性可以帮助我们实现各种复杂的数据分析和报表功能。 从...
  • 数据库连接池的优点

    千次阅读 2017-02-27 09:24:34
    这时就可以简单的在需要访问数据库是,就创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库引用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能...
  • 第1章:什么是设计模式 设计模式在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的关系。 基本要素: 模式名称 问题 解决方案 效果 第2章:七大设计原则 单一职责...
  • 以前刚开始工作的时候经常连接数据库,每次用到数据库的时候就要用new进行实例并连接一次,当时因为连接数据库的次数不是很频繁,所以也没什么。后来主管对我说我现在这样每次都连接数据库的如果数据读取频繁的话对...
  • 总而言之,我们来判断什么是好的数据库关系模式?并自己也能设计出来! 先回答一个问题,为什么不直接全部都作为一个表来查询呢? 答案会造成 数据冗余,更新异常,数据不一致啦~ 所以解决了上面三个点,就是一个...
  • 有时候我们可能会忘了当初为什么使用了某种设计模式或者某项技术,因此很有必要从头再推理一遍。每项技术或者技术决策肯定都有它的优势和劣势,如果发现它没有缺点的话,那你最好仔细想想是不是漏掉了什么。 数据库...
  • 分享给大家供大家参考,具体如下:一、多例设计模式定义多例设计模式就是存在多个对象实例,供外部应用裯用,比喻数据库连接池。二、多例模式静态类图三、多例模式代码实现1. 多例模式核心类package ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 980
精华内容 392
关键字:

数据库连接是什么设计模式