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

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);
		}
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值