JSP Database Connection Class Instance Based on JDBC

  • 2021-08-21 21:07:00
  • OfStack

In this paper, an example is given to describe the database connection class of JSP based on JDBC. Share it for your reference, as follows:


/*
 *
 * 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 {
 /**
 *  Database access URL
 */
 private static String url;
 /**
 *  Database driven 
 */
 private static String driver;
 /**
 *  Database access user name 
 */
 private static String username;
 /**
 *  Database access password 
 */
 private static String password;
 /**
 *  Access type 
 */
 private static String type;
 /**
 *  Data source name 
 */
 private static String datasource;
 /**
 *  Configuration file name 
 */
 private final static String fileName = "database";
 private static ThreadLocal connection = new ThreadLocal();
 static {
 config();
 }
 private static void config() {
 //  Read system configuration 
 PropertyResourceBundle resourceBundle = (PropertyResourceBundle) PropertyResourceBundle
  .getBundle(fileName);
 //  Assign system settings to class variables 
 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");
 }
 }
 /**
 *  Get a database connection 
 * 
 * @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)) {
  //  From JNDI Get the data source from 
  try {
  //  Here, for different application servers, the env Afferent difference 
  Hashtable env = new Hashtable();
  //  Here, for different application servers, the env Afferent difference 
  Context ctx = new InitialContext(env); //  Get from the naming system  DataSource
  //  Factory object 
  DataSource dataSource = (DataSource) ctx.lookup(datasource);
  con = dataSource.getConnection();
  connection.set(con);
  return con;
  } catch (NamingException e) {
  e.printStackTrace();
  }
 } else {
  //  Direct use JDBC Drive connection 
  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 file

database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=gbk

I hope this article is helpful to everyone's jsp programming.


Related articles: