📄 subjectpersistentbase.java
字号:
/*
* SubjectPersistentBase.java
* Generated using xgen and texen from beanpersistentbase.vm
* Tue Jan 25 10:52:24 CST 2005
*/
package com.sure.oa.dict;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DatabaseMetaData;
import java.sql.BatchUpdateException;
import java.math.BigDecimal;
import com.sure.businessmodel.Page;
import java.io.*;
import java.util.*;
import com.sure.util.database.*;
/**
* 将公文主题信息持久化到数据库
* @author datonghuiren@sohu.com
*/
public abstract class SubjectPersistentBase {
/** class attributes */
transient protected boolean recordExists = false;
transient protected boolean handleConcurrency = false;
transient protected boolean handleAutoIncrement = true;
protected Subject bean;
public SubjectPersistentBase(Subject bean) { setBean(bean); }
public SubjectPersistentBase(Subject bean, boolean recordExists) { setBean(bean); setRecordExists(recordExists); }
public Subject getBean() { return bean; }
public void setBean(Subject bean) { this.bean = bean; }
public boolean getRecordExists() { return recordExists; }
public void setRecordExists(boolean recordExists) { this.recordExists = recordExists; }
/**
* Load this object from a result set
* If null fields are present in the table, catch the NullPointerException
*/
public static Subject load(ResultSet rs) throws SQLException {
Subject theBean = new Subject ();
try{ theBean.setSubId ( rs.getInt("subId") ); } catch(NullPointerException e){}
try{ theBean.setSubject ( rs.getString("Subject") ); } catch(NullPointerException e){}
try{ theBean.setUnitId ( rs.getInt("unitId") ); } catch(NullPointerException e){}
return theBean;
}
/**
* Load a range of records from a connection, according to the where clause.
* Returns a map of records accessible by a column value. (ie: foreign key)
*/
public static Map loadByKey(Connection conn, String where, String colname)
throws SQLException{
HashMap map = new HashMap();
Statement s = conn.createStatement();
String sql = "SELECT subId,Subject,unitId FROM Subject " + where;
ResultSet rs = s.executeQuery( sql );
while(rs.next()){
Subject theBean = new Subject ();
int col = rs.findColumn(colname);
String key = rs.getString(col);
theBean = load(rs);
map.put(key, theBean);
}
rs.close();
s.close();
return map;
}
/**
* Load a range of records from a connection, according to the where clause
*/
public static Vector load(Connection conn, String where) throws SQLException{
Vector beans = new Vector();
Statement s = conn.createStatement();
String sql = "SELECT subId,Subject,unitId FROM Subject " + where;
ResultSet rs = s.executeQuery( sql );
while(rs.next()){
Subject theBean = new Subject ();
theBean = load(rs);
beans.addElement(theBean);
}
rs.close();
s.close();
return beans;
}
/**
* Load a range of records using a scrollable resultset and absolute cursor
*/
public static Vector load(Connection conn, String where,
int startRow, int rowCount) throws SQLException {
Vector beans = new Vector();
String sql = "SELECT subId,Subject,unitId FROM Subject ";
if(where.length() > 0)
sql = sql + where;
Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
s.setMaxRows(startRow + rowCount - 1);
ResultSet rs = s.executeQuery( sql );
rs.absolute(startRow);
do {
Subject theBean = new Subject ();
theBean = load(rs);
beans.addElement(theBean);
} while(rs.next());
rs.close();
s.close();
return beans;
}
/**
* Load a Page of records using a scrollable resultset and absolute cursor
*/
public static Page load(Connection conn, int startRow, int pageSize,
String where) throws SQLException {
int count = getCount(conn, where);
if (count == 0) return new Page(pageSize);
startRow = Page.getValidStart(startRow, count, pageSize);
Vector beans = load(conn, where, startRow, pageSize);
return new Page(beans, startRow, count, pageSize);
}
/**
* Persist the record. Performs a sql update or insert.
* The primary key will be "set" upon insert.
* If autocommit is on, turn it off to make a transactional
* check of the tcn field.
*/
public void persist(Connection conn) throws SQLException{
if(recordExists){
if(handleConcurrency){
//regenerate source if you want the bean to handle concurrency
}else{
update(conn);
}
}else{
if(handleAutoIncrement){
setPrimaryKey(conn);
}
insert(conn);
}
}
/**
* Set the primary key field using the MAX value of the column
* If the primary key is a string, check for existence and return
* If the primary key is already set (in a new bean its 0) return
*/
public void setPrimaryKey(Connection conn) throws SQLException{
try{
IDGeneratorManager idGeneratorManager = new IDGeneratorManager();
bean.setSubId( idGeneratorManager.setNextValue("Subject"));
}
catch(SQLException se){
se.printStackTrace();
}
}
/**
* Insert a new record
*/
public void insert(Connection conn) throws SQLException {
PreparedStatement pstmt = null;
pstmt = conn.prepareStatement("INSERT INTO Subject ( subId,Subject,unitId ) VALUES ( ?,?,? )");
pstmt.setInt ( 1, bean.getSubId().intValue() );
pstmt.setString ( 2, bean.getSubject() );
pstmt.setInt ( 3, bean.getUnitId().intValue() );
pstmt.executeUpdate();
pstmt.close();
recordExists = true;
}
/**
* Update an existing record
* (including the primary key)
*/
public void update(Connection conn) throws SQLException{
PreparedStatement pstmt = null;
pstmt = conn.prepareStatement("UPDATE Subject SET " +
"subId = ?," +
"Subject = ?," +
"unitId = ? " +
"WHERE subId = ?" );
pstmt.setInt ( 1, bean.getSubId ().intValue() );
pstmt.setString ( 2, bean.getSubject () );
pstmt.setInt ( 3, bean.getUnitId ().intValue() );
pstmt.setInt ( 4, bean.getSubId ().intValue() );
pstmt.executeUpdate();
pstmt.close();
}
/**
* Delete an existing record
*/
public static void delete(Connection conn, String where) throws SQLException{
Statement stmt = conn.createStatement();
String sql = "DELETE FROM Subject " + where;
stmt.execute(sql);
stmt.close();
}
/**
* Delete an existing record using a prepared statement
*/
public void delete(Connection conn) throws SQLException{
PreparedStatement pstmt = null;
pstmt = conn.prepareStatement("DELETE FROM Subject WHERE subId = ?");
pstmt.setInt( 1, bean.getSubId ().intValue() );
pstmt.executeUpdate();
pstmt.close();
}
/**
* get total count of a range of records from a connection, according to the where clause
*/
protected static int getCount(Connection conn, String where) throws SQLException{
Statement s = conn.createStatement();
String sql = "SELECT count(subId) FROM Subject ";
if(where.length() > 0) {
where = where.toLowerCase();
if (where.indexOf("order") > 0) {
where = where.substring(0,where.lastIndexOf("order"));
}
sql = sql + where;
}
ResultSet rs = s.executeQuery( sql );
int count = 0;
if( rs.next()){
count = rs.getInt(1);
}
rs.close();
s.close();
return count;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -