将一个对人员增删改查的程序改成Hibernate+spring+struts方式
- Java code
package com.experiment.Dao;import java.util.ArrayList;import java.util.List;import com.experiment.vo.UserInfo;public interface UserManagerDao { public void insert(UserInfo user); public void updateById(UserInfo userInfo); public void deleteById(int id); public UserInfo queryByAccount(String account); public ArrayList<UserInfo> queryAll(); public UserInfo queryById(int id);}[color=#FF0000]package com.experiment.Dao.DapImpl;[/color]import java.io.UnsupportedEncodingException;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import com.experiment.Dao.UserManagerDao;import com.experiment.Db.DataBaseConnectionOracle;import com.experiment.vo.UserInfo;public class UserManagerDaoImpl implements UserManagerDao { public void insert(UserInfo user) { String sql = "INSERT INTO usertable (id,account,name,birthday,sex) VALUES (?,?,?,?,?)"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); pstmt.setInt(1, user.getId()); pstmt.setString(2, user.getAccount()); try { pstmt.setString(3, new String(user.getName().getBytes(), "UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } pstmt.setString(4, user.getBirthday()); pstmt.setInt(5, user.getSex()); pstmt.executeUpdate(); pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { dbc.close(); }} public void deleteById(int id) { String sql = "DELETE FROM usertable WHERE id=?"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); pstmt.setInt(1, id); pstmt.executeUpdate(); pstmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { dbc.close(); }} public ArrayList<UserInfo> queryAll() { ArrayList<UserInfo> all = new ArrayList<UserInfo>(); String sql = "SELECT id,account,name,birthday,sex FROM usertable"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { UserInfo userInfo = new UserInfo(); userInfo.setId(rs.getInt(1)); userInfo.setAccount(rs.getString(2)); userInfo.setName(rs.getString(3)); userInfo.setBirthday(rs.getString(4)); userInfo.setSex(rs.getShort(5)); all.add(userInfo); }rs.close(); pstmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { dbc.close();} return all; }public UserInfo queryById(int id) { UserInfo userInfo = null; String sql = "SELECT id,account,name,birthday,sex FROM usertable WHERE id=?"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); pstmt.setInt(1, id); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { userInfo = new UserInfo(); userInfo.setId(rs.getInt(1)); userInfo.setAccount(rs.getString(2)); userInfo.setName(rs.getString(3)); userInfo.setBirthday(rs.getString(4)); userInfo.setSex(rs.getInt(5)); }rs.close(); pstmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { dbc.close(); } return userInfo; }public UserInfo queryByAccount(String account) { UserInfo userInfo = null; String sql = "SELECT id,account,name,birthday,sex FROM usertable WHERE account=?"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { userInfo = new UserInfo(); userInfo.setId(rs.getInt(1)); userInfo.setAccount(rs.getString(2)); userInfo.setName(rs.getString(3)); userInfo.setBirthday(rs.getString(4)); userInfo.setSex(rs.getInt(5)); } rs.close(); pstmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { dbc.close(); }return userInfo; } public void updateById(UserInfo user) { String sql = "UPDATE usertable SET account=?,name=?,birthday=?,sex=? WHERE id=?"; PreparedStatement pstmt = null; DataBaseConnectionOracle dbc = null; try { dbc = new DataBaseConnectionOracle(); pstmt = dbc.getConnection().prepareStatement(sql); pstmt.setString(1, user.getAccount()); pstmt.setString(2, user.getName()); pstmt.setString(3, user.getBirthday()); pstmt.setInt(4, user.getSex()); pstmt.setInt(5, user.getId()); pstmt.executeUpdate(); pstmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { dbc.close(); }} public static void main(String[] args) { UserManagerDaoImpl um = new UserManagerDaoImpl(); ArrayList<UserInfo> userlist = um.queryAll(); UserInfo u = um.queryById(1); System.out.println(userlist.size()); }}[color=#FF0000]package com.experiment.Db;[/color]import java.sql.*;public class DataBaseConnectionOracle { private final String dbUrl = "jdbc:oracle:thin:@Bard0117:1522:ORCL"; private final String user="system"; private final String password="system"; private Connection conn = null; public DataBaseConnectionOracle() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); this.conn = DriverManager.getConnection(dbUrl,user,password); } catch (Exception e) { } } public Connection getConnection() { return this.conn; } public void close() { try { this.conn.close(); } catch (Exception e) { } } public static void main(String [] args){ DataBaseConnectionOracle dbc = new DataBaseConnectionOracle(); @SuppressWarnings("unused") Connection conn = dbc.getConnection(); System.out.println("Connection is success!"); dbc.close(); }}[color=#FF0000]package com.experiment.usermanger;[/color]import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.experiment.Dao.UserManagerDao;import com.experiment.Dao.DapImpl.UserManagerDaoImpl;import com.experiment.vo.UserInfo;public class UserManagerServlet extends HttpServlet { private static final long serialVersionUID = 1L; public UserManagerServlet() { super();} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("do get........."); doPost(request, response); }protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String action = request.getParameter("action"); System.out.println(action); if ("add".equals(action)) { addUser(request,response); } if ("update".equals(action)){ updateUser(request,response); } if ("delete".equals(action)){ deleteUser(request,response); }} private void deleteUser(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("删除数据!"); int deleteId = Integer.parseInt(request.getParameter("deleteid")); UserManagerDao umd = new UserManagerDaoImpl(); umd.deleteById(deleteId); response.sendRedirect("index.jsp"); } private String parseBirthday(HttpServletRequest request, HttpServletResponse response) { String year = request.getParameter("year"); String month = request.getParameter("month"); String day = request.getParameter("day"); String date = String.valueOf(year + "-" + month + "-" + day); return date; } private void addUser(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("提交数据bbb"); UserInfo useradd = new UserInfo(); String userAccount = request.getParameter("userId"); String userName = request.getParameter("nameAll"); String birthday = parseBirthday(request, response); String sex = request.getParameter("sex"); int sexnum = 0; if ("b".equals(sex)) { sexnum = 0; } else { sexnum = 1; }useradd.setAccount(userAccount); useradd.setName(userName); useradd.setBirthday(birthday); useradd.setSex(sexnum); UserManagerDao umd = new UserManagerDaoImpl(); umd.insert(useradd); System.out.println("存储用户" + userName); response.sendRedirect("index.jsp"); }private void updateUser(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("更新用户"); UserInfo userUpdate = new UserInfo(); int userId = Integer.parseInt(request.getParameter("userid")); String userAccount = request.getParameter("updateAccount"); String userName = request.getParameter("updateName"); String birthday = request.getParameter("updateBirthday"); String sex = request.getParameter("sex"); int sexnum = 0; if ("g".equals(sex)) { sexnum = 0; } else { sexnum = 1;} userUpdate.setId(userId); userUpdate.setAccount(userAccount); userUpdate.setName(userName); userUpdate.setBirthday(birthday); userUpdate.setSex(sexnum); UserManagerDao umd = new UserManagerDaoImpl(); umd.updateById(userUpdate); System.out.println("更新id为"+ userId+"的用户" ); response.sendRedirect("index.jsp"); }}
求高手相助!求详解!谢谢谢谢谢谢O(∩_∩)O谢谢。。。。
[解决办法]
这个没有什么难的,其实配置也没有什么难的,建议你用eclipse(java ee版),ssh全部手动配置,最好别用myeclipse配置,不然,你永远都很难记住很多东西。
我给你一个思路:
你首先自己了解一下struts的原理(如果你是初学,先看struts 1.x,先别看2,1和 2区别太大了),spring的ioc看看,hibernate主要看看几个核心接口,和基本hql用法就可以了。
既然你要整合,就要学着将很多东西都交给spring管理,包括事物,dataSource等,直接使用hibernate 模版中封装好的方法。
具体例子,请参考:
http://wenku.baidu.com/view/4b63e270a417866fb84a8e51.html
[解决办法]
[解决办法]
后台写好了,JSP是不需要修改的。因为后台要做的就是把数据放到request或值栈中就OK了。
[解决办法]
jspview就是Model中取,然後接收到的入Controller(控制)
就是这两个“接口”处可能要稍微改变一下,碰到问题可以把问题报出来嘛
[解决办法]
[解决办法]
ultiple annotations found at this line:
- Invalid property name 'UserManagerDao' - not JavaBean
compliant
- Referenced bean 'UserManagreDao' not found
引用的候bean名拼有
[解决办法]
你名称错了,在UserManager bean配置是这个名称
在下面的UserManagerService里的setPorperty后面那个ref你输入的名称是UserManagre
自己仔细检查一下看看是不是这样 注意er和re
[解决办法]
严重: Exception starting filter struts2
Unable to load configuration. - [unknown location]
由於法加配置而致的器失
查下器相的配置文件位置是不是正,其次可以再看下器的相配置容