OA系统:搭建项目框架

it2025-05-20  37

一、创建facaioa项目

workspace编码统一更改为utf-8 找到Preferences

二、创建包和文件夹

1.创建包 2.创建WebRoot下文件夹 system:人事管理 duty:考勤管理 expense:报销单 inout:收支管理

三、添加jar包

1.添加jar包 1)gson-2.2.4.jar 2)log4j-1.2.8.jar 3)ojdbc6.jar 4)mysql-connector-java-5.1.30.jar 5)jdbc.properties(放在src目录下) 2.添加类库 添加JUnit4

四、添加工具类

1、Servlet BaseServlet:

package com.facai.servlet; import java.io.IOException; import java.lang.reflect.Method; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public abstract class BaseServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置请求编码格式,解决post单中文乱码问题 req.setCharacterEncoding("utf-8"); //获取请求信息 String methodName=req.getParameter("method"); //调用方法(处理和响应请求) try { //根据方法名调用方法--->反射 //反射方法所在类的类对象 Class cla=this.getClass(); //反射获取要被调用的对象方法 Method m=cla.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class); //反射执行方法 m.invoke(this, req,resp); } catch (Exception e) { e.printStackTrace(); } } }

2、util DBUtil:

package com.facai.util; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBUtil { //声明全局变量记录jdbc参数 private static String driver; private static String url; private static String username; private static String password; //使用静态代码块,在类加载时即完成对属性文件的读取 static{ //动态获取属性配置文件的流对象 InputStream in=DBUtil.class.getResourceAsStream("/db.properties"); //创建Properties对象 Properties p=new Properties(); //加载 try { p.load(in);//会将属性配置文件的所有数据存储到Properties对象中 //将读取的jdbc参数赋值给全局变量 driver=p.getProperty("driver"); url=p.getProperty("url"); username=p.getProperty("username"); password=p.getProperty("password"); //加载驱动 Class.forName(driver); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //创建连接对象并返回 public static Connection getConnection(){ Connection conn=null; try { conn = DriverManager.getConnection(url, username, password); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } //关闭资源 public static void closeAll(ResultSet rs,Statement stmt,Connection conn){ try { if(rs!=null){ rs.close(); } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //封装增加删除修改的通用工具方法 /** * @param sql SQL语句 * @param objs SQL语句占位符实参,如果没有参数则传入null * @return 返回增删改的结果,类型为int */ public static int executeDML(String sql,Object...objs){ // 声明jdbc变量 Connection conn = null; PreparedStatement ps = null; int i = -1; try { // 获取连接对象 conn = DBUtil.getConnection(); // 开启事务管理 conn.setAutoCommit(false); // 创建SQL命令对象 ps = conn.prepareStatement(sql); // 给占位符赋值 if(objs!=null){ for(int j=0;j<objs.length;j++){ ps.setObject(j+1,objs[j]); } } // 执行SQL i = ps.executeUpdate(); conn.commit(); } catch (Exception e) { try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } e.printStackTrace(); } finally { DBUtil.closeAll(null, ps, conn); } return i; } }

五、添加界面原型

加入界面原型 (采用界面原型的jquery版本) 链接:https://pan.baidu.com/s/1dOkD7UNrWbOyhuiJD18O3A 密码:83h0

六、部署项目并测试

最新回复(0)