JSP基于JDBC的数据库连接类实例
程序员文章站
2024-02-03 10:14:16
本文实例讲述了jsp基于jdbc的数据库连接类。分享给大家供大家参考,具体如下:
/*
*
* todo to change the template f...
本文实例讲述了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
database.url=jdbc:mysql://localhost/test?user=root&password=root&useunicode=true&characterencoding=gbk
希望本文所述对大家jsp程序设计有所帮助。