首页 > 编程 > JSP > 正文

JSP基于JDBC的数据库连接类实例

2020-07-27 21:29:04
字体:
来源:转载
供稿:网友

本文实例讲述了JSP基于JDBC的数据库连接类。分享给大家供大家参考,具体如下:

/* * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package com.yanek.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Enumeration;import java.util.Hashtable;import java.util.PropertyResourceBundle;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;/** * @author Administrator *  * TODO To change the template for this generated type comment go to Window - * Preferences - Java - Code Style - Code Templates */public class Database { /** * 数据库访问URL */ private static String url; /** * 数据库驱动 */ private static String driver; /** * 数据库访问用户名 */ private static String username; /** * 数据库访问口令 */ private static String password; /** * 访问类型 */ private static String type; /** * 数据源名称 */ private static String datasource; /** * 配置文件名称 */ private final static String fileName = "database"; private static ThreadLocal connection = new ThreadLocal(); static { config(); } private static void config() { // 读取系统配置 PropertyResourceBundle resourceBundle = (PropertyResourceBundle) PropertyResourceBundle  .getBundle(fileName); // 将系统设置赋值给类变量 Enumeration enu = resourceBundle.getKeys(); while (enu.hasMoreElements()) {  String propertyName = enu.nextElement().toString();  if (propertyName.equals("database.url"))  url = resourceBundle.getString("database.url");  if (propertyName.equals("database.driver"))  driver = resourceBundle.getString("database.driver");  if (propertyName.equals("database.username"))  username = resourceBundle.getString("database.username");  if (propertyName.equals("database.password"))  password = resourceBundle.getString("database.password");  if (propertyName.equals("database.type"))  type = resourceBundle.getString("database.type");  if (propertyName.equals("database.datasource"))  datasource = resourceBundle.getString("database.datasource"); } } /** * 取得数据库连接 *  * @return * @throws SQLException */ public synchronized static java.sql.Connection getConnection()  throws SQLException { Connection con = (Connection) connection.get(); if (con != null && !con.isClosed()) {  return con; } if ("pooled".equalsIgnoreCase(type)) {  // 从JNDI中取得数据源  try {  // 此处对于不同的应用服务器,对env传入不同  Hashtable env = new Hashtable();  // 此处对于不同的应用服务器,对env传入不同  Context ctx = new InitialContext(env); // 从命名系统中获取 DataSource  // 工厂对象  DataSource dataSource = (DataSource) ctx.lookup(datasource);  con = dataSource.getConnection();  connection.set(con);  return con;  } catch (NamingException e) {  e.printStackTrace();  } } else {  // 直接使用JDBC驱动连接  try {  Class providerClass = Class.forName(driver);  con = DriverManager.getConnection(url, username, password);  con.setAutoCommit(false);  connection.set(con);  return con;  } catch (ClassNotFoundException e) {  e.printStackTrace();  } } return null; } public static void commit() { Connection con = (Connection) connection.get(); try {  con.commit(); } catch (SQLException e) {  e.printStackTrace(); } } public static void rollback() { Connection con = (Connection) connection.get(); try {  con.rollback(); } catch (SQLException e) {  e.printStackTrace(); } } public synchronized static void releaseConnection(Connection connection) { try {  if (connection != null && !connection.isClosed())  connection.close(); } catch (SQLException e) {  // TODO Auto-generated catch block  e.printStackTrace(); } connection = null; } public static void main(String[] args) { try {  System.out.println("conn:" + Database.getConnection()); } catch (SQLException e) {  // TODO Auto-generated catch block  e.printStackTrace(); } }}

database.property文件

复制代码 代码如下:
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=gbk

希望本文所述对大家jsp程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表