读书人

小弟我现有一个利用struts做的可以显示

发布时间: 2011-12-02 23:47:57 作者: rapoo

我现有一个利用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 "));
}
}
}

读书人网 >Java Web开发

热点推荐