`
idealab
  • 浏览: 195524 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Struts+Hibernate/JDBC+ExtJS实现人力资源管理系统(二)

    博客分类:
  • Ajax
阅读更多
根据信息类型和id查询不同类型信息(如部门、职务、岗位等):
ps:其中用到了Hibernate和JDBC以对数据库进行访问,处理结果格式化为JSON回传至页面端
public class GetByIdAction extends Action {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=UTF-8");
		response.setCharacterEncoding("UTF-8");
		PrintWriter writer = response.getWriter();
		String getType = request.getParameter("type");
		String id = request.getParameter("id");
		
		JdbcUtil jdbc = new JdbcUtil();
		JSONArray jsonInner = new JSONArray();

		if (getType.equals("dept")) {// 获得部门信息
			jdbc.openConn();
			if (id == null) {// 若id为空,则查询全部数据,返回数据供comboBox使用
				String sql = "select * from dept";
				ResultSet rs = jdbc.executeQuery(sql);
				while (rs.next()) {
					JSONObject jsonObj = new JSONObject();
					jsonObj.put("id", rs.getString("pk_dept"));
					jsonObj.put("deptname", rs.getString("deptname"));
					jsonInner.add(jsonObj);
				}
				rs.close();
				jdbc.closeConn();

			} else {
				String sql = "select * from dept where pk_dept =" + id;
				ResultSet rs = jdbc.executeQuery(sql);
				Map map = new HashMap();
				if (rs.first()) {
					map.put("deptname", rs.getString("deptname"));
					map.put("depttype", rs.getString("depttype"));
					map.put("deptduty", rs.getString("deptduty"));
					map.put("addr", rs.getString("addr"));
					map.put("tel", rs.getString("tel"));
				}
				jsonInner = JSONArray.fromObject(map);
				rs.close();
				jdbc.closeConn();
				System.out.println("JsonInner is:"+jsonInner.toString());
			}

		} else if (getType.equals("post")) {// 获得职务信息
			jdbc.openConn();
			if (id == null) {// 若id为空,则查询全部数据
				String sql = "select * from post";
				ResultSet rs = jdbc.executeQuery(sql);
				while (rs.next()) {
					JSONObject jsonObj = new JSONObject();
					jsonObj.put("id", rs.getString("pk_post"));
					jsonObj.put("postname", rs.getString("postname"));
					jsonInner.add(jsonObj);
					System.out.println("pk_post=" + rs.getString("pk_post")
							+ "\t" + rs.getString("postname"));
				}
				rs.close();
				jdbc.closeConn();

			} else {
				String sql = "select * from post where pk_post =" + id;
				ResultSet rs = jdbc.executeQuery(sql);
				Map map = new HashMap();
				if (rs.first()) {
					map.put("postname", rs.getString("postname"));
					map.put("posttype", rs.getString("posttype"));
					map.put("postdesc", rs.getString("postdesc"));
					map.put("postgoal", rs.getString("postgoal"));
					map.put("postduty", rs.getString("postduty"));
				}
				rs.close();
				jdbc.closeConn();
				jsonInner = JSONArray.fromObject(map);
			}
		} else if (getType.equals("job")) {// 获得岗位信息
			jdbc.openConn();
			if (id == null) {
				String sql = "select * from job";
				ResultSet rs = jdbc.executeQuery(sql);
				while (rs.next()) {
					JSONObject jsonObj = new JSONObject();
					jsonObj.put("id", rs.getInt("pk_outer_post"));
					jsonObj.put("jobname", rs.getString("jobname"));
					jsonInner.add(jsonObj);
				}
				rs.close();
				jdbc.closeConn();
				
			} else {
				// Note:此时的id为部门主键,此查询响应部门树点击事件
				String sql = "select * from job where pk_dept=" + id;
				ResultSet rs = jdbc.executeQuery(sql);

				while (rs.next()) {
					JSONObject jsonObj = new JSONObject();

					jsonObj.put("jobcode", rs.getString("jobcode"));
					jsonObj.put("jobname", rs.getString("jobname"));
					jsonObj.put("pk_outer_post", rs.getInt("pk_outer_post"));
					jsonObj.put("jobtype", rs.getString("jobtype"));
					jsonObj.put("jobdesc", rs.getString("jobdesc"));
					jsonInner.add(jsonObj);
				}
				rs.close();
				jdbc.closeConn();
				
			}

		} else if (getType.equals("emptype")) {// 获得人员类别信息
			jdbc.openConn();
			if (id == null) {
				String sql = "select * from emptype";
				ResultSet rs = jdbc.executeQuery(sql);
				while (rs.next()) {
					JSONObject jsonObj = new JSONObject();
					jsonObj.put("id", rs.getString("pk_emptype"));
					jsonObj.put("typename", rs.getString("typename"));
					jsonInner.add(jsonObj);
				}
				rs.close();
				jdbc.closeConn();
				
			} else {
				String sql = "select * from emptype where pk_emptype=" + id;
				ResultSet rs = jdbc.executeQuery(sql);
				if (rs.first()) {
					JSONObject jsonObj = new JSONObject();
					jsonObj.put("typecode", rs.getString("typecode"));
					jsonObj.put("typename", rs.getString("typename"));
					jsonObj.put("typedesc", rs.getString("typedesc"));
					jsonInner.add(jsonObj);
				}
				rs.close();
				jdbc.closeConn();
				
			}
		} else if (getType.equals("emp")) {// 根据部门查询
			if (id == null) {
				// TODO
				EmpDAO dao = new EmpDAO();
				List<Emp> list = dao.findAll();
				Iterator iterator = list.iterator();
				while (iterator.hasNext()) {
					JSONObject jsonObj = new JSONObject();
					Emp emp = (Emp) iterator.next();
					jsonObj.put("pk_emp", emp.getPkEmp());
					jsonObj.put("empname", emp.getName());
					jsonInner.add(jsonObj);
				}
				
			} else {
				EmpdocDAO dao = new EmpdocDAO();
				List<Empdoc> list = dao.findByPkOuterDept(Integer.valueOf(id));
				jsonInner.fromObject(list);
			}
		}
		JSONObject json = new JSONObject();
		json.put("success", true);
		json.put("data", jsonInner);
		writer.write(json.toString());
		return null;
	}
}

JDBC工具类:
public class JdbcUtil {
	private final String driver = "com.mysql.jdbc.Driver";
	private final String url="jdbc:mysql://localhost:3306/ehr?autoReconnect=true&useUnicode=true&characterEncoding=utf-8";
	private final String user = "root";
	private final String pwd = "ideal";
	private Connection conn = null;
	private Statement st = null;

	public void openConn(){
		try{
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,pwd);
			conn.setAutoCommit(true);
		}catch(SQLException e){
			e.printStackTrace();
			System.out.println("数据库连接失败!");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	public boolean executeUpdate(String sql)throws SQLException{ 
        try {
            /*判断必需的属性是否为空*/  
        	if(conn==null || sql == null||sql.equals("")){   
                return true;   
            }
        	st = conn.createStatement();
            int i = st.executeUpdate(sql); 
            System.out.println(i+"行受影响");
            return true;
        } catch (SQLException e) { 
            e.printStackTrace();
            System.out.println("更新失败!");
            return false;
        } 
    } 

    public ResultSet executeQuery(String sql){ 
    	ResultSet rs = null;
        try { 
        	st = conn.createStatement();
            rs = st.executeQuery(sql);
        } catch (SQLException e) { 
            e.printStackTrace(); 
            System.out.println("查询数据失败.未获得ResultSet!");
        }
        return rs;
    } 

    public void closeConn() { 
        try { 
            st.close(); 
            conn.close(); 
        } catch (Exception e) { 
            e.printStackTrace(); 
            System.out.println("关闭数据库连接失败!");
        } 
    } 
}

ps:系统环境:Tomcat5.0.28+MySQL5,开发工具:MyEclipse6.5
系统实现图:


分享到:
评论
8 楼 zuozengliang 2010-05-13  
报错一:严重: Error loading WebappClassLoader
  delegate: false repositories:    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@c837cd
org.directwebremoting.servlet.DwrServlet
java.lang.ClassNotFoundException: org.directwebremoting.servlet.DwrServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4187)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4496)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
错误2:严重: Servlet.service() for servlet action threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.idealab.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
我是初学者,麻烦搂主帮我忙看看,虽然跑起来了,但是报了这2个错误,谢谢了
7 楼 sunrisetg 2009-12-30  
  兄台你上传项目少几个jar包,想忽悠人呢?弄半天部署不上去!
6 楼 C_J 2009-04-20  
idealab 写道

C_J 写道推荐去看看s2哈~~~&amp;nbsp; s2是啥东西哦?貌似没看到相关消息,请赐教~


哈哈  Struts2 没说清楚
5 楼 idealab 2009-04-20  
C_J 写道

推荐去看看s2哈~~~&nbsp;

s2是啥东西哦?貌似没看到相关消息,请赐教~
4 楼 C_J 2009-04-20  
推荐去看看s2哈~~~ 

3 楼 idealab 2009-04-12  
jeasony 写道

你好。我是初学者。。动态加载树,及选项卡等。搞了我晕头转向的。看到该博文,我想好好研究下,可否提供代码,让我们这些初学者参考。或能否麻烦您传份给我的邮箱,谢谢
我的邮箱为:sunypzh@163.com&nbsp;&nbsp; 万分感谢。。

代码在论坛里面有的,http://www.iteye.com/post/950249,可以下载看看,如有问题,敬请指出哈~
2 楼 idealab 2009-04-12  
代码在论坛里面有的,http://www.iteye.com/post/950249,可以下载看看,如有问题,敬请指出哈~
1 楼 jeasony 2009-04-12  
你好。我是初学者。。动态加载树,及选项卡等。搞了我晕头转向的。看到该博文,我想好好研究下,可否提供代码,让我们这些初学者参考。或能否麻烦您传份给我的邮箱,谢谢
我的邮箱为:sunypzh@163.com   万分感谢。。

相关推荐

Global site tag (gtag.js) - Google Analytics