JavaBean组件-数据库+JavaBean(四)
封装了一个数据库的类DBAccess.java
package mb.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBAccess {
// 数据库连接
private Connection conn = null;
// sql语句执行容器
private Statement stmt = null;
// 查询结果集
private ResultSet rs = null;
// 预定义sql语句执行容器
private PreparedStatement pstmt = null;
public DBAccess() {
}
/** 数据库连接方法,获得Connection对象 **/
public Connection getConn() {
if (conn == null) {
getConnection();
}
return conn;
}
/** 数据库连接方法,获得Statement对象 **/
public void getConnection() {
try {
// 显式地加载JDBC本地API驱动程序
Class.forName("com.mysql.jdbc.Driver")
.newInstance();
// olLearn为数据库名称
String url = "jdbc:mysql://localhost:3306/ollearn?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String pwd = "123";
// 创建Connection对象con
this.conn = DriverManager.getConnection(url, user, pwd);
// 根据conn对象创建sql语句执行容器对象stmt
this.stmt = this.conn.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
/** 数据库查询方法,获得ResultSet对象 **/
public ResultSet query(String strSql) {
ResultSet rs = null;
try {
// 这个是没预编译sql语句的查询
rs = stmt.executeQuery(strSql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/** 数据库查询方法,利用查询预处理对象,获得ResultSet对象 **/
public ResultSet query(PreparedStatement pstmt) {
this.pstmt = pstmt;
ResultSet rs = null;
try {
rs = this.pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/** 关闭连接 **/
public void closeConnection() {
try {
if (rs != null) {
rs.close();
rs = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (conn != null) {
conn.close();
conn = null;
}
if (pstmt != null) {
pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
jsp中:
<jsp:useBean id="term" class="mb.service.termService" scope="page" />
<jsp:getProperty name="term" property="currTerm"/>
业务处理类termService.java
package mb.service;
import java.sql.ResultSet;
import mb.dao.DBAccess;
public class termService {
public termService() {
}
public String getCurrTerm()
{
String sCurrTerm = "";
DBAccess dba=new DBAccess();
try{
if(dba.getConn()!=null){
String sSql="select * from term where iFlag=1";
ResultSet rs=dba.query(sSql);
while(rs!=null&&rs.next()){
if(rs.getString("sTname")!=null){
sCurrTerm = rs.getString("sTname");
}
}
}
}catch (Exception e){
e.printStackTrace();
}finally{
dba.closeConnection();
}
return sCurrTerm;
}
}
在这里:jsp中的currTerm在bean中是没有这个属性的,但是有这个方法,所以可以得到结果
还没有评论,来说两句吧...