我现有一个利用struts做的可以显示数据库表的程序 请高人帮我改为可以插入数据的
代码如下:
AActionForm.java
package com.sql.struts;
import org.apache.struts.action.ActionForm;
public class AActionForm extends ActionForm{
String id=null;
String name=null;
String password=null;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
DBConn.java
package com.sql.struts;
import java.sql.*;
public class DBConn{
String sDBDriver= "org.gjt.mm.mysql.Driver ";
String sConnStr= "jdbc:mysql://127.0.0.1:3306/strutsdatabase?user=root&password=123456&useUnicode=true&characterEncoding=ISO-8859-1 ";
Connection conn=null;
ResultSet rs=null;
public DBConn(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.out.println( "Jdbc_conn(): "+e.getMessage());
}
}
public void executeUpdate(String sql)throws Exception{
//sql=new String(sql.getBytes( "GBK "), "ISO8859_1 ");
try{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println( "sql.executeUpdate: "+ex.getMessage());
}
}
public ResultSet executeQuery(String sql)throws Exception{
rs=null;
try{
sql=new String(sql.getBytes( "ISO-8859-1 "));
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.out.println( "sql.executeQuery: "+ex.getMessage());
}
return rs;
}
public void CloseConn()
throws Exception {
try
{
if (rs!=null)
rs.close();
if (conn!=null)
conn.close();
}
catch(SQLException ex)
{
System.out.println ( "closeConn: " + ex);
}
}
}
DisplayAction.java
package com.sql.struts;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class DisplayAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DBConn db = new DBConn();
boolean okFlag = false;
try {
ResultSet rs = db.executeQuery( "select * from test ");
ArrayList array = new ArrayList();
while (rs.next()) {
AActionForm actionForm = new AActionForm();
actionForm.setId(rs.getString( "id "));
actionForm.setName(rs.getString( "name "));
actionForm.setPassword(rs.getString( "password "));
array.add(actionForm);
}
request.setAttribute( "array ", array);
// return (mapping.findForward( "success "));
} catch (SQLException ex) {
System.out.print( "Logon Error: " + ex.getMessage());
} finally {
db.CloseConn();
okFlag = true;
}
if(okFlag){
return (mapping.findForward( "success "));
}else{
return (mapping.findForward( "failure "));
}
}
}
display_all.jsp
<%@ page contentType= "text/html;charset=gb2312 " language= "java "%>
<%@ taglib uri= "/WEB-INF/struts-bean.tld " prefix= "bean "%>
<%@ taglib uri= "/WEB-INF/struts-html.tld " prefix= "html "%>
<%@ taglib uri= "/WEB-INF/struts-logic.tld " prefix= "logic "%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html:html locale= "true ">
<head>
<html:base />
<title>
display_all.jsp
</title>
<body>
<table>
<logic:present name= "array " scope= "request ">
<logic:iterate name= "array " id= "array " type= "com.sql.struts.AActionForm ">
<tr align= "center ">
<td class= "table2 ">
<bean:write name= "array " property= "id " />
</td>
<td class= "table2 ">
<bean:write name= "array " property= "name " />
</td>
<td class= "table2 ">
<bean:write name= "array " property= "password " />
</td>
</tr>
</logic:iterate>
</logic:present>
</table>
</body>
</html:html>
Index01.jsp
<%@ page contentType= "text/html;charset=gb2312 " language= "java " %>
<%@ taglib uri= "/WEB-INF/struts-bean.tld " prefix= "bean " %>
<%@ taglib uri= "/WEB-INF/struts-html.tld " prefix= "html " %>
<%@ taglib uri= "/WEB-INF/struts-logic.tld " prefix= "logic " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html:html>
<head>
<html:base />
<title> submit </title>
</head>
<body>
<html:form action= "/display.do " method= "post ">
<html:submit value= "显示全部数据 "/>
</html:form>
</body>
</html:html>
[解决办法]
只是满足你的要求,没有对代码进行优化之类的.其实你已经写了一个修改数据的方法,直接调用他就可以了.
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class UpdataAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionForm pForm = (ActionForm) form;
if (pForm == null)
pForm = new ActionForm();
DBConn db = new DBConn();
boolean okFlag = false;
try {
Sting SQLStr = "UPDATE your_table_name SET ID= ' "+pForm.getId()+ " ', STOCKCODE= ' "+pForm.getName()+ " ', REGCODE= ' "+pForm.getPassword()+ " ' WHERE ID= ' "+pForm.getId()+ " ' ";
db.executeUpdate(SQLStr);
} catch (SQLException ex) {
System.out.print( "Logon Error£º " + ex.getMessage());
} finally {
db.CloseConn();
okFlag = true;
}
if(okFlag){
return (mapping.findForward( "success "));
else
return (mapping.findForward( "failure "));
}
}
}