使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
2012-07-28 11:11
393 查看
原文链接:https://www.geek-share.com/detail/2554445061.html
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>
转载于:https://www.cnblogs.com/xzf007/archive/2012/07/28/2873834.html
相关文章推荐
- 使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
- 使用连接池的方式连接数据库:使用DBUtil连接MYSQL数据库
- 使用连接池的方式连接数据库:使用DBUtil连接ORACLE数据库
- 使用连接池的方式连接数据库:使用DBUtil连接ORACLE数据库
- 使用连接池的方式连接数据库:使用DBUtil连接ORACLE数据库
- 使用JDBC建立各种数据库的连接方式集萃
- 在VC6中使用c API方式连接MySQL数据库
- c# cs方式操作数据库 非使用sql连接字符串直接连接数据库
- 使用dbExpress连接方式访问数据库
- ThinkPHP使用PDO方式连接数据库之PDO的介绍与安装,开发环境是PHP5
- 使用isql连接Sybase ASE数据库的常见错误及处理方式
- mysql数据库连接池使用(二)实现自己的数据库连接池
- PHP使用数据库永久连接方式(mysql_pconnect)操作MySQL的是与非
- 使用JDBC-ODBC桥接的方式连接数据库
- java使用jdbc方式连接数据库实例
- 数据库使用JDBC连接的方式
- 使用SQL*Plus的Preliminary方式连接数据库
- mysql数据库连接池使用(一)dbcp方式的配置
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
- 在VC6中使用c API方式连接MySQL数据库