?? db.java
字號:
/*
* Created on 2004-9-18
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package oa.sys;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
/**
****************************************************
*類名稱: Db<br>
*類功能: 數據庫操作 <br>
*創建: 白偉明 2004年9月23日<br>
****************************************************
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Db {
private Connection con;
private Statement stmt;
private ResultSet rs;
private PreparedStatement pstmt;
public static int error=0;
/***************************************************
*函數名稱: getCon()<br>
*函數功能: 獲取數據庫連接<br>
*返回值: 無<br>
*參數說明: 無<br>
*創建: 白偉明 2004年9月22日
****************************************************/
public static synchronized Connection getCon()throws Exception{
Context ctx;
DataSource ds;
try{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/OA");
System.err.println();
System.err.println("數據連接+"+(++error));
return ds.getConnection();
}catch(SQLException e){
System.out.print(e);
throw e;
}
catch(NamingException e){
System.out.print(e);
throw e;
}
}
/***************************************************
*函數名稱: getStmtread()<br>
*函數功能: 獲取數據庫集合<br>
*返回值: Statement
* stmt:返回數據庫集合只用于SELECT語句<br>
*參數說明: 無<br>
*創建: 白偉明 2004年9月22日
****************************************************/
public Statement getStmtread(){
try{
con=getCon();
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}catch(Exception e){
System.out.println("getStmtread");
System.out.println(e.getMessage());
}
return stmt;
}
/***************************************************
*函數名稱: getRowCount()<br>
*函數功能: 返回表的行數<br>
*返回值: int count<br>
* count>0返回的行數<br>
* count=-1表名不存在或沒有紀錄<br>
*參數說明: String sql<br>
* sql 數據庫中的表名
*創建: 白偉明 2004年10月9日
****************************************************/
public int getRowCount(String sql){
int count=0;;
try{
stmt=this.getStmtread();
rs=stmt.executeQuery("SELECT COUNT(*) FROM "+sql);
rs.getMetaData();
if(rs.next()){
count=rs.getInt(1);
}else{
count=-1;
}
}catch(Exception e){
System.out.println("getRowCount");
System.out.println(e.getMessage());
count=-2;
}finally{
this.close();
}
return count;
}
/***************************************************
*函數名稱: getStmt()<br>
*函數功能: 獲取數據庫集合<br>
*返回值: Statement
* stmt:返回數據庫集合不能用于SELECT語句<br>
*參數說明: 無<br>
*創建: 白偉明 2004年9月22日
****************************************************/
public Statement getStmt(){
try{
con=getCon();
stmt=con.createStatement();
}catch(Exception e){
System.out.println("getStmt");
System.out.println(e.getMessage());
}
return stmt;
}
/***************************************************
*函數名稱: IdtoName()<br>
*函數功能: 根據員工ID獲取員工姓名<br>
*返回值: String
* String:返回員工姓名<br>
*參數說明: 無<br>
*創建: 白偉明 2004年11月6日
****************************************************/
public String IdtoName(int id){
String name=null;
try{
stmt=this.getStmtread();
rs=stmt.executeQuery("SELECT name FROM eminfo WHERE employeeid="+id);
if(rs.next()){
name=rs.getString(1);
Str str=new Str();
name=str.outStr(name);
}else{
name="被刪除";
}
this.close();
}catch(Exception e){
System.out.println("IdtoName");
System.out.println(e.getMessage());
}
return name;
}
/***************************************************
*函數名稱: IdtoDeName()<br>
*函數功能: 根據員工ID獲取員工部門名稱<br>
*返回值: String
* String:返回員工部門名稱<br>
*參數說明: 無<br>
*創建: 白偉明 2004年11月6日
****************************************************/
public String IdtoDeName(int id){
String name=null;
try{
stmt=this.getStmtread();
rs=stmt.executeQuery("SELECT name FROM department WHERE departmentid="+id);
if(rs.next()){
name=rs.getString(1);
Str str=new Str();
name=str.outStr(name);
}else{
name="無此部門";
}
this.close();
}catch(Exception e){
System.out.println("IdtoName");
System.out.println(e.getMessage());
}
return name;
}
/***************************************************
*函數名稱: IdtoDo()<br>
*函數功能: 根據輸入條件獲取單字段一條數據<br>
*返回值: String
* String:返回員工部門名稱<br>
*參數說明: field 要查詢的單字段名稱<br>
* from 要查詢的表名稱<br>
*創建: 白偉明 2004年11月6日
****************************************************/
public String IdtoDo(String field,String from){
String name=null;
try{
stmt=this.getStmtread();
rs=stmt.executeQuery("SELECT "+field+" FROM "+from);
if(rs.next()){
name=rs.getString(1);
Str str=new Str();
name=str.outStr(name);
}
this.close();
}catch(Exception e){
System.out.println("IdtoDo");
System.out.println(e.getMessage());
}
return name;
} /***************************************************
*函數名稱: getPstmt()<br>
*函數功能: 獲取數據庫集合<br>
*返回值: PreparedStatement
* pstmt:返回數據庫預處理語句<br>
*參數說明: sql 類sql語句<br>
*創建: 白偉明 2004年9月22日
****************************************************/
public PreparedStatement getPstmt(String sql){
try{
con=getCon();
pstmt=con.prepareStatement(sql);
}catch(Exception e){
System.out.println("getPstmt");
System.out.println(e.getMessage());
}
return pstmt;
}
/***************************************************
*函數名稱:close()<br>
*函數功能:關閉數據庫連接<br>
*返回值: void<br>
*參數說明:無<br>
*最或修改:白偉明
* 2004年9月4日
****************************************************/
public void close(){
try{
if(rs!=null)rs.close();
}catch(Exception e){
}
try{
if(stmt!=null)stmt.close();
}catch(Exception e){
}
try{
if(con!=null){
con.close();
con=null;
System.err.println();
System.err.println("數據連接-"+(--error));
}
}catch(Exception e){
System.out.println("close");
System.out.println(e.getMessage());
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -