美文网首页
单利模式和连接数据卡-06-20

单利模式和连接数据卡-06-20

作者: 我去你家歇会呗 | 来源:发表于2019-06-20 09:18 被阅读0次

单例模式,内存中只有一个类,一个类只能实例化一次

饿汉模式

public class Person{

prvaite static Person p=new Person();

private Person(){}

public void  static Person getInstance(){

return p;

}

}

懒汉模式

public clas Person{

prvaite  static Person p=null;

private Person(){}

public void  static Person getInstance(){

if(p==null){

synchronized(Person.class){

p=new Person();

}

}

return p;

}

}

配置文件

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/day17?characterEncoding=utf8

username=root

password=root

读取配置文件

package com.bdqn.until;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ConfigManager {

//

    private static ConfigManager cm ;

    Properties properties;

    private  ConfigManager(){

//        String file = "D:\\workspace\\login\\src\\properties\\database.properties";

//        inputStream = new FileInputStream(file);

        String file = "database.properties";

        InputStream inputStream = ConfigManager.class.getClassLoader().getResourceAsStream(file);

        properties = new Properties();

        try {

            properties.load(inputStream);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    public static  ConfigManager  getCm(){

        if(cm == null){

            synchronized(ConfigManager.class){

                cm = new ConfigManager();

            }

        }

        return  cm;

    }

    public String getProRes(String para){

        return  properties.getProperty(para);

    }

    public static void main(String[] args) {

        System.out.println(ConfigManager.getCm().getProRes("driver"));

    }

}

配置数据源

Tomcat 

context.xml

根节点添加Resource节点

<Resource name="jdbc/news"

              auth="Container"  type="javax.sql.DataSource"  maxActive="100"

              maxIdle="30" maxWait="10000" username="root"  password="root"

              driverClassName="com.mysql.jdbc.Driver"

              url="jdbc:mysql://127.0.0.1:3306/news"/>

  name=指定Resource的JNDI名称

  auth=指定管理Resource的Manager(Container由容器创建和管理,Application由Web应用创建和管理)

  type=指定Resource的java类

  maxActive=指定连接池中处于活动状态的数据库连接的最大数量

  maxIdle=指定连接池中处于空闲状态的数据库的最大数量

  maxWait=指定连接池中连接处于空闲的最长时间,超过这个时间会提示异常,取值为-1,表示可以无限期等待,单位为毫秒(ms)

这里不要忘记:还需要将数据库的驱动jar包添加到,Tomcat安装目录下的lib文件夹中。

// 获取数据库连接

  public Connection getConnection2() {

   try {

    //初始化上下文

    Context cxt=new InitialContext();

    //获取与逻辑名相关联的数据源对象

    DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");

    conn=ds.getConnection();

   } catch (NamingException e) {

    e.printStackTrace();

   } catch (SQLException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

   }

   return conn;

  }

还有一点要注意:测试连接是否成功,需要在jsp页面输出connection,而不是在java类中Run As,应为数据源配置在Tomcat中需要把Web项目放入Tomcat容器中运行。jsp页面代码如下:

示例:

<%

BaseDao baseDao=new BaseDao();

Connection connection=baseDao.getConnection2();

 %>

<%=connection %>

相关文章

  • 单利模式和连接数据卡-06-20

    单例模式,内存中只有一个类,一个类只能实例化一次 饿汉模式 public class Person{ prvait...

  • 细品 javascript 设计模式(单利模式)

    我尽量用最少的文字,最少的篇幅,讲明白设计模式的方方面面。文章连接 理解单利模式 上代码:通用的惰性单利模式 单利...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 单例模式

    单利模式

  • 一次支付的终值和现值

    一 单利模式下的终值和现值 单利终值:​​F=P*(1+i*n) 单利现值:P=F/(1+i*n) 二 复利模...

  • 单利设计模式

    单利模式的介绍 单利模式是应用最广的模式之一,也可能是很多初级工程师唯一会使用的设计模式。在应用这个模式时,单利对...

  • 设计模式

    单利模式 代理模式 工厂模式 装饰者模式:

  • 2018-05-14

    单利设计模式 懒汉式 单例模式 饿汉式 单利模式 懒汉式与饿汉式的区别: 双重锁式 单例模式 (DCL )

  • DCL缺陷和优化

    DCL的问题 单利模式是我们经常用到的一种模式,但是要正确的书写和理解一个单利模式却没有那么简单,首先我们看看下面...

  • 单利模式

    11

网友评论

      本文标题:单利模式和连接数据卡-06-20

      本文链接:https://www.haomeiwen.com/subject/ambrqctx.html