非常有用的jdbc的運算元據庫

linweihan1984發表於2007-10-03
[code]package cn.mldn.lxh.dao.impl ;
import java.sql.* ;
import java.util.* ;
import cn.mldn.lxh.vo.* ;
import cn.mldn.lxh.dbc.* ;
import cn.mldn.lxh.dao.* ;

// 此類需要完成具體的資料庫操作,需要JDB程式碼
public class PersonDAOImpl implements PersonDAO
{
// 增加操作
public void insert(Person person) throws Exception
{
String sql = "INSERT INTO person (id,name,password,age,email) VALUES (?,?,?,?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,person.getId()) ;
pstmt.setString(2,person.getName()) ;
pstmt.setString(3,person.getPassword()) ;
pstmt.setInt(4,person.getAge()) ;
pstmt.setString(5,person.getEmail()) ;
// 進行資料庫更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
}
// 修改操作
public void update(Person person) throws Exception
{
String sql = "UPDATE person SET name=?,password=?,age=?,email=? WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,person.getName()) ;
pstmt.setString(2,person.getPassword()) ;
pstmt.setInt(3,person.getAge()) ;
pstmt.setString(4,person.getEmail()) ;
pstmt.setString(5,person.getId()) ;
// 進行資料庫更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
}
// 刪除操作
public void delete(String id) throws Exception
{
String sql = "DELETE FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,id) ;
// 進行資料庫更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
}
// 按ID查詢操作
public Person queryById(String id) throws Exception
{
Person person = null ;
String sql = "SELECT id,name,password,age,email FROM person WHERE id=?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,id) ;
// 進行資料庫查詢操作
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
// 查詢出內容,之後將查詢出的內容賦值給person物件
person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
return person ;
}
// 查詢全部
public List queryAll() throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
// 進行資料庫查詢操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查詢出內容,之後將查詢出的內容賦值給person物件
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;

// 將查詢出來的資料加入到List物件之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
return all ;
}
// 模糊查詢
public List queryByLike(String cond) throws Exception
{
List all = new ArrayList() ;
String sql = "SELECT id,name,password,age,email FROM person WHERE name LIKE ? or email LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;

// 下面是針對資料庫的具體操作
try
{
// 連線資料庫
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
// 設定模糊查詢條件
pstmt.setString(1,"%"+cond+"%") ;
pstmt.setString(2,"%"+cond+"%") ;
// 進行資料庫查詢操作
ResultSet rs = pstmt.executeQuery() ;
while(rs.next())
{
// 查詢出內容,之後將查詢出的內容賦值給person物件
Person person = new Person() ;
person.setId(rs.getString(1)) ;
person.setName(rs.getString(2)) ;
person.setPassword(rs.getString(3)) ;
person.setAge(rs.getInt(4)) ;
person.setEmail(rs.getString(5)) ;

// 將查詢出來的資料加入到List物件之中
all.add(person) ;
}
rs.close() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出現異常") ;
}
finally
{
// 關閉資料庫連線
dbc.close() ;
}
return all ;
}
};[/code]

-------------------
下面是具體下載
查詢單條記錄的時候,結果集用if
查詢多條記錄的時候,結果集while

相關文章