jsp servlet 中数据源的配置(建议用框框架写项目,不过此篇博文以备那些小白们只会servlet写项目用)

来源:互联网 发布:pthread linux 编辑:程序博客网 时间:2024/05/26 12:07
META-INF 下创建content.xml
<?xml version='1.0' encoding='utf-8'?><!-- reloadable="true" crossContext="true"> --><Context><Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"maxActive="20" maxIdle="10" maxWait="200000" username="root" password="root"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/key_manage?characterEncoding=UTF-8" /></Context>


DBHelper.java 

package com.kfx.commons;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;public class DBHelper {/** * MySQL数据库的默认驱动 */public static final String DATABASE_MYSQL = "org.gjt.mm.mysql.Driver";/** * 数据源 */private static DataSource ds;/** * 数据库连接 */private static Connection conn;/** * 获取数据库连接 * @return */public static synchronized Connection openConn() {Connection conn=null;try {if (ds == null) {ds = getDataSource();}conn=ds.getConnection();} catch (SQLException e) {throw new RuntimeException("获取数据库连接异常", e);}finally{return conn;}}/** * 获取数据源 * @return ds */public static DataSource getDataSource() {try {Context cxt = new InitialContext();ds=(DataSource) cxt.lookup("java:comp/env/jdbc/mysql");} catch (NamingException e) {System.out.println(e);throw new RuntimeException("jndi 异常");}finally{return ds;}}/** * 关闭连接 * @param conn * @param st * @param rs */public static void close(Connection conn, Statement ps, ResultSet rs) {try {if (rs != null) {rs.close();}if (ps != null) {ps.close();}if (conn != null&&!conn.isClosed()) {conn.close();}} catch (SQLException e) {throw new RuntimeException("关闭异常", e);}}}