Mysql類JDBC

 

 

數據庫操作可以中WEB開發中最常用到的,很多Java開發工具都提供了自動的Data bean WinZard.只要數據庫建立好,相應的操作數據庫的Bean就基本可以自動完成,本人使用Jcreator開發bean,手工錄入覺得也不是很麻煩的事情,下面我常用的數據庫操作bean,完全可以對付訪問量不是很大的系統 :

Mysql類:

import java.sql.*;
import java.io.*;
/**
* 處理數據庫的連接和訪問
* @author sanware bqlr
* @version 1.01
*/
public class Mysql {

private Connection conn = null;
private Statement stmt = null;
private PreparedStatement prepstmt = null;

//這是一個全局類,裏面放置數據庫的參數,如數據庫主機 訪問用戶名 密碼等
private static BeansConstants CONST = BeansConstants.getInstance();

/**
* 構造數據庫的連接和訪問類
*/
public Mysql() throws Exception {
Class.forName(CONST.dbdriver);
conn = DriverManager.getConnection(CONST.dburl);
stmt = conn.createStatement();
}
public Mysql(String sql) throws Exception {
Class.forName(CONST.dbdriver);
conn = DriverManager.getConnection(CONST.dburl);
this.prepareStatement(sql);
}

/**
* 返回連接
* @return Connection 連接
*/
public Connection getConnection() {
return conn;
}
/**
* PreparedStatement
* @return sql 預設SQL語句
*/
public void prepareStatement(String sql) throws SQLException {
prepstmt = conn.prepareStatement(sql);
}
/**
* 設置對應值
* @param index 參數索引
* @param value 對應值
*/
public void setString(int index,String value) throws SQLException {
prepstmt.setString(index,value);
}
public void setInt(int index,int value) throws SQLException {
prepstmt.setInt(index,value);
}
public void setBoolean(int index,boolean value) throws SQLException {
prepstmt.setBoolean(index,value);
}
public void setDate(int index,Date value) throws SQLException {
prepstmt.setDate(index,value);
}
public void setLong(int index,long value) throws SQLException {
prepstmt.setLong(index,value);
}
public void setFloat(int index,float value) throws SQLException {
prepstmt.setFloat(index,value);
}
//File file = new File("test/data.txt");
//int fileLength = file.length();
//InputStream fin = new java.io.FileInputStream(file);
//mysql.setBinaryStream(5,fin,fileLength);
public void setBinaryStream(int index,InputStream in,int length) throws SQLException {
prepstmt.setBinaryStream(index,in,length);
}

public void clearParameters()
throws SQLException
{
prepstmt.clearParameters();
}
/**
* 返回預設狀態
*/
public PreparedStatement getPreparedStatement() {
return prepstmt;
}
/**
* 返回狀態
* @return Statement 狀態
*/
public Statement getStatement() {
return stmt;
}
/**
* 執行SQL語句返回字段集
* @param sql SQL語句
* @return ResultSet 字段集
*/
public ResultSet executeQuery(String sql) throws SQLException {
if (stmt != null) {
return stmt.executeQuery(sql);
}
else return null;
}
public ResultSet executeQuery() throws SQLException {
if (prepstmt != null) {
return prepstmt.executeQuery();
}
else return null;
}
/**
* 執行SQL語句
* @param sql SQL語句
*/
public void executeUpdate(String sql) throws SQLException {
if (stmt != null)
stmt.executeUpdate(sql);
}
public void executeUpdate() throws SQLException {
if (prepstmt != null)
prepstmt.executeUpdate();
}
/**
* 關閉連接
*/
public void close() throws Exception {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (prepstmt != null) {
prepstmt.close();
prepstmt = null;
}
conn.close();
conn = null;
}
}

Mysql建立好後,以後涉及數據庫的操作,只要對象化Mysql就可以:

private String page_navlink_insert="insert into page_navlink values (?,?,?,?)";


public void insertnavlink() throws Exception
{
  ResultSet rs=null;
  try {
    Mysql mysql = new Mysql(page_navlink_insert);
    mysql.setInt(1,this.siteid);
    mysql.setInt(2,this.pageid);
    mysql.setString(3,this.navlinkname);
    mysql.setString(4,this.pagefile);
    mysql.executeUpdate();

    mysql.close();
    mysql = null;

  } catch (Exception ex) {
    throw new Exception("insertnavlink()"+ex.getMessage());
  }

}

在Jsp中,就可以直接使用一句語句使用insertnavlink()了:

<jsp:useBean id="NAV" scope="session" class="mysite.Navlink" />
<jsp:setProperty name="NAV" property="*" />
........
NAV.insertnavlink();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章