不用JAVABEAN就可以实现啊,为什么要JAVABEAN?
解决方案 »
- struts2 validate方法问题
- Hibernate 多表查询-自定义返回结果的操作
- hibernate的集合映射有什么区别?
- javax.servlet.ServletException
- tomcat服务器不能下载rar
- 请教JSP 程序 在后台发文章后生成静态html 源
- jfreechart的折线图,怎么对x,y轴设置值的范围?(比如:y轴是显示人数值,不可能会有0.5个吧.)
- 如何在JSP环境下实现类似于新闻小偷的功能,急,急!!!
- jdbc-odbc访问access的程序比较,为什么PreparedStatement 做不到,而Statement能做到,郁闷,谁能解就加分
- MSSQLServer中用什么命令怎样做文件的”归档“?即从一个表到另一个表或从一个数据库到别一个数据库,数据库可能在不同的机器上
- 急!急!jsp和servlet
- jrun初步
数据库连接的Bean:
/**
* Title: Mr.<p>
* Description: <p>
* Copyright: Copyright (c) Xu Zhengguo<p>
* Company: cvicse <p>
* @author Xu Zhengguo
* @version 1.0
*/
package data;
import java.sql.*;
import java.lang.*;
import java.text.*;
import java.io.*;
import java.util.*;
public class DBConn
{
private String DBDriver="COM.ibm.db2.jdbc.net.DB2Driver";//我是用DB2数据库
private String DBLocation="jdbc:odbc:localweb";
private String DBUser="aaa";// 用户名
private String DBPwd="aaa"; // 连接口令
private Connection conn=null;
public DBConn()
{
}
public DBConn(String DBDriver,String DBLocation){
this.DBDriver=DBDriver;
this.DBLocation=DBLocation;
}
public void setDBLocation(String DBLocation){
this.DBLocation = DBLocation;
}
public void setDBDriver(String DBDriver){
this.DBDriver = DBDriver;
}
public void setDBUser(String DBUser){
this.DBUser = DBUser;
}
public void setDBPwd(String DBPwd){
this.DBPwd = DBPwd;
}
//建立数据库连接
public void connect(){
try {
Class.forName(DBDriver);
conn = DriverManager.getConnection(DBLocation, DBUser, DBPwd);
}catch(SQLException e){
}
}
//得到数据库的连接
public Connection getConn() throws SQLException
{
if (conn==null){
connect();
}
return conn;
}
}//分页的Bean:
package data;
import java.io.*;
import java.sql.*;public class DbQuery
{
private ResultSet rs = null;
private Connection conn = null;
private DBConn dbConn= null;
private int concurType= ResultSet.CONCUR_READ_ONLY;
private int scrollType= ResultSet.TYPE_FORWARD_ONLY;
public DbQuery(){
}
//构造一个可用的数据库连接
public DbQuery(DBConn dbConn){
this.dbConn=dbConn;
}
//建立数据库连接
private void createConnection(){
if (conn==null){
if (dbConn==null){
dbConn=new DBConn();
dbConn.connect();
}
conn=dbConn.getConn();
}
} //执行查询
private ResultSet executeQuery(String strSql) throws SQLException{
if(strSql==null){
return null;
}
//如果没可用连接,试着建立缺省连接
if(conn==null){
createConnection();
}
//如果仍然没有可用连接,返回null值
if (conn==null){
rs=null;
}else{
Statement s = conn.createStatement(scrollType,concurType);
rs = s.executeQuery(strSql);
}
return(rs);
}
//分页,移动记录
public ResultSet getRecorderList(int pageSize,int currentPage){
if(currentPage<=1){
try{
return executeQuery("select * from nullid.bdsj order by date desc,time desc");
}catch(SQLException e){
return null;
}
}else{
scrollType=ResultSet.TYPE_SCROLL_INSENSITIVE;
try{
ResultSet rs = executeQuery("select * from nullid.bdsj order by date desc,time desc");
}catch(SQLException e){
return null;
}
//移动光标到所需页的第一条记录上
int absoluteLocation=pageSize*(currentPage-1);
try{
if (rs.absolute(absoluteLocation)==false){
return null;
}
}catch(SQLException e){
return null;
}
return rs;
}
}
}
import java.util.Vector;public class ShowBean { private int totalPage=0; //总共的页数
public void setTotalPage(int newTotalPage) {
totalPage = newTotalPage;
}
public int getTotalPage() {
return totalPage;
} public ShowBean() {
} /**
* @description 分页显示办公用品记录
* @para String pPage 第几页
* @para String pBranch 每页显示几条记录
* @para Vector pVe 要分页的对象
*/
public Vector showResult(int pPage,int pShowN,Vector pVe){
if( pVe==null|| pVe.size()<=0){
return null;
}
else{
int size=pVe.size();
totalPage=size/pShowN;
if(!(totalPage*pShowN==size))
totalPage=totalPage+1;
if(pPage>totalPage)
return null;
int start=0;
int end=0;
if(pPage==totalPage)
end=size-1;
else
end=pPage*pShowN-1;
if(pPage==1)
start=0;
else
start=(pPage-1)*pShowN;
Vector v=new Vector();
for(int i=start;i<=end;i++){
v.addElement(pVe.elementAt(i));
}
if(v.size()<=0)
v=null;
return v;
}
}
package pagination; import java.sql.*; public class Linkdb {
String strDriver="org.gjt.mm.mysql.Driver";
//使用时请具体修改数据库名称,用户名和密码。
String strConn="jdbc:mysql://localhost/forum?user=root&password=admin";
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null; public Linkdb()
{
//连接MySql_jdbc驱动程序
try {
Class.forName(strDriver).newInstance();
} catch (Exception E) {
System.err.println("不能连接MySql数据库!");
}
}
//执行Select语句
public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(strConn);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}catch(SQLException ex) {
System.err.println("执行SQL语句出错:" + ex.getMessage());
}
return rs;
} //执行Insert,Update语句
public void executeUpdate(String sql) {
stmt = null;
rs=null;
try {
conn = DriverManager.getConnection(strConn);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("执行SQL语句出错: " + ex.getMessage());
}
} public void closeStmt(){
try{
stmt.close();
}
catch(SQLException e){
e.printStackTrace();
}
} public void closeConn(){
try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
} 二、分页的JavaBean:Pagi.java
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Pagi.java%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
package pagination; import java.util.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class Pagi
{
ResultSet CountTopicrs=null; //初始化总记录数Rs变量
ResultSet Pagirs=null; //初始化分页时Rs变量 public int intCountTopic=0; //主题总数
public int intPageSize; //每页显示主题数
public int intPageCount; //总页数
public int intPage=1; //当前页数
// int i; public String nowPage; //初始化当前页intPage变量,以准确便获取当前页。
public String HttpFile; //当前的地址栏的文件。 Linkdb db; //定义Linkdb类的一个对象。
//定义构造器,初始化每页显示的主题数和数据库的连接。
public Pagi(){
intPageSize=2;
db = new Linkdb();
} //Countsql:总记录的Query字符串。[形式为select count(*) from tablename]
//Pagisql :要分页的Query字符串。[形式为select * from tablename where ...]
//request :参数传递过程中的变量。[用来控制翻页时的pages变量] public ResultSet querySql(String Countsql,String Pagisql,HttpServletRequest request)
throws SQLException{
//获取当前文件名。
HttpFile=request.getRequestURI(); //获取当前页,将数值赋予intPage变量。[分页栏中必须要有pages参数]
nowPage=request.getParameter("pages"); if (nowPage==null){ intPage=1; }
else{ intPage=Integer.parseInt(nowPage);
if (intPage<1) intPage=1; } //获取总记录数的结果集。
CountTopicrs=db.executeQuery(Countsql);
if (CountTopicrs.next())
{
intCountTopic=CountTopicrs.getInt(1);
}
//获取总页数。
intPageCount = (intCountTopic+intPageSize-1)/intPageSize;
//如果当前页大于总页数,则当前页等于总页数。
if (intPage>intPageCount)
{
intPage=intPageCount;
}
//关闭总主题数的数据集。
CountTopicrs.close(); //获取执行分页的结果集。
Pagirs=db.executeQuery(Pagisql);
return Pagirs;
}//end querySql function. //获取记录总数。
public int getCountTopic()
{
return intCountTopic;
} //获取总页数。
public int getPageCount()
{
return intPageCount;
} //获取当前页数。
public int getIntPage()
{
return intPage;
} //获取当前页的数据。boodata为True,表示要加入该数据到当前页。
//这里可能会在JSP调用时影响速度[因为调用时要多一层循环],因此放到JSP中嵌入,待改进。
//该代码暂时保留。
// public boolean getData(){
// boolean boodata=false;
// if (intPageCount>0)
// {
// try
// {
// while (Pagirs.next())
// {
// i++;
/// if (i>((intPage-1)*intPageSize) &&(i<=intPage*intPageSize))
// {
// boodata=true;
// }
// } //endwhile.
// }//end try.
// catch(Exception e){
// System.out.println(e.toString());
// }
// } //endif.
// return boodata;
// } //end getData(); //分页栏函数。
public String PageFooter() {
String str = "";
int next, prev;
prev=intPage-1;
next=intPage+1;
str +="共"+getCountTopic()+"篇"+" 分"+getPageCount()+"页显示";
str +=" 第"+getIntPage()+"页 ";
if(intPage>1)
str += " <A href=" + HttpFile + "?pages=1"+">第一页 ";
else str += " 第一页 "; if(intPage>1)
str += " <A href=" + HttpFile + "?pages=" + prev + ">上一页 ";
else str += " 上一页 "; if(intPage<intPageCount)
str += " <A href=" + HttpFile + "?pages=" + next + ">下一页 ";
else str += " 下一页 "; if(intPageCount>1&&intPage!=intPageCount)
str += " <A href=" + HttpFile + "?pages=" + intPageCount + ">最后页";
else str += " 最后页 "; return str;
} } //end. 三、调用实例:testpage.jsp
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%testpage.java%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<%@ page language="java" import="java.sql.*, pagination.*" %>
<%@ page contentType="text/html; charset=gb2312" %>
<jsp:useBean id="pagi" scope="page" class="pagination.Pagi" />
<html> <body>
<table border=1 align="center">
<%
String CountQuery="select count(*) from member";
String query = "select * from member";
//读queyrSql方法,返回结果集。
ResultSet rs = pagi.querySql(CountQuery,query, request);
String footer = pagi.PageFooter(); //读分页栏 out.println("<tr><td align='center'>姓名</td><td align='center'>来自</td></tr>");
if (pagi.intPageCount>0)
{
int i=0;
while (rs.next())
{
i++;
String aa="";
String bb="";
if (i>((pagi.intPage-1)*pagi.intPageSize) &&(i<=pagi.intPage*pagi.intPageSize))
{
aa=rs.getString(2);
bb=rs.getString(4);
%>
<tr><td><%=aa%></td><td><%=bb%></td></tr>
<%
}
} //endwhile.
} //endif.
out.println("<tr><td colspan=2>"+footer+"</td></tr>");
rs.close();
%>
</table>
</body>
</html>
如何在一个用户对application操作时防止别的用户对它操作?