站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题javabean 写成这样的,在jsp 里怎么样调用 增加 删除和修改呢

javabean 写成这样的,在jsp 里怎么样调用 增加 删除和修改呢

摘要: javabean 写成这样的,在jsp 里怎么样调用 增加 删除和修改呢


package test;
import java.sql.*;
public class QueryBean
{
public String query_statement; /*定义sql语句*/
public String param[]; /*查询条件*/
public ResultSet result=null; /*查询结果*/
public Connection conn;
//设置查询参数
public void setParam(String[] param)
{
this.param=param;
}
//设置SQL查询语句
public void setQuerystatement(String query_statement)
{
this.query_statement=query_statement;
}
//设置连接参数
public void setConnection(String driverName,String jdbcURL,String username,String passwd) throws Exception
{
Connection conn1;
Class.forName(driverName);
conn1=DriverManager.getConnection(jdbcURL,username,passwd);
conn1.setAutoCommit(false);
this.conn = conn1;
}
/*获取查询结果*/
public ResultSet getResult()
{
try
{
PreparedStatement select_stm=conn.prepareStatement(query_statement,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
if (param!=null)
for(int i=0;i select_stm.setString(i+1,param[i]);
result=select_stm.executeQuery();
}catch(Exception e){System.out.println(e);}
return result;
}
/*对数据库进行增加记录操作*/
public void insertRecord() throws SQLException,java.io.UnsupportedEncodingException
{
try
{
PreparedStatement insert_stm=conn.prepareStatement(query_statement);
if (param!=null)
for(int i=0;i insert_stm.setString(i+1,param[i]);
insert_stm.executeUpdate();
insert_stm.close();
conn.commit();
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
/*对数据记录进行更新操作*/
public void updateRecord() throws SQLException,java.io.UnsupportedEncodingException
{
try
{
PreparedStatement update_stm=conn.prepareStatement(query_statement);
if (param!=null)
for (int i=0;i update_stm.setString(i+1,param[i]);
update_stm.executeUpdate();
update_stm.close();
conn.commit();
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
/*删除数据记录*/
public void deleteRecord() throws SQLException,java.io.UnsupportedEncodingException
{
try
{
PreparedStatement delete_stm=conn.prepareStatement(query_statement);
if (param!=null)
for (int i=0;i delete_stm.setString(i+1,param[i]);
delete_stm.executeUpdate();
delete_stm.close();
conn.commit();
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
}


这个是别人写的javabean 我能调用连接和查询 ,但是 增加 删除和修改呢 不知道 该怎么使用


不知道为什么 回答问题的人很少。不知道我的问题是简单的原因啊,还是 。。。。。。。。。。。



我遇到过类似的问题,你试试看当新增一条记录后把你的和数据库的联接关掉试试看.也就是说把conn对象close掉.这样可能就可以新增记录了.


lz好好看看程序,不难!


<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>




<head>
用JavaBean查询数据库
</head>
<body>
<%//增加数据

String course="dfg";
String school="dddddd";
String studydate="sssssssss";
String rule="gggggggggg";
//String insertstringSqlString="insert into FIXDATA(SITE_ID,SAMPLING_DATETIME,ACTUAL_VALUE,ALTERANT_VALUE)values("+course+","+school+","+studydate+","+rule+")";
String insertstringSqlString="insert into FIXDATA(SITE_ID,SAMPLING_DATETIME,ACTUAL_VALUE,ALTERANT_VALUE)values('course','school','studydate','rule')";
out.print("----------fghfghfghfghfgh-------------");
try
{
//设置连接
//query.QueryBean();
query.setConnection("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://10.0.0.31:1433;DatabaseName=testDB","sa","sa");
//设置SQL语句
out.print("----------fghfghfg 数据库连接成功 hfghfgh-------------");
query.setQuerystatement(insertstringSqlString);
//得到查询结果
query.insertRecord() ;
}
catch(SQLException e1)
{
out.print("SQL异常!");
}

//增加数据
%>
<%//查询数据库
ResultSet rs=null;
String stringSqlString="SELECT * FROM FIXDATA";
try
{
//设置连接
query.setConnection("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://10.0.0.31:1433;DatabaseName=testDB","sa","sa");
//设置SQL语句
query.setQuerystatement(stringSqlString);
//得到查询结果
rs=query.getResult();
}
catch(SQLException e1)
{
out.print("SQL异常!");
}
%>
<%//显示查询结果
out.print("<table Border>");
out.print("<tr><td colspan=8 align=center>用QueryBean查询得到的用户数据</td></tr>");
out.print("<tr>");
out.print("<td width=100 >"+"用户ID号");
out.print("<td width=50 >"+"用户名");
out.print("<td width=100>"+"用户真实姓名");
out.print("<td width=50>"+"年龄");
out.print("<td width=50>"+"性别");
out.print("<td width=100>"+"联系地址");
out.print("<td width=100>"+"联系电话");

out.print("</tr>");
while(rs.next())
{ out.print("<tr>");
out.print("<td >"+rs.getString(1)+"</td>");
out.print("<td >"+rs.getString(2)+"</td>");
out.print("<td >"+rs.getString(3)+"</td>");
out.print("<td >"+rs.getString(4)+"</td>");
out.print("<td >"+rs.getString(5)+"</td>");
out.print("<td >"+rs.getString(6)+"</td>");
out.print("<td >"+rs.getString(7)+"</td>");

out.print("</tr>") ;
}
out.print("</table>");
%>
</body>


写成这样的jsp 就 ok了
但是还有个问题 就是 ,怎样把数据库连接 只使用"一次" 不想没次都去连接
这样的javabean 的该怎样改动好呢???
谢谢高人指点了


查询数据库那里你没有必要在去连接数据库了,因为你在增加数据的时候已经连接上了数据库!
对了,对数据库的操作完了,记住关闭数据库连接


to JIEK_ONE(adeuxLuow想她了)

增加的时候 连接数据库.查询的时候不连接数据库,提示错误, 应该更改hjavabean 怎样更改才是最好的办法,哥们能指教下不


to JIEK_ONE(adeuxLuow想她了)

谢谢你的回答

增加的时候 连接数据库.查询的时候不连接数据库,提示错误, 应该更改hjavabean 怎样更改才是最好的办法,哥们能指教下不




看下你的错误提示下


最终完整的代码 好用的


第一建表//
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FIXDATA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[FIXDATA]
GO

CREATE TABLE [dbo].[FIXDATA] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[SITE_ID] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[SAMPLING_DATETIME] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[ACTUAL_VALUE] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[ALTERANT_VALUE] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[FLAG] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[AREA_ID] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[ATTACH_ID] [char] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
QueryBean.java的代码::::
package test;
import java.sql.*;
import java.io.*;
public class QueryBean
{
//public String query_statement; /*定义sql语句*/
public String param[]; /*查询条件*/
public ResultSet result=null; /*查询结果*/
public Connection conn;
//设置构造函数

///数据库连接
public QueryBean() throws Exception{

this.setConnection("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://10.0.0.31:1433;DatabaseName=testDB;SelectMethod=Cursor","sa","sa");
System.out.println("---------设置构造函数--------------");
}
//设置查询参数
public void setParam(String[] param)
{
this.param=param;
}
//设置SQL查询语句
//public void setQuerystatement(String query_statement)
//{
//System.out.println(query_statement);
// this.query_statement=query_statement;
// System.out.println("---------传入sql语句--------------");
//}
//设置连接参数
public void setConnection(String driverName,String jdbcURL,String username,String passwd) throws Exception
{
Connection conn1;
Class.forName(driverName);
conn1=DriverManager.getConnection(jdbcURL,username,passwd);
conn1.setAutoCommit(false);
this.conn = conn1;
System.out.println("---------数据连接成功--------------");
}
/*获取查询结果*/
public ResultSet getResult(String query_statement)
{
try
{
PreparedStatement select_stm=conn.prepareStatement(query_statement,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
if (param!=null)
for(int i=0;i select_stm.setString(i+1,param[i]);
result=select_stm.executeQuery();
}catch(Exception e){System.out.println(e);}
return result;
}
/*对数据库进行增加记录操作*/
public void insertRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
{
try
{

PreparedStatement insert_stm=conn.prepareStatement(query_statement);
if (param!=null)
for(int i=0;i insert_stm.setString(i+1,param[i]);
insert_stm.executeUpdate();
insert_stm.close();
conn.commit();
System.out.println("数据插入成功");
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
/*对数据记录进行更新操作*/
public void updateRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
{
try
{
//System.out.println(query_statement);
PreparedStatement update_stm=conn.prepareStatement(query_statement);
if (param!=null)
for (int i=0;i update_stm.setString(i+1,param[i]);
update_stm.executeUpdate();
update_stm.close();
conn.commit();
System.out.println("数据修改成功");
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
/*删除数据记录*/
public void deleteRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
{
try
{
//System.out.println(query_statement);
PreparedStatement delete_stm=conn.prepareStatement(query_statement);
if (param!=null)
for (int i=0;i delete_stm.setString(i+1,param[i]);
delete_stm.executeUpdate();
delete_stm.close();
conn.commit();
System.out.println("数据删除成功");
}
catch(Exception e)
{
System.out.println(e);
conn.rollback();
}
}
}
list.jsp的代码

<%@ page language="java" contentType="text/html;charset=gb2312"
import="java.sql.*"
import="java.io.*"
import="java.util.*"
import="javax.sql.*"
import="javax.naming.*"
import="java.text.*"
import="java.lang.*"
%>
<%
String course="rtyrty2222rty";
String school="4444";
String studydate="sssssssss";
String rule="gggggggggg";
int strNo=2;
//String insertstringSqlString="insert into FIXDATA(SITE_ID,SAMPLING_DATETIME,ACTUAL_VALUE,ALTERANT_VALUE)values("+course+","+school+","+studydate+","+rule+")";
String updatestringSqlString="update FIXDATA set SITE_ID = '"+course+"',SAMPLING_DATETIME = '"+school+"' where id = "+strNo+" ";
String insertstringSqlString="insert into FIXDATA(SITE_ID,SAMPLING_DATETIME,ACTUAL_VALUE,ALTERANT_VALUE)values('"+course+"','"+school+"','"+studydate+"','"+rule+"')";
String stringSqlString="SELECT * FROM FIXDATA";
//
query.insertRecord(insertstringSqlString) ;
// query.setQuerystatement(insertstringSqlString);
query.updateRecord(updatestringSqlString) ;


//query.setQuerystatement("SELECT * FROM FIXDATA");
ResultSet rs=query.getResult(stringSqlString);
%>

<head>

无标题文档
</head>

<body>
<%//显示查询结果
out.print("<table Border>");
out.print("<tr><td colspan=8 align=center>用QueryBean查询得到的用户数据</td></tr>");
out.print("<tr>");
out.print("<td width=100 >"+"用户ID号");
out.print("<td width=50 >"+"用户名");
out.print("<td width=100>"+"用户真实姓名");
out.print("<td width=50>"+"年龄");
out.print("<td width=50>"+"性别");
out.print("<td width=100>"+"联系地址");
out.print("<td width=100>"+"联系电话");
out.print("</tr>");
while(rs.next())
{ out.print("<tr>");
out.print("<td >"+rs.getString(1)+"</td>");
out.print("<td >"+rs.getString(2)+"</td>");
out.print("<td >"+rs.getString(3)+"</td>");
out.print("<td >"+rs.getString(4)+"</td>");
out.print("<td >"+rs.getString(5)+"</td>");
out.print("<td >"+rs.getString(6)+"</td>");
out.print("<td >"+rs.getString(7)+"</td>");

out.print("</tr>") ;
}
out.print("</table>");
%>

</body>




建议你新建一个页面比如save.jsp的空白页来处理表单里面的数据
保存和修改是需要提交你的表单到save.jsp来进行的,
所以在save.jsp中可以写类似这样的代码:

<%@ page language="java" contentType="text/html;charset=gb2312"
import="java.sql.*"
import="java.io.*"
%>
<%
String flag =request.getParameter("flag");//flag是你之前页面list.jsp的某对象的值,比如某个文本框的值
String sql = "insert into tab set flag='"+flag+"'";//生成update语句
//然后再次调用bean,执行修改操作
query.updateRecord(sql);
//这样你就执行了修改操作,最后再跳回你的首页也就是list.jsp
response.sendRedirect("list.jsp");
%>


<head>

用户登录
</head>
<body>
<form name="FORM" id="FORM" method="post" target="_self" action="">
</form>
保存成功!
</body>



这只是一个想法,可以帮助你完成保存的操作,重点在于如何将表单数据传入java程序中,
所以需要将页面提交用
request对象来获得这些你修改好的参数。
在调用bean中的修改、保存等方法。


不好意思sql语句写错了应该是
String sql = "update tab set flag='"+flag+"'";//生成update语句



↑返回目录
前一篇: java中有没有提供搜索路径的对话框
后一篇: Date与String之前的转化问题