目录
1 概述
2 数据库表
3 关键代码
4 效果演示
1 兼职网站概述
idea或eclipse开发,mysql数据库
当今,人类社会已经进入信息全球化和全球信息化、网络化的高速发展阶段。丰富的网络信息已经成为人们工作、生活、学习中不可缺少的一部分。人们正在逐步适应和习惯于网上贸易、网上购物、网上支付、网上服务和网上娱乐等活动,人类的许多社会活动正在向网络化发展。兼职和求职是一项对信息的需求量比较大的活动,特别是在大学校园中,众多的学生面临着就业问题,传统的兼职求职方式已经越来越不能满足他们的要求。建设一个兼职任务发布网站也必然得到广大用人单位和学生的强烈支持。
本文则介绍了建设兼职任务发布网站的完整过程。其中分别从需求分析、总体设计和详细设计等几方面介绍了怎样实现提供商在信息网中进行注册、发布,管理兼职信息和招聘管理等。
针对系统管理员:
- 提供商和学生用户添加和管理。
- 新闻公告添加和管理。
- 应聘信息添加和管理。
- 任务信息添加和管理。
- 网站留言信息管理。
针对提供商:
- 浏览网站的所有信息。
- 添加任务信息。
- 管理任务信息。
针对学生用户:
- 可以浏览网站的任务,新闻等信息。
在网站上留言。
2 兼职网站数据库表
表5 TaskType 任务类型
字段名称 |
字段大小 |
字段类型 |
说明 |
typeId |
4 |
长整型(3) |
编号 |
typeName |
20 |
文本(202) |
名称 |
表6 TaskTypeDetailInfo 任务子类型
字段名称 |
字段大小 |
字段类型 |
说明 |
Id |
4 |
长整型(3) |
编号 |
typeId |
50 |
文本(202) |
上级类型编号 |
typeDetailInfo |
50 |
文本(202) |
子类名称 |
表7 订单任务信息
字段名称 |
字段大小 |
字段类型 |
说明 |
orderId |
4 |
长整型(3) |
订单编号 |
taskId |
4 |
长整型(3) |
任务编号 |
status |
4 |
长整型(3) |
状态0未确认,1已确认,100收货,101退货 |
表8 订单信息
字段名称 |
字段大小 |
字段类型 |
说明 |
orderId |
4 |
长整型(3) |
编号 |
customerId |
4 |
长整型(3) |
学生编号 |
status |
4 |
长整型(3) |
状态 |
orderTime |
50 |
文本(202) |
时间 |
表9 提供商
字段名称 |
字段大小 |
字段类型 |
说明 |
id |
4 |
长整型(3) |
编号 |
|
100 |
文本(202) |
电子邮件 |
pwd |
20 |
文本(202) |
密码 |
thirdname |
20 |
文本(202) |
名称 |
registerTime |
50 |
文本(202) |
注册时间 |
isCooled |
4 |
长整型(3) |
是否审核 1,未审核 ,0,审核通过 |
phone |
50 |
文本(202) |
电话 |
address |
50 |
文本(202) |
地址 |
3 兼职网站关键代码
package com.common;import java.lang.reflect.Method;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;public class DBConn {//连接字符串private final static String USER = "root";private final static String PWD = "root"; //这里修改数据库密码 //这里修改数据库连接密码private final static String DRIVER = "com.mysql.jdbc.Driver";private final static String URL = "jdbc:mysql://127.0.0.1:3306/task?characterEncoding=utf8";/*** * 使用了Tomcat的连接池* * @returnpublic static Connection GetConn() {try {//获取Tomcat中的连接,需要使用JNDI这个服务//通过JNDI找到Tomcat的连接池Context ctx = new InitialContext();DataSource ds = (DataSource)ctx.lookup("java:comp/env/myPool");Connection conn = ds.getConnection();//连接来自于连接池return conn;} catch (Exception e) {e.printStackTrace();}return null;}*///关闭连接public static void CloseConn(ResultSet rs,PreparedStatement pstmt,Connection conn) {try {if(rs!=null){rs.close();}if(pstmt!=null){pstmt.close();}if (conn != null && conn.isClosed() == false) { conn.close();}} catch (Exception ex) {ex.printStackTrace();}}/*** * * 查询的封装* @param sql* @param obj* @return*/@SuppressWarnings("unchecked")
public static ArrayList<Object> ExecuteQuery(String sql,Object obj){//获取数据库连接Connection conn = DBConn.getConn();PreparedStatement pstmt = null;ResultSet rs = null;ArrayList list = new ArrayList();try { //创建执行SQL语句的pstmt对象pstmt = conn.prepareStatement(sql);//执行SQL语句,并且返回结果集rs = pstmt.executeQuery();while(rs.next()){ //遍历结果集 //使用Java反射机制,获取对象信息,根据对象的方法,动态调用类中的所有set方法,完成对象的赋值 Class cla = Class.forName(obj.getClass().getName());//动态加载类 Method [] ms = cla.getMethods();//获取类的方法Object currentobj = cla.newInstance();//创建该类的实例for(int i=0;i<ms.length;i++){//遍历所有的方法if(ms[i].getName().startsWith("set")){//获取以set开头的方法Class[] cc = ms[i].getParameterTypes();//获取当前方法的参数if(cc.length>0){//判断参数的个数,是否大于0if("int".equals(cc[0].getName().toLowerCase())){//获取参数的类型,int类型ms[i].invoke(currentobj,rs.getInt(ms[i].getName().substring(3)));}else if("float".equals(cc[0].getName().toLowerCase())){//获取参数的类型,float类型ms[i].invoke(currentobj,rs.getFloat(ms[i].getName().substring(3)));}else if("double".equals(cc[0].getName().toLowerCase())){//获取参数的类型,double类型ms[i].invoke(currentobj,rs.getDouble(ms[i].getName().substring(3)));}else if("char".equals(cc[0].getName().toLowerCase())){//获取参数的类型,char类型 ms[i].invoke(currentobj,new String(rs.getString(ms[i].getName().substring(3))).charAt(0)); }else if(cc[0].getName().indexOf("String")!=0){//获取参数的类型,string类型 ms[i].invoke(currentobj,rs.getString(ms[i].getName().substring(3))); }else{System.out.println("常用数据类型不匹配!(只能支持:int、float、double、char、String数据类型)");}}else{ //set方法没有传递参数System.out.println("set方法必须有且只有一个参数!");}} } list.add(currentobj);//将新添加的实例,存放在List中}return list;} catch (Exception e) {e.printStackTrace(); }finally{//关闭连接 DBConn.CloseConn(rs, pstmt, conn);} return null; }/*** * * 增、删、改的封装* @param sql* @return*/public static int ExecuteUD(String sql){Connection conn = DBConn.getConn();PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(sql);return pstmt.executeUpdate();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBConn.CloseConn(null, pstmt, conn);}return 0;}//打开连接public static Connection getConn() {try {Class.forName(DRIVER);return DriverManager.getConnection(URL, USER, PWD);} catch (Exception ex) {ex.printStackTrace();}return null;}
}
4 兼职网站效果演示