eclipse后台代码
前言
为完成vue+elementUI登陆,所以创建一个eclipse项目
创建eclipse项目
导入jar包
先创建一个j2eeVue项目,在一个导入jar包依赖
新建四个Package包
util包
CommonUtils
package com.tang.vue.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CommonUtils {
/**
* 根据ResultSet数据集,利用反射机制动态赋值并返回List<T>
* @param rs ResultSet数据集
* @param clazz 实体类对象
* @return 返回List实体集合
* @throws Exception
*/
public static <T> List<T> toList(ResultSet rs,Class<T> clazz){
//定义实体集合
List<T> lst=new ArrayList<T>();
try {
//获取ResultSet的metadata列信息
ResultSetMetaData metaData = rs.getMetaData();
//获取对象属性集合
Field[] fields=clazz.getDeclaredFields();
//循环ResultSet
while(rs.next()) {
//反射机制实例化
T obj = clazz.newInstance();
for (int i = 0; i < metaData.getColumnCount(); i++) {
//获取列名
String columnName=metaData.getColumnLabel(i+1).toUpperCase();
for (Field field : fields) {
//判断属性名与列名是否相同
if(field.getName().toUpperCase().equals(columnName)) {
//获取属性对应的set方法名,方法名首字母大写
String methodName="set"+field.getName().substring(0, 1).toUpperCase()+field.getName().substring(1);
//获取属性对应的set方法
Method method = obj.getClass().getDeclaredMethod(methodName, field.getType());
//设置访问权限
method.setAccessible(true);
//执行set方法,将数据存储到对象中的相应属性中
method.invoke(obj, rs.getObject(columnName));
break;
}
}
}
lst.add(obj);
}
} catch (Exception e) {
e.printStackTrace();
}
return lst;
}
/**
* 多表查询时返回结果集,利用反射机制赋值
* @param rs
* @return 返回List<Map<String,Object>>
* @throws Exception
*/
public static List<Map<String,Object>> toList(ResultSet rs) throws Exception{
//定义实体集合
List<Map<String,Object>> lst=new ArrayList<Map<String,Object>>();
//获取ResultSet的metadata列信息
ResultSetMetaData metaData = rs.getMetaData();
Map<String,Object> set=null;
while(rs.next()) {
set=new HashMap<String,Object>();
for (int i = 0; i < metaData.getColumnCount(); i++) {
String columnName=metaData.getColumnLabel(i+1);
set.put(columnName, rs.getObject(columnName));
}
lst.add(set);
}
return lst;
}
}
CorsFilter
package com.tang.vue.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
/**
* 配置tomcat允许跨域访问
*
* @author Administrator
*
*/
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
// Access-Control-Allow-Origin就是我们需要设置的域名
// Access-Control-Allow-Headers跨域允许包含的头。
// Access-Control-Allow-Methods是允许的请求方式
httpResponse.setHeader("Access-Control-Allow-Origin", "*");// *,任何域名
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
DBHelper
package com.tang.vue.util;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 提供了一组获得或关闭数据库对象的方法
*
*/
public class DBHelper {
private static String driver;
private static String url;
private static String user;
private static String password;
static {
// 静态块执行一次,加载 驱动一次
try {
InputStream is = DBHelper.class
.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(is);
driver = properties.getProperty("driver");
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("pwd");
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 获得数据连接对象
*
* @return
*/
public static Connection getConnection() {
try {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
public static void close(ResultSet rs) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Statement stmt) {
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn) {
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
close(rs);
close(stmt);
close(conn);
}
public static boolean isOracle() {
return "ora