struts2 的mvc模式配置和JDBC连接oracle数据库开发


web工程配置struts2只要3步

1、添加架包

struts2-core-2.0.6.jar、xwork-2.0.1.jar、commons-logging-1.1.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、(ojdbc-1.4.jar)oracle驱动包

 

2、在src目录下新建struts2配置文件struts.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
xml  version = "1.0"  encoding = "GBK" ?> 
         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
         "http://struts.apache.org/dtds/struts-2.0.dtd"> 
   
< struts
  < package  name = "user"  extends = "struts-default"
   < action  name = "user_*"  class = "com.hyw.action.UserAction"  method = "{1}"
    < result  name = "list"  >/user_list.jsp result
    < result  name = "edit"  >/user_edit.jsp result
    < result  name = "show"  >/user_show.jsp result
   action
  package
struts >

 

3、配置web.xml文件

1
2
3
4
5
6
7
< filter
< filter-name >struts2 filter-name > < filter-class >org.apache.struts2.dispatcher.FilterDispatcher filter-class
filter
< filter-mapping
< filter-name >struts2 filter-name
< url-pattern >/* url-pattern
filter-mapping >

到这里struts2就已经和web工程集成了。

 

例:做一个对用户表的增删改查操作。

1、首先创建表和序列

1
2
3
4
5
6
7
8
create  sequence  seq_userId start  with  1; //创建序列 从1开始递增 
create  table  t_user( 
   id number(10)  not  null ,  
   name  nvarchar2(50)  not  null
   pwd nvarchar2(50)  not  null
   sex number(1),  
   age number(10) 
)

 

2、创建JDBC连接数据库类JDBCManager.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package  com.hyw.util; 
   
import  java.sql.Connection; 
import  java.sql.DriverManager; 
import  java.sql.PreparedStatement; 
import  java.sql.ResultSet; 
import  java.sql.SQLException; 
   
public  class  JDBCManager { 
  public  final  static  String DRIVER =  "oracle.jdbc.OracleDriver"
  public  final  static  String URL =  "jdbc:oracle:thin:@localhost:1521:huangyuewang"
  public  final  static  String USERNAME =  "hyw"
  public  final  static  String PWD =  "hyw"
    
  public  static  Connection getConnection(){ 
   Connection con =  null
   try 
    Class.forName(DRIVER); 
    con = DriverManager.getConnection(URL, USERNAME, PWD); 
   catch  (ClassNotFoundException e) { 
    e.printStackTrace(); 
   catch  (SQLException e) { 
    e.printStackTrace(); 
  
   return  con; 
 
  public  static  void  closeAll(Connection conn,PreparedStatement ps,ResultSet rs){ 
   try 
    if  ( null  != conn) 
     conn.close(); 
    if  ( null  != ps) 
     ps.close(); 
    if  ( null  != rs) 
     rs.close(); 
   catch  (Exception e) { 
    e.printStackTrace(); 
  
 
}

 

3、编写User.java实体类

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package  com.hyw.entity; 
   
public  class  User { 
  private  Integer id; 
  private  String name; 
  private  String pwd; 
  private  Integer sex; 
  private  Integer age; 
    
  public  Integer getId() { 
   return  id; 
 
  public  void  setId(Integer id) { 
   this .id = id; 
 
  public  String getName() { 
   return  name; 
 
  public  void  setName(String name) { 
   this .name = name; 
 
  public  String getPwd() { 
   return  pwd; 
 
  public  void  setPwd(String pwd) { 
   this .pwd = pwd; 
 
  public  Integer getSex() { 
   return  sex; 
 
  public  void  setSex(Integer sex) { 
   this .sex = sex; 
 
  public  Integer getAge() { 
   return  age; 
 
  public  void  setAge(Integer age) { 
   this .age = age; 
 
}

 

4、编写数据访问层UserDaoImp.java类

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package  com.hyw.dao.imp; 
   
import  java.sql.Connection; 
import  java.sql.PreparedStatement; 
import  java.sql.ResultSet; 
import  java.util.ArrayList; 
import  java.util.List; 
import  com.hyw.dao.UserDao; 
import  com.hyw.entity.User; 
import  com.hyw.util.JDBCManager; 
public  class  UserDaoImp  implements  UserDao { 
  private  Connection conn =  null
  private  PreparedStatement ps =  null
  private  ResultSet rs =  null
    
  public  void  saveUser(User user){ 
   conn = JDBCManager.getConnection(); 
   String sql =  "insert into t_user(id,name,pwd,sex,age) values(?,?,?,?,?)"
   try 
    int  id =  0
       String sql2 =  "select seq_userId.nextval from dual"
       ps = conn.prepareStatement(sql2); 
       rs = ps.executeQuery(); 
       while (rs.next()){ 
           id = rs.getInt( 1 ); 
      
    ps = conn.prepareStatement(sql); 
    ps.setInt( 1 , id); 
    ps.setString( 2 , user.getName()); 
    ps.setString( 3 , user.getPwd()); 
    ps.setInt( 4 , user.getSex()); 
    ps.setInt( 5 , user.getAge()); 
    ps.executeUpdate();  
      
   catch  (Exception e) { 
    e.printStackTrace(); 
   finally
    JDBCManager.closeAll(conn, ps, rs); 
  
  }  
  /** 
   * 修改用户 
   */
  public  void  updateUser(User user){ 
   conn = JDBCManager.getConnection(); 
   String sql =  "update t_user set name=?,pwd=?,sex=?,age=? where id=?"
   try 
    ps = conn.prepareStatement(sql); 
    ps.setString( 1 , user.getName()); 
    ps.setString( 2 , user.getPwd()); 
    ps.setInt( 3 , user.getSex()); 
    ps.setInt( 4 , user.getAge()); 
    ps.setInt( 5 , user.getId()); 
    ps.executeUpdate();  
      
   catch  (Exception e) { 
    e.printStackTrace(); 
   finally
    JDBCManager.closeAll(conn, ps, rs); 
  
  }  
  /** 
   * 删除用户 
   */
  public  void  removeUser(String ids){   
   if ( null  != ids && ids.length() >  0  ){ 
    conn = JDBCManager.getConnection(); 
    String sql =  "delete from t_user where id in (" +ids+ ")"
    try 
     ps = conn.prepareStatement(sql); 
     ps.executeUpdate(); 
    catch  (Exception e) { 
     e.printStackTrace(); 
    finally
     JDBCManager.closeAll(conn, ps, rs); 
   
  
  }  
  /** 
   * 查询所有的用户记录 
   */
  public  List findUsers(){ 
   List list =  new  ArrayList(); 
   conn = JDBCManager.getConnection(); 
   String sql =  "select * from t_user"
   try 
    ps = conn.prepareStatement(sql); 
    rs = ps.executeQuery(); 
    while (rs.next()){ 
     User user =  new  User(); 
     user.setId(rs.getInt( "id" )); 
     user.setAge(rs.getInt( "age" )); 
     user.setName(rs.getString( "name" )); 
     user.setPwd(rs.getString( "pwd" )); 
     user.setSex(rs.getInt( "sex" )); 
       
     list.add(user); 
   
   catch  (Exception e) { 
    e.printStackTrace(); 
   finally
    JDBCManager.closeAll(conn, ps, rs); 
  
     
   return  list; 
  }  
  /** 
   * 查询所有的用户记录 
   */
  public  List findUsers(User user1){ 
   List list =  new  ArrayList(); 
   conn = JDBCManager.getConnection(); 
   StringBuilder sql =  new  StringBuilder( "select * from t_user where 1=1 " ); 
   if ( null  != user1){ 
    if ( null  != user1.getName() && ! "" .equals(user1.getName())) 
     sql.append( "and name like '%" +user1.getName()+ "%' " ); 
  
   try 
    ps = conn.prepareStatement(sql.toString()); 
    rs = ps.executeQuery(); 
    while (rs.next()){ 
     User user =  new  User(); 
     user.setId(rs.getInt( "id" )); 
     user.setAge(rs.getInt( "age" )); 
     user.setName(rs.getString( "name" )); 
     user.setPwd(rs.getString( "pwd" )); 
     user.setSex(rs.getInt( "sex" )); 
       
     list.add(user); 
   
   catch  (Exception e) { 
    e.printStackTrace(); 
   finally
    JDBCManager.closeAll(conn, ps, rs); 
   }   
   return  list; 
  }  
  /** 
   * 查询一条记录 
   */
  public  User findUser(Integer id){ 
   User user =  null
   conn = JDBCManager.getConnection(); 
   String sql =  "select * from t_user where id=?"
   try 
    ps = conn.prepareStatement(sql); 
    ps.setInt( 1 , id); 
    rs = ps.executeQuery(); 
    while (rs.next()){ 
     user =  new  User(); 
     user.setAge(rs.getInt( "age" )); 
     user.setId(rs.getInt( "id" )); 
     user.setName(rs.getString( "name" )); 
     user.setPwd(rs.getString( "pwd" )); 
     user.setSex(rs.getInt( "sex" )); 
   
   catch  (Exception e) { 
    e.printStackTrace(); 
   finally
    JDBCManager.closeAll(conn, ps, rs); 
  
   return  user; 
 
}

 

5、将该类提取接口UserDao.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package  com.hyw.dao; 
import  java.util.List; 
import  com.hyw.entity.User; 
   
public  interface  UserDao { 
  public  void  saveUser(User user); 
    
  public  void  updateUser(User user); 
    
  public  void  removeUser(String ids); 
    
  public  List findUsers(); 
    
  public  List findUsers(User user); 
    
  public  User findUser(Integer id); 
}

 

6、书写业务层UserServiceImp.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package  com.hyw.service.imp; 
import  java.util.List; 
import  com.hyw.dao.UserDao; 
import  com.hyw.dao.imp.UserDaoImp; 
import  com.hyw.entity.User; 
import  com.hyw.service.UserService; 
   
public  class  UserSeviceImp  implements  UserService { 
  private  UserDao userDao =  new  UserDaoImp(); 
    
  public  void  saveUser(User user){ 
   
   userDao.saveUser(user); 
 
    
  /** 
   * 修改用户 
   */
  public  void  updateUser(User user){ 
   
   userDao.updateUser(user); 
 
    
  /** 
   * 删除用户 
   */
  public  void  removeUser(String ids){   
   
   userDao.removeUser(ids); 
 
    
  /** 
   * 查询所有的用户记录 
   */
  public  List findUsers(){ 
     
   return  userDao.findUsers(); 
 
    
  public  List findUsers(User user){ 
     
   return  userDao.findUsers(user); 
 
    
  /** 
   * 查询一条记录 
   */
  public  User findUser(Integer id){ 
     
   return  userDao.findUser(id); 
 
}

 

7、将该业务类提取接口UserService.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package  com.hyw.service; 
import  java.util.List; 
import  com.hyw.entity.User; 
   
public  interface  UserService { 
  public  void  saveUser(User user); 
    
  public  void  updateUser(User user); 
    
  public  void  removeUser(String ids); 
    
  public  List findUsers(); 
    
  public  User findUser(Integer id); 
    
  public  List findUsers(User user); 
}

 

8、编写控制器UserAction.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package  com.hyw.action; 
import  java.util.List; 
import  com.hyw.entity.User; 
import  com.hyw.service.UserService; 
import  com.hyw.service.imp.UserSeviceImp; 
import  com.opensymphony.xwork2.ModelDriven; 
   
public  class  UserAction  implements  ModelDriven{ 
  private  UserService userService =  new  UserSeviceImp(); 
  private  User user =  new  User(); 
  private  List users;   //查询所有的用户信息 
  private  String ids;   //得到多个id用","隔开 
  private  String userId;  //得到一个id 
  private  String msg;   //jsp页面的提示消息 
    
  public  String list(){ 
   users = userService.findUsers(); 
   return  "list"
 
    
  public  String query(){ 
   users = userService.findUsers(user); 
     
   return  "list"
 
    
  public  String show(){ 
   if ( null  != userId && ! "" .equals(userId)){ 
    user = userService.findUser( new  Integer(userId)); 
  
   return  "show"
 
    
  public  String edit(){ 
   if ( null  != userId && ! "" .equals(userId)){ 
    user = userService.findUser( new  Integer(userId)); 
  
   return  "edit"
 
    
  public  String save(){ 
   if ( null  != user.getId()){ 
    userService.updateUser(user); 
    setMsg( "修改用户成功!" ); 
   } else
    userService.saveUser(user);    
    setMsg( "新增用户成功!" ); 
  
   return  list(); 
 
    
  public  String remove(){ 
   userService.removeUser(ids); 
     
   setMsg( "删除用户成功!" ); 
   return  list(); 
 
   
  public  Object getModel() { 
   
   return  user; 
 
   
  public  User getUser() { 
   return  user; 
 
   
  public  void  setUser(User user) { 
   this .user = user; 
 
   
  public  List getUsers() { 
   return  users; 
 
   
  public  void  setUsers(List users) { 
   this .users = users; 
 
   
  public  String getIds() { 
   return  ids; 
 
   
  public  void  setIds(String ids) { 
   this .ids = ids; 
 
   
  public  String getMsg() { 
   return  msg; 
 
   
  public  void  setMsg(String msg) { 
   this .msg = msg; 
 
   
  public  String getUserId() { 
   return  userId; 
 
   
  public  void  setUserId(String userId) { 
   this .userId = userId; 
  }  
}

 

9、方法已处理完毕,现在开始视图层操作,修改index.jsp页面

1
2
3
4
5
6
7
8
9
10
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
   
< html
< body
    < p
     < button  onclick = "window.navigate('user_list.action');"  > 用户列表 button >  
    p
   body
html >

 

10、列表展示页面user_list.jsp

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
   
< html
< body  onload = "if('${msg }') alert('${msg }'); "
   < form  action = "user_query.action"  method = "post"
   < table  cellpadding = "0"  cellspacing = "0"  border = "1"  width = "80%"
     < tbody >    
      < tr
       < td >用户名: td
       < td >< input  type = "text"  name = "name"  value = "${user.name}" /> td
       < td >< input  type = "submit"  value = "查 询"  /> td
       < td >< input  type = "button"  value = "取 消"  onclick = "window.navigate('user_list.action');" />  td
      tr >    
     tbody
    table
    form
    < p
     < button  onclick = "window.navigate('user_edit.action');" >增 加 button >      
     < button   onclick = "window.navigate('user_edit.action?userId='+document.getElementById('ids').value);" >修 改 button >     
     < button  onclick = "document.getElementById('myform').submit();" >删 除 button
    p
    < form  action = "user_remove.action"  method = "post"  id = "myform"
    < table  cellpadding = "0"  cellspacing = "0"  border = "1"  width = "80%"
     < thead
      < tr
          < td >操作 td
       < td >用户名 td
       < td >性别 td
       < td >年龄 td
      tr
     thead
     < tbody
     < s:iterator  value = "users"
      < tr
       < td >< input  type = "checkbox"  name = "ids"  id = "ids"  value = "${id}" /> td
       < td >< a  href = "user_show.action?userId=${id}"  >${name} a > td
       < td >${sex eq 1?'男':'女'} td
       < td >${age } td
      tr
     s:iterator
   
     tbody
    table
    form >  
   body
html >

 

11、单击“新增”按钮,新增user_edit.jsp页面

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
   
< html
   < body
   < form  action = "user_save.action"  namespace = "user"  method = "post"
   < s:hidden  name = "user.id"  /> 
    < table  cellpadding = "0"  cellspacing = "0"  border = "1"  width = "80%"
     < tbody
      < tr
       < td >用户名 : td
       < td >< input  name = "user.name"  value = "${user.name eq null?'':user.name }"  > td
       < td >年龄 td
       < td >< input  name = "user.age"  value = "${user.age eq null?'':user.age }" /> td
      tr
      < tr
       < td >密码 : td
       < td >< input  type = "password"  name = "user.pwd"  value = "${user.pwd eq null?'':user.pwd }"  /> td
       < td >性别 td
       < td >< input  type = "radio"  name = "user.sex"  value = "1"  ${user.sex eq 1 or user.sex eq null?'checked':'' }/> 男< input  type = "radio"  name = "user.sex"  value = "0"  ${user.sex eq 0?'checked':'' }/> 女 td
      tr
      < tr
       < td  colspan = "4"  align = "center"
        < input  type = "submit"  value = "保 存" /> 
        < input  type = "button"  value = "返 回"  onclick = "window.navigate('user_list.action');" />  
        td
      tr
     tbody
    table
    form
   body
html >

 

12、新增查看页面user_show.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
< html
   < body
    < table  cellpadding = "0"  cellspacing = "0"  border = "1"  width = "80%"
     < tbody
      < tr
       < td  align = "right" >用户名 : td
       < td >${user.name eq null?'':user.name }  td
       < td  align = "right" >年龄: td
       < td >${user.age eq null?'':user.age }  td
      tr
      < tr
       < td  align = "right" >密码 : td
       < td >${user.pwd eq null?'':user.pwd }  td
       < td  align = "right" >性别: td
       < td >${user.sex eq 1 or user.sex eq null?'男':'女' }  td
      tr
      < tr
       < td  colspan = "4"  align = "center"
        < input  type = "button"  value = "返 回"  onclick = "window.navigate('user_list.action');" />  
        td
      tr
     tbody
    table
   body
html >

 

到目前为止,对该用户的增删改查操作都已经处理完毕。

 

你可能感兴趣的:(struts2 的mvc模式配置和JDBC连接oracle数据库开发)