使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
2012-07-28 11:11
567 查看
package blog.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import blog.exception.DBException; public class DBUtil { private static DataSource ds = null; /** * 从数据库连接池获得一个数据库连接 * @return 数据库连接 * @throws DBException */ public static Connection getConnection() throws DBException { //用数据库连接池的方式实现,JNDI try { if(ds == null){ Context context = new InitialContext(); ds = (DataSource) context.lookup("java:comp/env/jdbc/pmdb"); } return ds.getConnection(); } catch (NamingException e) { throw new DBException("数据库连接池查找失败", e); } catch (SQLException e) { throw new DBException("获取数据库连接异常", e); } } public static PreparedStatement getPreparedStatement(Connection conn, String sql) throws DBException { PreparedStatement pstmt = null; try { if (conn != null) { pstmt = conn.prepareStatement(sql); } } catch (SQLException e) { throw new DBException("创建执行语句失败", e); } return pstmt; } public static PreparedStatement getPreparedStatement(Connection conn, String sql, int autoGenereatedKeys) throws DBException { PreparedStatement pstmt = null; try { if (conn != null) { pstmt = conn.prepareStatement(sql, autoGenereatedKeys); } } catch (SQLException e) { throw new DBException("创建执行语句失败", e); } return pstmt; } public static Statement getStatement(Connection conn) throws DBException { Statement stmt = null; try { if (conn != null) { stmt = conn.createStatement(); } } catch (SQLException e) { throw new DBException("创建执行语句失败", e); } return stmt; } public static ResultSet getResultSet(Statement stmt, String sql) throws DBException { ResultSet rs = null; try { if (stmt != null) { rs = stmt.executeQuery(sql); } } catch (SQLException e) { throw new DBException("获得查询结果集失败:" + sql, e); } return rs; } public static void executeUpdate(Statement stmt, String sql) throws DBException { try { if (stmt != null) { stmt.executeUpdate(sql); } } catch (SQLException e) { throw new DBException("更新失败:" + sql, e); } } /** * 归还数据库连接 * @param conn 数据库连接实例 * @throws DBException */ public static void close(Connection conn) throws DBException { try { if (conn != null) { conn.close(); //把数据库连接归还到数据库连接池,并不是真正的断开数据库的连接 } } catch (SQLException e) { throw new DBException("关闭数据库连接异常", e); } } public static void close(Statement stmt) throws DBException { try { if (stmt != null) { stmt.close(); stmt = null; } } catch (SQLException e) { throw new DBException("关闭数据库语句异常", e); } } public static void close(ResultSet rs) throws DBException { try { if (rs != null) { rs.close(); rs = null; } } catch (SQLException e) { throw new DBException("关闭数据库结果集异常", e); } } }
<Context reloadable="true"> <Resource name="jdbc/pmdb" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="1234" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/pmdb?useUnicode=true&characterEncoding=utf-8"> </Resource> </Context>
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <resource-ref> <res-ref-name>jdbc/pmdb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
相关文章推荐
- 使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
- 使用连接池的方式连接数据库:使用DBUtil连接ORACLE数据库
- 使用连接池的方式连接数据库:使用DBUtil连接ORACLE数据库
- mysql数据库连接池使用(一)dbcp方式的配置
- Nodejs使用连接池连接数据库
- 数据库学习第二季第二集:各种编程语言连接MySQL数据库方式总结
- java使用jdbc方式连接数据库实例
- 详细讲解各种数据库使用JDBC连接的方式
- 记代码小白的第一次数据库连接——Eclipse使用JDBC连接到Mysql数据库
- 使用连接池获取数据库连接
- 使用JDBC-ODBC桥接的方式连接数据库
- Entity Framework CodeFirst------使用CodeFirst方式建立数据库连接(一)
- mysql数据库连接池使用(一)dbcp方式的配置
- 使用PowerDesigner的JDBC方式连接数据库
- 使用sqlexpress的数据库连接配置,使用附加数据库方式
- 使用Tomcat 连接池 连接数据库的实例
- 使用EntityFramework6连接MySql数据库(code first方式)
- mysql数据库连接池使用(二)实现自己的数据库连接池
- 数据库连接从每次建立连接到配置文件的解耦和连接池的使用
- Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节