📄 1.txt
字号:
(mystruts应用)目录结构
mystruts
|-WEB-INF
| |- lib
| | |- struts.jar
| |- classes
| | |- ConnectionPool
| | | |- getDbConnection.class
| | |-mystruts
| | |- user1Action.class
| | |- userAction.class
| | |- userActionForm.class
| | |- userdao.class
| |-struts-bean.tld
| |-struts-config.xml
| |-struts-html.tld
| |-struts-logic.tld
| |-struts-template.tld
|-adduser.jsp
|-index.jsp
|-viewuser.jsp
第一步: 开发环境配置
(如果你还没有相关软件. 请到http://www.apache.org 下载)
tomcat5.0 配置 (建立一个 mystruts 应用, 并拷贝相关文件)
请在你的tomcat安装目录中找到\conf\Catalina\localhost 子目录. 新建 mystruts.xml 文件
文件内容如下. 在这个文件中. 我们将配置一个联接池.请把相关的驱动.数据库用户,密码改成你自己的本机配置.
并把JDBC驱动拷贝一份到 Tomcat 5.0\common\lib 目录下. 请把 struts.jar \mystruts\WEB-INF\lib 目录下.
<Context path="/mystruts" docBase="D:\www\mystruts\mystruts\mystruts" debug="0" privileged="true">
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>test</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://192.168.10.223:1433/mystruts</value>
</parameter>
</ResourceParams>
</Context>
WEB-INF/web.xml (加入struts标记库的支持)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
</web-app>
第二步: 配置数据库
1.首先创建数据联接bean, 并打包到 ConnectionPool, 它将从我们配置的联接池中取得可用联接.
// Java Document
package ConnectionPool;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
import java.io.*;
import java.util.*;
public class getDbConnection {
Connection conn;
Statement stmt;
ResultSet rs=null;
String foo = "Not Connected";
int bar = -1;
public getDbConnection() {
try{
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/TestDB");
if (ds != null) {
conn = ds.getConnection();
}
}
catch(Exception e) {
e.printStackTrace();
}
}
public Connection getCon()
{
return conn;
}
public void d_close() throws SQLException
{
if (rs != null) {
try { rs.close(); } catch (SQLException e) { ; }
rs = null;
}
if (stmt != null) {
try { stmt.close(); } catch (SQLException e) { ; }
stmt = null;
}
if (conn != null) {
try { conn.close(); } catch (SQLException e) { ; }
conn = null;
}
}
protected void finalize() throws Throwable
{
try { d_close(); } catch (SQLException e) { ; }
}
}
2.创建数据库.
数据库名: mystruts
部门表: mydep
_______________________________________
dep_id dep_name
_______________________________________
1 dep1
2 dep2
3 dep3
4 dep4
_______________________________________
用户表: myuser
______________________________________________
user_id user_name dep tel
______________________________________________
1 jack 1 0769-2454042
2 max 2 0769-2454043
______________________________________________
(注: 以上字段为了测试方便. 全部使用字符型)
第三步: 创建ActionForm (userActionForm.java)
package mystruts; //请打包到mystruts下.
import org.apache.struts.action.*;
import javax.servlet.http.*;
public class userActionForm extends ActionForm {
private String action="add";
private String dep;
private String tel;
private String user_id;
private String user_name;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getDep() {
return dep;
}
public void setDep(String dep) {
this.dep = dep;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getUser_id() {
return user_id;
}
public void setUser_id(String user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
return null;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
}
}
第四步:建立数据库操作对象 (完成对表的增删修改与查询)
package mystruts;
import java.sql.*;
import ConnectionPool.*;
import java.util.*;
public class userdao {
getDbConnection db=null;
Connection con=null;
public userdao() {
}
//-------------------------------------------------------------------
public void userInsert(userActionForm uaf1)
{
db=new getDbConnection();
con=db.getCon();
userActionForm uaf=uaf1;
PreparedStatement ps = null;
String sql="insert into myuser (user_id,user_name,dep,tel) values(?,?,?,?)";
try {
ps = con.prepareStatement(sql);
ps.setString(1,uaf.getUser_id());
ps.setString(2,uaf.getUser_name());
ps.setString(3,uaf.getDep());
ps.setString(4,uaf.getTel());
ps.executeUpdate();
}
catch (SQLException e)
{
System.out.println("sql error");
}
finally
{
try{
con.close();
db.d_close();
}
catch(Exception e) {}
}
}
//---------------------------------------------
public void userUpdate(userActionForm uaf1)
{
db=new getDbConnection();
con=db.getCon();
userActionForm uaf=uaf1;
PreparedStatement ps = null;
String sql="update myuser set user_name=?,dep=?,tel=? where user_id=?";
try {
ps = con.prepareStatement(sql);
ps.setString(1,uaf.getUser_name());
ps.setString(2,uaf.getDep());
ps.setString(3,uaf.getTel());
ps.setString(4,uaf.getUser_id());
ps.executeUpdate();
}
catch (SQLException e)
{
System.out.println("sql error");
}
finally
{
try{
con.close();
db.d_close();
}
catch(Exception e) {}
}
}
//---------------------------------------------
public userActionForm getUser(String key)
{
db=new getDbConnection();
con=db.getCon();
ResultSet rs=null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -