首先是:
/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; } }
如果还有什么疑问 欢迎拍砖^_^
版权声明:本文为博主原创文章,未经博主允许不得转载。