jdbc链接数据库的三种方式
2011-12-30 19:28
507 查看
数据库连接池
服务器启动时,先创建若干个Connection对象,放到“池”中,然后让它们被重复使用,可以避开连接创建时间长的问题
Tomcat服务器自身内置连接池功能,做下配置即可实现
配置步骤:
1. server.xml配置文件中,定位到工程对应的Context标签
2. 在Context标签体内,添加Resource标签,配置连接池属性
name="jdbc" 资源名字
auth="Container" 资源的管理者,两个选项:Application和Container
type="javax.sql.DataSource" 资源类型,完整的包+类名
maxActive="100" 连接池中数据库连接的最大数目,0表示没有限制
maxIdle="30"
maxWait="10000" 等待获取一个连接对象的最大时间,单位:毫秒,-1表示永久等待
username="root" 连接数据库的用户名
password="root" 连接数据库的密码
driverClassName="com.mysql.jdbc.Driver" JDBC驱动名字
url="jdbc:mysql://localhost:3306/tieba" 连接数据库的URL
3. 代码中获取连接池中的连接对象
...
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc");
Connection conn = ds.getConnection();
...
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBUtil1
{
/**
* 数据库通用方法
* 用于获取一个数据库连接对象
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public static Connection getConnection() throws ClassNotFoundException, SQLException
{
// try
// {
// 方法一:通过最原始的写定数据库信息获取连接对象
// Class.forName("com.mysql.jdbc.Driver");
// String url = "jdbc:mysql://localhost:3306/tieba";
// String user = "root";
// String password = "root";
// 方法二:通过从外部配置文件获取数据库连接相关信息
// .properties文件相关操作的封装类
// Properties config = new Properties();
// 从部署后的WEB-INF/classes目录下加载config.properties文件
// ClassLoader loader = Thread.currentThread().getContextClassLoader();
// config.load(loader.getResourceAsStream("config.properties"));
// 从properties文件中获取数据库配置信息
// Class.forName(config.getProperty("dbDriver"));
// String url = config.getProperty("dbUrl");
// String user = config.getProperty("dbUsername");
// String password = config.getProperty("dbPassword");
//
// return DriverManager.getConnection(url, user, password);
// }
// catch (IOException e)
// {
// e.printStackTrace();
// }
// 方法三:通过从连接池中获取连接对象
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc");
return ds.getConnection();
}
catch (NamingException e)
{
e.printStackTrace();
}
return null;
}
/**
* 用于关闭数据库相关操作的对象
* @param conn
* @param stmt
* @param rs
*/
public static void close(Connection conn, Statement stmt, ResultSet rs)
{
try
{
if(rs != null)
{
rs.close();
}
if(stmt != null)
{
stmt.close();
}
if(conn != null)
{
conn.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
服务器启动时,先创建若干个Connection对象,放到“池”中,然后让它们被重复使用,可以避开连接创建时间长的问题
Tomcat服务器自身内置连接池功能,做下配置即可实现
配置步骤:
1. server.xml配置文件中,定位到工程对应的Context标签
2. 在Context标签体内,添加Resource标签,配置连接池属性
name="jdbc" 资源名字
auth="Container" 资源的管理者,两个选项:Application和Container
type="javax.sql.DataSource" 资源类型,完整的包+类名
maxActive="100" 连接池中数据库连接的最大数目,0表示没有限制
maxIdle="30"
maxWait="10000" 等待获取一个连接对象的最大时间,单位:毫秒,-1表示永久等待
username="root" 连接数据库的用户名
password="root" 连接数据库的密码
driverClassName="com.mysql.jdbc.Driver" JDBC驱动名字
url="jdbc:mysql://localhost:3306/tieba" 连接数据库的URL
3. 代码中获取连接池中的连接对象
...
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc");
Connection conn = ds.getConnection();
...
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBUtil1
{
/**
* 数据库通用方法
* 用于获取一个数据库连接对象
* @return
* @throws ClassNotFoundException
* @throws SQLException
*/
public static Connection getConnection() throws ClassNotFoundException, SQLException
{
// try
// {
// 方法一:通过最原始的写定数据库信息获取连接对象
// Class.forName("com.mysql.jdbc.Driver");
// String url = "jdbc:mysql://localhost:3306/tieba";
// String user = "root";
// String password = "root";
// 方法二:通过从外部配置文件获取数据库连接相关信息
// .properties文件相关操作的封装类
// Properties config = new Properties();
// 从部署后的WEB-INF/classes目录下加载config.properties文件
// ClassLoader loader = Thread.currentThread().getContextClassLoader();
// config.load(loader.getResourceAsStream("config.properties"));
// 从properties文件中获取数据库配置信息
// Class.forName(config.getProperty("dbDriver"));
// String url = config.getProperty("dbUrl");
// String user = config.getProperty("dbUsername");
// String password = config.getProperty("dbPassword");
//
// return DriverManager.getConnection(url, user, password);
// }
// catch (IOException e)
// {
// e.printStackTrace();
// }
// 方法三:通过从连接池中获取连接对象
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc");
return ds.getConnection();
}
catch (NamingException e)
{
e.printStackTrace();
}
return null;
}
/**
* 用于关闭数据库相关操作的对象
* @param conn
* @param stmt
* @param rs
*/
public static void close(Connection conn, Statement stmt, ResultSet rs)
{
try
{
if(rs != null)
{
rs.close();
}
if(stmt != null)
{
stmt.close();
}
if(conn != null)
{
conn.close();
}
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
相关文章推荐
- pdo链接数据库的三种方式
- JDBC 三种方式注册数据库驱动(转载)
- Java JDBC链接数据库使用方式 java JDBC链接SQlServer数据库
- 理解class.forName() ---使用jdbc方式链接数据库时会经常看到这句代码
- jdbc 链接方式 DBUtil获得链接的三种写法
- #.Java使用JDBC连接数据库的三种方式
- JDBC三种方式加载数据库驱动(源码)
- java jdbc/ojdbc 链接oracle的三种方式
- JDBC操作数据库的三种方式比较
- jdbc连接数据库的三种方式
- JDBC三种方式加载数据库驱动(源码)
- 大数据(二十三)Hive【Hive三种启动方式 、 HIVE Server2详解 、 jdbc链接HIVE】
- Java操作数据库的三种方式(原生jdbc,JdbcTemplate,数据层框架)
- jdbc mysql数据库链接 及 三种不同的注册驱动的方式
- Laravel 连接数据库、操作数据库的三种方式
- 注册jdbc驱动程序的三种方式
- 各种数据库JDBC驱动加载注册方式以及建立连接时的URL字符串
- JDBC获取数据库链接
- PL/SQL可以连oracle,但是jdbc连不上,原来是因为url链接方式不同 格式不一样
- jdbc链接数据库操作