📄 sqlbean.java
字号:
package sei;
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
import java.sql.*;
//import javax.naming.*;
//import javax.sql.DataSource;
public class SqlBean {
public Connection con = null;
static String DatabaseDriver;
static String CnnStr;
static String username;
static String password;
private int curPage=1;//当前页
private int pageSize=25;//每页显示的记录数
private long rowsCount=0;//记录行数
private int pageCount=1;//页数
private String SQL="";//查询条件
public SqlBean() {/////构造函数
if ((username==null)|(password==null)){
String[] p=readLoginParam();
DatabaseDriver=p[0];
CnnStr=p[1];
username=p[2];
password=p[3];
p=null;
}
con=Connect(con);
}
public Connection Connect(Connection con)
{
try {
if (con==null)
{
Class.forName(DatabaseDriver);
con = DriverManager.getConnection(CnnStr,username,password);
}else if (con.isClosed()){
Class.forName(DatabaseDriver);
con = DriverManager.getConnection(CnnStr,username, password);
}
} catch (Exception e) {}
return con;
}
public String[] readLoginParam()// throws Exception
{
String Pa[]={"","","","",""};
try {
File f = new File(getClass().getResource("runConfig.xml").getFile());
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Pa[0]=root.elementText("DatabaseDriver");
Pa[1]=root.elementText("CnnStr");
Pa[2]=root.elementText("username");
Pa[3]=root.elementText("password");
} catch (Exception e) {}
return Pa;
}
//获取查询记录总数
public int executeCount(String sql) {
int num = -1;
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) num=rs.getInt(1);
rs.close();
stmt.close();
} catch (SQLException ex) {}
return num;
}
public ResultSet executeQuery(String sql) {
ResultSet rs = null;
try {
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {}
return rs;
}
//关闭数据库连接
public void CloseDataBase() {
try {
con.close();
} catch (Exception end) {}
}
public String getSQL(String SQL,String AndOr,String Pr)
{
if (SQL==null)SQL="";
if ((SQL.trim().equals(""))&(!Pr.trim().equals(""))) return SQL=Pr;
if ((!SQL.trim().equals(""))&(!Pr.trim().equals(""))) return SQL=SQL+" "+AndOr+" "+Pr;
//SQL=getSQLLike(SQL);
return SQL;
}
public String getAddSQL(String AndOr,String SQL)
{
if (!SQL.trim().equals("")){SQL=" "+AndOr+" "+SQL;}
return SQL;
}
//处理Like查询中的%号问题,说明:将Like中~!字符的还原未%
public String getSQLLike(String SQL)
{
if (!SQL.equals("")){SQL=SQL.replace("Like '~!","Like '%");SQL=SQL.replace("~!')","%')");}
return SQL;
}
public static String getLimitLenStr(String s,int LimitStrlen){
s=s.replace("'","");
char[] cc=s.toCharArray();
int intLen=0;
int i;
//if("中国".length()==4){return s.substring(Maxlen/2);}
for(i=0;i<cc.length;i++){
if((int)cc[i]>255){intLen=intLen+2;}else{intLen++;}
if (intLen>=LimitStrlen){break;}
}
if (intLen==LimitStrlen)i++;
return s.substring(0,i);
}
public static String getLimitChinese(String s,int MaxLen){
if(s == null)return "";
try{
// String convert = new String(s.getBytes("ISO8859_1"), "GB2312");
// convert=getLimitLenStr(convert,MaxLen);
String convert=getLimitLenStr(s,MaxLen);
return convert;
}catch(Exception e){}
return "";
}
/**
* 获取分页信息。
* SELECT * FROM T_BOOK,T_STOCK WHERE T_BOOK.BOOK_ID=STOCK.BOOK_ID ORDER BY T_BOOK.BOOK ASC
* @param SelectFileds 需要显示的字段 如:*
* @param IdFiled 关键字段,用于排序查找 可以不要
* @param Table 表名 如:T_BOOK,T_STOCK
* @param sql 条件语句 如:T_BOOK.BOOK_ID=STOCK.BOOK_ID
* @param OrderOrGroup 排序 如:ORDER BY T_BOOK.BOOK ASC
* @param CurPage 要显示第几页
* @return 分页结果
*/
public ResultSet getData(String SelectFileds,String IdFiled,String Table,String sql,String OrderOrGroup,String CurPage,String SQL_ALL) throws Exception
{
sql=sql.trim();
if (CurPage==null){
CurPage="1";
this.SQL=SelectFileds+" _!!_ "+IdFiled+" _!!_ "+Table+" _!!_ "+sql+" _!!_ "+OrderOrGroup;
}else{
String SS[]=SQL_ALL.split("_!!_");
SelectFileds=SS[0];
IdFiled=SS[1];
Table=SS[2];
sql=SS[3];
OrderOrGroup=SS[4];
this.SQL=SQL_ALL;
}
this.curPage=Integer.parseInt(CurPage);
if (SelectFileds.trim().equals(""))SelectFileds="*";
sql=getSQLLike(sql);
if(IdFiled.trim().equals(""))IdFiled=SelectFileds.replace(",","_--_") ;
String IsWhere="";
if(sql.trim().equals("")){IsWhere="Where";}else{sql="Where "+sql;IsWhere="And";}
ResultSet rs=null;
try {
rs = executeQuery("select count(*) as A FROM "+Table+" "+sql);
if (rs.next()) rowsCount=rs.getInt("A");
pageCount = (int)Math.ceil((rowsCount + pageSize-1) / pageSize);
rs=executeQuery("SELECT TOP "+pageSize+" "+SelectFileds+" FROM "+Table+" "+sql+" "+IsWhere+" "+IdFiled+" Not In (Select Top "+((curPage-1)*pageSize)+" "+IdFiled+" FROM "+Table+" "+sql+" "+OrderOrGroup+") "+OrderOrGroup);
} catch (Exception e){this.SQL="SELECT TOP "+pageSize+" "+SelectFileds+" FROM "+Table+" "+sql+" "+IsWhere+" "+IdFiled+" Not In (Select Top "+((curPage-1)*pageSize)+" "+IdFiled+" FROM "+Table+" "+sql+" "+OrderOrGroup+") "+OrderOrGroup;}
//this.SQL="SELECT TOP "+pageSize+" "+SelectFileds+" FROM "+Table+" "+sql+" "+IsWhere+" "+IdFiled+" Not In (Select Top "+((curPage-1)*pageSize)+" "+IdFiled+" FROM "+Table+" "+sql+" "+OrderOrGroup+") "+OrderOrGroup;
return rs;
}
/**
* 获取工具条
* @return String
*/
public String getToolBar(String fileName){
this.CloseDataBase();
String str="<table border=0 align=center id='TB_Buttom'><input type=hidden name=PAGE_SQL value =\""+this.SQL+"\"><input type=hidden name=cur_page value ="+curPage+">";
str=str+"<tr align=center valign=middle>";
str=str+"<td>【每页"+pageSize+"条记录】</td>";
str=str+"<td>【共"+pageCount+"页/"+rowsCount+"条记录】</td>";
if(curPage<=1)
{
str=str+"<td>【首页】</a></td>";
str=str+"<td>【上一页】</td>";
}else{
str=str+"<td><a href=javascript:document.frm.cur_page.value=1;document.frm.submit();>【首页】</a></td>";
str=str+"<td><a href=javascript:document.frm.cur_page.value="+(curPage-1)+";document.frm.submit();>【上一页】</a></td>";
}
if (curPage<pageCount)
{
str=str+"<td><a href=javascript:document.frm.cur_page.value="+(curPage+1)+";document.frm.submit();>【下一页】</a></td>";
str=str+"<td><a href=javascript:document.frm.cur_page.value="+pageCount+";document.frm.submit();>【尾页】</a></td>";
}else{
str=str+"<td>【下一页】</td>";
str=str+"<td>【尾页】</td>";
}
//str=str+"<td>每页<input type='text' name='pageSize' STYLE='{width:40}' value="+pageSize+"></td>";
str+="<td>转到<select name='page' onChange='javascript:document.frm.cur_page.value=document.all.page.value;document.frm.submit();'>";
for(int i=1;i<=pageCount;i++)
{
if(i==curPage)
str+="<option value='"+i+"' selected>第"+i+"页</option>";
else
str+="<option value='"+i+"'>第"+i+"页</option>";
}
str+="</select></td>";
str+="</tr></table>";
return str;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -