数据信息的交换地-建立一个数据库连接组件(17)

15.2.4   建立一个数据库连接组件

在一般的大型项目开发中,都需要建立一个数据库连接组件,其他的业务逻辑或者是DAO,如果需要访问数据库,只需要调用该组件即可,如代码15.3所示,为一个标准的MySQL数据库连接组件。

代码15.3  MySQL数据库连接组件

package bbs.db;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.naming.*;

import javax.sql.DataSource;

public class DbConn {

    private static DataSource ds = null;

    private static Connection conn = null;

    // 使用JDBC连接数据库

    public static Connection getConn_jdbc() {

        try {

            //定义url,指定MySQL数据库端口和数据库名

            String url = "jdbc:mysql://localhost:3306/bbsdb";

            //定义用户名和密码

            String username = "root";

            String password = "pla";

            Class.forName("com.mysql.jdbc.Driver").newInstance();

            conn = DriverManager.getConnection(url, username, password);

            return conn;

        } catch (Exception e) {

            System.err.println("数据库连接异常: " + e.getMessage());

            return null;

        }

    }

    // 使用数据源连接

    public static Connection getCon() {

        try {

            //使用数据源访问数据库

            InitialContext ctx = new InitialContext();

            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/bbsdb");

            conn = ds.getConnection();

            return conn;

        } catch (Exception e) {

            System.err.println("数据库连接异常: " + e.getMessage());

            return null;

        }

    }

    // 关闭数据库连接

    public void CloseConn() {

        try {

            conn.close();

        } catch (Exception e) {

            System.err.println("数据库连接关闭异常: " + e.getMessage());

        }

    }

    // 测试数据库连接

    public static void main(String[] a) {

        Connection conn;

        DbConn dc = new DbConn();

        conn = dc.getConn_jdbc();

        try {

            Statement stmt = conn.createStatement();

            String strSql = "select * from  bbs";

            //查询建立数据集

            ResultSet rs = stmt.executeQuery(strSql);

            while (rs.next()) {

                System.out.println("标题:" + rs.getString("title"));

            }

        } catch (SQLException e) {

            e.printStackTrace();

        } finally {

            // 注意,必须在最后关闭数据库连接,否则将严重影响系统性能

            dc.CloseConn();

        }

    }

}

该连接组件提供了两种访问数据库的方式:使用基本的JDBC和数据源。一般的应用都建议使用数据源的方式来访问数据库,该组件中,使用main函数对JDBC连接方式进行了测试,在后面的论坛示例中,就是使用了本数据库连接组件。

注意

main测试函数中,不能采用数据源的方式来访问数据库,否则会出现异常,因main函数是采用一个Java Apllication方式执行的,不能访问Tomcat的上下文内容;但是可以在Action或者是Action所调用的业务逻辑组件中使用数据源的方式来访问数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值