数据库操作(存着用来复制省的每次写)

首先是:

/Vote/src/db.properties 配置文件信息(key-value形式)

driver=com.mysql.jdbc.Driver
dburl=jdbc:mysql://localhost:3306/vote?useUnicode=true&characterEncoding=utf8
dbuser=root
password=root

接着是工厂类:

/Vote/src/vote/db/ConnectionFactory.java

作用:得到配置文件的信息进行数据库的连接

package vote.db;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;



public class ConnectionFactory {
	public static String driver;
	public static  String dburl;
	public static  String dbuser;
	public static  String password;
	public static  ConnectionFactory factory = null;
	public ConnectionFactory(){
		this.getproperties();
	}
	public  void getproperties() {
		// TODO 自动生成的方法存根
		Properties prop = new Properties();//通过类方法得到Properties配置文件信息
		InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties");
		try {
			prop.load(inputStream);
			this.driver = prop.getProperty("driver");
			this.dburl = prop.getProperty("dburl");
			this.dbuser = prop.getProperty("dbuser");
			this.password = prop.getProperty("password");
//			this.password = "";
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static Connection getConnection(){
		Connection conn = null;
		new ConnectionFactory();
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
			conn = DriverManager.getConnection(dburl,dbuser,password);
			System.out.println("进去得到数据库");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		
		return conn;
	}
}

接下来是curl(增删改查) 

/Vote/src/vote/db/ControlDB.java

功能:通过自己的需求实现相应的方法,这里给出之前投票系统的一些需求方法

package vote.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;



import values.ApplyValue;
import values.VoteInfoValue;



public class ControlDB {
//	public List executeQueryRole(String sql) throws Exception {
//		ResultSet rs = null;
//		List list = new ArrayList();
//		Connection con = null;
//		Statement stmt = null;
//		try {
//			con = ConnectionFactory.getConnection();
//			stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
//					ResultSet.CONCUR_UPDATABLE);
//			rs = stmt.executeQuery(sql);
//			while (rs.next()) {
//				Role role = new Role();
//				int i = 1;
//				role.setId(rs.getInt(i++));
//				role.setAdmins(rs.getString(i++));
//				role.setPass(rs.getString(i++));
//				role.setSitename(rs.getString(i++));
//				role.setCheck(rs.getInt(i++));
//				role.setVotename(rs.getString(i++));
//				list.add(role);
//			}
//		} catch (Exception e) {
//			throw e;
//		} finally {
//			DatabaseUtils.closeObject(rs, stmt, con);
//		}
//		return list;
//	}
	public boolean executeQueryToVote(String sql) throws Exception {
		boolean temp=false;
		ResultSet rs = null;
		Connection con = null;
		PreparedStatement ps=null;
		try {
		con = ConnectionFactory.getConnection();
		ps=con.prepareStatement(sql);
		
		rs = ps.executeQuery(sql);
		System.out.println("在executeQueryToVote里面");
		while (rs.next()) {
			temp=true;
		}
		} catch (Exception e) {
			throw e;
		} finally {
			CloseDateBase.closeObject(rs, ps, con);
		}
		System.out.println(temp);
		return temp;
	}
	public List<ApplyValue> executeQueryVoteIfoVal(String sql) throws Exception {
		ResultSet rs = null;
		List list = new ArrayList();
		Connection con = null;
		PreparedStatement ps=null;
		//Statement stmt = null;
		try {
//			Class.forName(driverName);
//			//2.得到连接
//			cn=DriverManager.getConnection(url,"root","root");
//			System.out.println("111");
//			PreparedStatement ps=cn.prepareStatement(sql);
//			
//			
//			ps.setObject(1, userid);
//			ps.setObject(2, password);
//			ResultSet rs=null;
//			rs=ps.executeQuery();
//			
//			if(rs.next()){
			con = ConnectionFactory.getConnection();
			ps=con.prepareStatement(sql);
			
			rs = ps.executeQuery(sql);
			System.out.println("在得链表的db里面");
//			while(rs.next()){
//				FdyValue fv=new FdyValue();
//				fv.setT_name(rs.getString("t_name"));
//				fv.setT_password(rs.getString("t_password"));
//				fv.setT_user(rs.getString("t_user"));
//				fv.setT_grade(rs.getString("t_grade"));
//				System.out.println("执行赋值操作");
//				fdyList.add(fv);
//				
			while (rs.next()) {
				System.out.println("准备拿到");
				VoteInfoValue vote = new VoteInfoValue();
				
				vote.setvId(rs.getInt("vId"));
				vote.setvStuId(rs.getString("vStuId"));
				vote.setvApyId(rs.getString("vApyId"));
				vote.setvTime(rs.getString("vTime"));
				
				
				list.add(vote);
				System.out.println("成功拿到");
			}
		} catch (Exception e) {
			throw e;
		} finally {
			CloseDateBase.closeObject(rs, ps, con);
		}
		return list;
	}

	public List<ApplyValue> executeQueryVote(String sql) throws Exception {
		ResultSet rs = null;
		List<ApplyValue> list = new ArrayList<ApplyValue>();
		Connection con = null;
		PreparedStatement ps=null;
		//Statement stmt = null;
		try {
//			Class.forName(driverName);
//			//2.得到连接
//			cn=DriverManager.getConnection(url,"root","root");
//			System.out.println("111");
//			PreparedStatement ps=cn.prepareStatement(sql);
//			
//			
//			ps.setObject(1, userid);
//			ps.setObject(2, password);
//			ResultSet rs=null;
//			rs=ps.executeQuery();
//			
//			if(rs.next()){
			con = ConnectionFactory.getConnection();
			ps=con.prepareStatement(sql);
			
			rs = ps.executeQuery(sql);
			System.out.println("在得链表的db里面");
//			while(rs.next()){
//				FdyValue fv=new FdyValue();
//				fv.setT_name(rs.getString("t_name"));
//				fv.setT_password(rs.getString("t_password"));
//				fv.setT_user(rs.getString("t_user"));
//				fv.setT_grade(rs.getString("t_grade"));
//				System.out.println("执行赋值操作");
//				fdyList.add(fv);
//				
			while (rs.next()) {
				System.out.println("准备拿到");
				ApplyValue vote = new ApplyValue();				
				vote.setA_id(rs.getInt("apId"));
				vote.setA_stuid(rs.getString("apStuId"));
				vote.setA_name(rs.getString("apname"));				
				vote.setA_isOk(rs.getInt("apisOK"));
				vote.setA_job(rs.getInt("apType"));	
				vote.setVcount(rs.getInt("apCount"));
				vote.setSex(rs.getString("sex"));
				vote.setZzmm(rs.getString("zzmm"));
				vote.setSzbm(rs.getString("szbm"));
				vote.setXrzw(rs.getString("xrzw"));
				vote.setFirstApp(rs.getString("firstApp"));
				vote.setSecondApp(rs.getString("secondApp"));
				vote.setDifferent(rs.getString("different"));
				vote.setActivities(rs.getString("activities"));
				vote.setWorkAndValue(rs.getString("workAndValue"));
				vote.setAwards(rs.getString("awards"));
				vote.setBirthday(rs.getString("birthday"));
				vote.setPhone(rs.getString("phone"));
				vote.setQq(rs.getString("qq"));
				vote.setScore(rs.getString("score"));
				vote.setRank(rs.getString("rank"));
				vote.setSums(rs.getString("sums"));
				vote.setSum(rs.getString("sum"));
				vote.setInfo(rs.getString("info"));
				vote.setObey(rs.getString("obey"));
				
				list.add(vote);
				System.out.println("成功拿到");
			}
		} catch (Exception e) {
			throw e;
		} finally {
			CloseDateBase.closeObject(rs, ps, con);
		}
		return list;
	}

	public int executeQueryVoteCounts(String sql) throws Exception {
		ResultSet rs = null;
		//List<ApplyValue> list = new ArrayList<ApplyValue>();
		Connection con = null;
		PreparedStatement ps=null;
		int num = 0;
		try {
			con = ConnectionFactory.getConnection();
			ps=con.prepareStatement(sql);
			rs = ps.executeQuery(sql);
			while (rs.next()) {
				num = rs.getInt(1);
			}
			System.out.println("得到sum了");
			System.out.println(num);
		} catch (Exception e) {
			throw e;
		} finally {
			CloseDateBase.closeObject(rs, ps, con);
		}
		return num;
	}
	public String GetexecuteQueryShuJiStudentName(String sql) throws Exception {
		ResultSet rs = null;
		//List<ApplyValue> list = new ArrayList<ApplyValue>();
		Connection con = null;
		PreparedStatement ps=null;
		String name=null;
		try {
			con = ConnectionFactory.getConnection();
			ps=con.prepareStatement(sql);
			rs = ps.executeQuery(sql);
			while (rs.next()) {
				name = rs.getString("sname");//这边可能需要修改
			}
			System.out.println("得到sum了");
			System.out.println(name);
		} catch (Exception e) {
			throw e;
		} finally {
			CloseDateBase.closeObject(rs, ps, con);
		}
		return name;
	}

	public void executeUpdate(String sql) throws Exception {
		//ResultSet rs = null;
		Connection con = null;
		PreparedStatement ps=null;
		
		
		try {
			con = ConnectionFactory.getConnection();
			ps=con.prepareStatement(sql);
			ps.executeUpdate(sql);
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			CloseDateBase.closeObject( ps, con);
		}
	}
}

最后记得数据的关闭

/Vote/src/vote/db/CloseDateBase.java

package vote.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class CloseDateBase {

	public static void closeObject(ResultSet rs, PreparedStatement ps, Connection con) {
		closeObject(rs);
		closeObject(ps, con);
	}

	public static void closeObject(PreparedStatement ps, Connection con) {
		closeObject(ps);
		closeObject(con);
	}

	public static void closeObject(Connection con) {
		try {
			if (con != null) {
				con.close();
			}
		} catch (Exception e) {
		}
	}

	public static void closeObject(ResultSet rs) {
		try {
			if (rs != null) {
				rs.close();
			}
		} catch (Exception e) {
		}
	}

	public static void closeObject(PreparedStatement ps) {
		try {
			if (ps != null) {
				ps.close();
			}
		} catch (Exception e) {
		}
	}

}


到此就差不多结束了;当然为了让读者认识更深入

讲下mvc 

一般 :

创建model

userDAO类写接口

userDAOIMPL实现接口

这些接口要的方法可以就是上面数据库增删改查的方法;

举个例子


package vote.dao;

public interface UserDao {
	public String checkRegister(String stuid);//根据学号得到用户名判断用户名是否一样
	public boolean checkRegStuid(String stuid);//判断学号是否存在
public boolean checkInfo(String stuid,String password);
public void updateLoginTime(String stuid);
public void insertNewUser(String stuid,String stuName,String password, String email);

}


package dao.impl;

import vote.dao.UserDao;
import vote.db.ControlDB;
import vote.utils.ConvertUtil;
//用户信息
public class UserDaoImpl implements UserDao {
	ControlDB controlDB = null;

	public UserDaoImpl() {
		controlDB = new ControlDB();
	}
	@Override
	public boolean checkInfo(String stuid, String password) {
		boolean temp=false;
		
		String sql = "  SELECT * FROM `UserInfo` WHERE `stuId` = "+stuid+" and `stuPass` ="+"'"+password+"'";
		System.out.println(sql);
		try {
			temp = controlDB.executeQueryToVote(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return temp;
	}


	public void updateLoginTime(String stuid) {
		// TODO 自动生成的方法存根
		ConvertUtil cu=new ConvertUtil();
		String nowtime=cu.getTime();
		String sql = " UPDATE `UserInfo` SET `lastLogin`='"+nowtime+"' WHERE `stuId` ="
				+ stuid;
		System.out.println("the update sql="+sql);
		try {
			System.out.println("执行更新语句");
			controlDB.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	@Override
	public void insertNewUser(String stuid, String stuName, String password ,String email) {
		// TODO 自动生成的方法存根
		ConvertUtil cu=new ConvertUtil();
		String nowtime=cu.getTime();
		String sql = "insert  into UserInfo values (null,'"+stuName+"','"+password+"',"+"'"+nowtime+"','"+stuid+"','"+email+"')";
		System.out.println(sql);
		try {
			System.out.println("执行增加user语句");
			controlDB.executeUpdate(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	@Override
	public String checkRegister(String stuid) {
		String name=null;
		
		String sql = "  SELECT * FROM `student` WHERE `sno` = "+stuid;
		System.out.println(sql);
		try {
			name = controlDB.GetexecuteQueryShuJiStudentName(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return name;
	}
	@Override
	public boolean checkRegStuid(String stuid) {
		boolean temp=false;
		
		String sql = "  SELECT * FROM `userInfo` WHERE `stuId` = "+stuid;
		System.out.println(sql);
		try {
			temp = controlDB.executeQueryToVote(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return temp;
	}

}

如果还有什么疑问 欢迎拍砖^_^

版权声明:本文为博主原创文章,未经博主允许不得转载。