JSP基於JDBC的資料庫連接類執行個體_JSP編程

來源:互聯網
上載者:User

本文執行個體講述了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程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.