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

代码15.3  MySQL数据库连接组件

 

ContractedBlock.gif ExpandedBlockStart.gif Code
  1package bbs.db;
  2
  3import java.sql.Connection;
  4
  5import java.sql.DriverManager;
  6
  7import java.sql.ResultSet;
  8
  9import java.sql.SQLException;
 10
 11import java.sql.Statement;
 12
 13import javax.naming.*;
 14
 15import javax.sql.DataSource;
 16
 17ExpandedBlockStart.gifContractedBlock.gifpublic class DbConn {
 18
 19    private static DataSource ds = null;
 20
 21    private static Connection conn = null;
 22
 23    // 使用JDBC连接数据库
 24
 25ExpandedSubBlockStart.gifContractedSubBlock.gif    public static Connection getConn_jdbc() {
 26
 27ExpandedSubBlockStart.gifContractedSubBlock.gif        try {
 28
 29            //定义url,指定MySQL数据库端口和数据库名
 30
 31            String url = "jdbc:mysql://localhost:3306/bbsdb";
 32
 33            //定义用户名和密码
 34
 35            String username = "root";
 36
 37            String password = "pla";
 38
 39            Class.forName("com.mysql.jdbc.Driver").newInstance();
 40
 41            conn = DriverManager.getConnection(url, username, password);
 42
 43            return conn;
 44
 45ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 catch (Exception e) {
 46
 47            System.err.println("数据库连接异常: " + e.getMessage());
 48
 49            return null;
 50
 51        }

 52
 53    }

 54
 55    // 使用数据源连接
 56
 57ExpandedSubBlockStart.gifContractedSubBlock.gif    public static Connection getCon() {
 58
 59ExpandedSubBlockStart.gifContractedSubBlock.gif        try {
 60
 61            //使用数据源访问数据库
 62
 63            InitialContext ctx = new InitialContext();
 64
 65            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/bbsdb");
 66
 67            conn = ds.getConnection();
 68
 69            return conn;
 70
 71ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 catch (Exception e) {
 72
 73            System.err.println("数据库连接异常: " + e.getMessage());
 74
 75            return null;
 76
 77        }

 78
 79    }

 80
 81    // 关闭数据库连接
 82
 83ExpandedSubBlockStart.gifContractedSubBlock.gif    public void CloseConn() {
 84
 85ExpandedSubBlockStart.gifContractedSubBlock.gif        try {
 86
 87            conn.close();
 88
 89ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 catch (Exception e) {
 90
 91            System.err.println("数据库连接关闭异常: " + e.getMessage());
 92
 93        }

 94
 95    }

 96
 97    // 测试数据库连接
 98
 99ExpandedSubBlockStart.gifContractedSubBlock.gif    public static void main(String[] a) {
100
101        Connection conn;
102
103        DbConn dc = new DbConn();
104
105        conn = dc.getConn_jdbc();
106
107ExpandedSubBlockStart.gifContractedSubBlock.gif        try {
108
109            Statement stmt = conn.createStatement();
110
111            String strSql = "select * from  bbs";
112
113            //查询建立数据集
114
115            ResultSet rs = stmt.executeQuery(strSql);
116
117ExpandedSubBlockStart.gifContractedSubBlock.gif            while (rs.next()) {
118
119                System.out.println("标题:" + rs.getString("title"));
120
121            }

122
123ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 catch (SQLException e) {
124
125            e.printStackTrace();
126
127ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 finally {
128
129            // 注意,必须在最后关闭数据库连接,否则将严重影响系统性能
130
131            dc.CloseConn();
132
133        }

134
135    }

136
137}

138
139

 

 

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

 

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

 

转载于:https://www.cnblogs.com/cserft/archive/2008/11/30/1344400.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值