单例模式:一个类里只有一个实例,其他对象想要调用此方法需要全局提供一个访问点
properties配置文件配置信息
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://127.0.0.1:3306/数据库名
mysql.user=root
mysql.pwd=root
数据源的配置与使用数据源的方法:
单例模式
饿汉模式
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节点
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 %>