vue+elementUI完成登陆所需的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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值