• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP基于JDBC的数据库连接类实例

    本文实例讲述了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=rootpassword=rootuseUnicode=truecharacterEncoding=gbk

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

    您可能感兴趣的文章:
    • jsp+jdbc实现连接数据库的方法
    • JSP中使用JDBC访问SQL Server 2008数据库示例
    • 加快JDBC设计中JSP访问数据库
    • JDBC操作数据库的增加、删除、更新、查找实例分析
    • jdbc操作mysql数据库实例
    • JDBC链接数据库的几个步骤
    • JDBC对MySQL数据库布尔字段的操作方法
    • Java使用JDBC连接数据库的实现方法
    上一篇:jsp编程中session的用法实例分析
    下一篇:jsp编程去除空白行的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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