//在源程序中直接硬编码连接的参数信息
//代码片段
Connection conn;
String dirver = “oracle.jdbc.driver.OracleDriver”;
String url = “jdbc:oracle:thin:@127.0.0.1:1521:aptech”;
String userName = “scott”;
String password = “tiger”;
try {
Class.forName(dirver);
conn = DriverManager.getConnection(url,userName, password);
} catch (ClassNotFoundException e) {//找不到驱动程序类}
catch (SQLException e) {//数据库连接失败}
finally{
try {
if (con != null) con.close();
} catch (SQLException e) {e.printStackTrace();}
}
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=shopping"; // 连接服务器和数据库sample
String userName = "sa"; // 默认用户名
String userPwd = ""; // 密码
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
con = true;
// System.out.println("Connection Successful!"); //如果连接成功
// 控制台输出Connection Successful!
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
//通过属性文件加载数据库连接的参数信息
//代码片段
Properties props = new Properties();
props.load(
new FileInputStream("src/com/jdbc/connection/database.properties") );
String drivers = props.getProperty("jdbc.drivers");
String url = props.getProperty("jdbc.url");
String username = props.getProperty("jdbc.username");
String password = props.getProperty("jdbc.password");
Class.forName(drivers);
con = DriverManager.getConnection(url, username, password);
//属性文件
jdbc.drivers=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:aptech
jdbc.username=scott
jdbc.password=tiger
Tomcat自带的数据库连接池管理 从数据源获得连接
在tomcat中通过JNDI服务获得DataSource引用,通过DataSource获得数据库连接
1.配置数据源JNDI服务
2.在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用
3. DataSource的getConnection方法获得连接
第一种 方法
/* Tomcat自带的数据库连接池管理工具
DBCP 使用 Jakarta-Commons Database Connection Pool. 它依赖于以下Jakarta-Commons 组件:
Jakarta-Commons DBCP
Jakarta-Commons Collections
Jakarta-Commons Pool
以上程序库被包含在$CATALINA_HOME/lib/tomcat-dbcp.jar 一个单独的jar包中。也可以分别到apache组织的网站上下载3个独
立的jar包
*/
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
ds.setUsername("sa");
ds.setPassword("shenlin");
ds.setUrl(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CRM”);
ds.getConnection();
第一种 方法
/*
在tomcat中配置数据源JNDI服务
在TOMCAT_HOME\conf\context.xml中添加Resource元素
将JDBC驱动程序(如class12.jar)添加到TOMCAT_HOME\lib目录中
如果tomcat已经启动需要重新启动才能生效
*/
<Resource name="jdbc/scott"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ntcsoft" />
在应用中通过JNDI使用javax.naming.Context的lookup方法来检索DataSource引用,由DataSource获得数据库连接
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/scott");
Connection conn = ds.getConnection();
/*
必须一致
<Resource name="jdbc/scott" …….. />
*/
C3p0数据库连接池
import com.mchange.v2.c3p0.*;
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "org.postgresql.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );
cpds.setUser("dbuser");
cpds.setPassword("dbpassword");
/*
如果你想打开PreparedStatement 池, 你必须 设置 maxStatements 和/或 maxStatementsPerConnection (both default to 0):
*/
cpds.setMaxStatements( 180 );
//销毁数据源
DataSources.destroy( cpds );
/*
在tomcat中配置c3p0数据源JNDI服务
在TOMCAT_HOME\conf\context.xml中添加Resource元素
将JDBC驱动程序(如class12.jar)和c3p0的jar包添加到TOMCAT_HOME\lib目录中
如果tomcat已经启动需要重新启动才能生效
*/
<Resource
name="jdbc/exam"
auth="Container"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
description="DB Connection"
driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
maxPoolSize="4"
minPoolSize="2"
acquireIncrement="1"
user="sa"
password=""
jdbcUrl="jdbc:sqlserver://localhost:1433;DatabaseName=exam"
/>