jdbc链接数据库的三种方式
来源:互联网 发布:淘宝客佣金被冻结 编辑:程序博客网 时间:2024/06/05 00:10
数据库连接池
服务器启动时,先创建若干个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();
}
}
}
- jdbc链接数据库的三种方式
- jdbc 链接方式 DBUtil获得链接的三种写法
- jdbc mysql数据库链接 及 三种不同的注册驱动的方式
- jdbc连接数据库的三种方式
- pdo链接数据库的三种方式
- #.Java使用JDBC连接数据库的三种方式
- jsp链接数据库的方法(jdbc方式)
- 黑马总结 三 : jdbc链接数据库
- JDBC访问数据库的方式——实例三
- 四种jdbc链接方式
- 注册JDBC驱动的三种方式
- 注册Jdbc驱动程序的三种方式
- Jdbc注册驱动的三种方式
- 注册jdbc驱动程序的三种方式
- 注册Jdbc驱动程序的三种方式
- 注册JDBC驱动的三种方式
- JDBC驱动注册的三种方式
- 注册JDBC驱动的三种方式
- 用grep提取正则匹配上的字符串
- 使用NSString 的格式化大全
- 关于Break 、Contiun 和Return语句的说明
- 个人就现有的网络备课系统的一点看法
- c++test版本简介
- jdbc链接数据库的三种方式
- dom4j 远程读取
- ListView 动态加载
- 16进制、10进制、BCD码之间的转换
- SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
- [Web开发笔记][3]MyEclipse 8.0启动Tomcat 7报错:Could not find the main class: org.apache.catalina.startup……
- C++ 读写INI文件
- C语言和设计模式(策略模式)
- SQLite技巧