单例设计模式的简单应用
来源:互联网 发布:mac ruby rvm 编辑:程序博客网 时间:2024/05/29 14:11
欢迎使用Markdown编辑器写博客
dao包
package com.bdqn.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.bdqn.utils.Constants;public class BaseDao { //获取连接 static Connection conn=null; public static Connection getConnection(){ String driver=Constants.getInstance().getValue("driver"); String url=Constants.getInstance().getValue("url"); String user=Constants.getInstance().getValue("user"); String pwd=Constants.getInstance().getValue("pwd"); try { Class.forName(driver); conn=DriverManager.getConnection(url, user, pwd); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } //关闭资源 public static void close(Connection conn){ try { if (conn!=null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //增删改 public static int update(String sql,Object [] objects){ int num = 0; PreparedStatement ps=null; try { conn=getConnection(); ps=conn.prepareStatement(sql); if (objects!=null && objects.length>0) { for (int i = 0; i < objects.length; i++) { ps.setObject((i+1), objects[i]); } } num=ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return num; } //模糊查询 public static ResultSet getResultSet(String sql,Object [] objects){ PreparedStatement ps=null; ResultSet rs=null; try { conn=getConnection(); ps=conn.prepareStatement(sql); if (objects!=null && objects.length>0) { for (int i = 0; i < objects.length; i++) { ps.setObject((i+1), objects[i]); } } rs=ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rs; }}
package com.bdqn.dao;import java.util.List;import com.bdqn.entity.Student;public interface StudentDao { public int insert(Student stu);//增加 public int delete(int sid);//删除 public int update(Student stu);//修改 public List<Student> selectAllStudents();//分页查询 public List<Student> selectStudents(String sname);//模糊查询(根据名字查询) public List<Student> selectStudents(int gid);//根据班级编号查询}
package com.bdqn.dao;import java.util.List;import com.bdqn.entity.Grade;public interface GradeDao { public int insert(Grade grade);//增 public int delete(int gid);//删 public int update(Grade grade);//改 public List<Grade> selectAllGrade();}
bean包
package com.bdqn.entity;import java.io.Serializable;public class Grade implements Serializable{ private int gid; private String gname; public Grade() { } public Grade(int gid, String gname) { this.gid = gid; this.gname = gname; } public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } public String getGname() { return gname; } public void setGname(String gname) { this.gname = gname; } @Override public String toString() { return "Grade [gid=" + gid + ", gname=" + gname + "]"; }}
package com.bdqn.entity;import java.io.Serializable;public class Student implements Serializable{ private int sid; private String sname; private int sage; private String shobby; private int gid; public Student() { } public Student(int sid, String sname, int sage, String shobby, int gid) { this.sid = sid; this.sname = sname; this.sage = sage; this.shobby = shobby; this.gid = gid; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } public String getShobby() { return shobby; } public void setShobby(String shobby) { this.shobby = shobby; } public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage + ", shobby=" + shobby + ", gid=" + gid + "]"; }}
impl包
package com.bdqn.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.bdqn.dao.BaseDao;import com.bdqn.dao.StudentDao;import com.bdqn.entity.Student;public class StudentImpl extends BaseDao implements StudentDao{//增 @Override public int insert(Student stu) { String insertSql="insert into student values(?,?,?,?,?)"; Object [] objects={stu.getSid(),stu.getSname(),stu.getSage(),stu.getShobby(),stu.getGid()}; int num=this.update(insertSql, objects); return num; }//删 @Override public int delete(int sid) { String deleteSql="delete from student where sid=?"; Object [] objects={sid}; int num=this.update(deleteSql, objects); return num; }//改 @Override public int update(Student stu) { String updateSql="update student set sname=?"; Object [] objects={stu.getSname()}; int num=this.update(updateSql, objects); return num; }//模糊查询(根据名字查询) @Override public List<Student> selectStudents(String sname) { String sql = "select * from student where sname like '%?%'"; List<Student> list=null; try { ResultSet rs=this.getResultSet(sql, null); list=new ArrayList<Student>(); while (rs.next()) { Student stu=new Student(); int id=rs.getInt("sid"); String name=rs.getString("sname"); int age=rs.getInt("sage"); String hobby=rs.getString("shobby"); int gid=rs.getInt("gid"); stu.setSid(id); stu.setSname(name); stu.setSage(age); stu.setShobby(hobby); stu.setGid(gid); list.add(stu); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }//根据班级编号查询 @Override public List<Student> selectStudents(int gid) { String sql = "select * from student where gid=?"; List<Student> list=null; try { ResultSet rs=this.getResultSet(sql, null); list=new ArrayList<Student>(); while (rs.next()) { Student stu=new Student(); int id=rs.getInt("sid"); String name=rs.getString("sname"); int age=rs.getInt("sage"); String hobby=rs.getString("shobby"); int gid1=rs.getInt("gid"); stu.setSid(id); stu.setSname(name); stu.setSage(age); stu.setShobby(hobby); stu.setGid(gid1); list.add(stu); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }//分页 查询 @Override public List<Student> selectAllStudents() { String sql = "select * from student"; List<Student> list=null; try { ResultSet rs=this.getResultSet(sql, null); list=new ArrayList<Student>(); while (rs.next()) { Student stu=new Student(); int id=rs.getInt("sid"); String name=rs.getString("sname"); int age=rs.getInt("sage"); String hobby=rs.getString("shobby"); int gid=rs.getInt("gid"); stu.setSid(id); stu.setSname(name); stu.setSage(age); stu.setShobby(hobby); stu.setGid(gid); list.add(stu); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }}
package com.bdqn.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.bdqn.dao.BaseDao;import com.bdqn.dao.GradeDao;import com.bdqn.entity.Grade;import com.bdqn.entity.Student;public class GradeImpl extends BaseDao implements GradeDao{ @Override public int insert(Grade grade) { String insertSql="insert into student values(?,?)"; Object [] objects={grade.getGid(),grade.getGname()}; int num=this.update(insertSql, objects); return num; } @Override public int delete(int gid) { String deleteSql="delete from student where gid=?"; Object [] objects={gid}; int num=this.update(deleteSql, objects); return num; } @Override public int update(Grade grade) { String updateSql="update student set gname=?"; Object [] objects={grade.getGname()}; int num=this.update(updateSql, objects); return num; } @Override public List<Grade> selectAllGrade() { String sql = "select * from student"; List<Grade> list=null; try { ResultSet rs=this.getResultSet(sql, null); list=new ArrayList<Grade>(); while (rs.next()) { Grade grade=new Grade(); int id=rs.getInt("gid"); String name=rs.getString("gname"); grade.setGid(id); grade.setGname(name); list.add(grade); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; }}
utils包
package com.bdqn.utils;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class Constants { private static Constants constants; private static Properties properties; private Constants(){ InputStream is=null; try { properties=new Properties(); is=Constants.class.getClassLoader().getResourceAsStream("database.properties"); properties.load(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static synchronized Constants getInstance(){ if (constants==null) { synchronized(Constants.class){ if (constants==null) { constants=new Constants(); } } } return constants; } public String getValue(String key){ return properties.getProperty(key); }}
测试类
package com.bdqn.test;import java.util.List;import com.bdqn.dao.GradeDao;import com.bdqn.dao.StudentDao;import com.bdqn.dao.impl.GradeImpl;import com.bdqn.dao.impl.StudentImpl;import com.bdqn.entity.Grade;import com.bdqn.entity.Student;public class Test { public static void main(String[] args) { StudentDao sdao=new StudentImpl(); GradeDao gdao=new GradeImpl(); /** * 学生的全查 */ List<Student> list1=sdao.selectAllStudents(); for(Student stu : list1){ System.out.println(stu.toString()); } /** * 模糊查询 */ /*List<Student> list2=sdao.selectStudents("a"); for(Student stu : list2){ System.out.println(stu.toString()); }*/ /*List<Grade> list3=gdao.selectAllGrade(); for(Grade grade : list3){ System.out.println(grade.toString()); }*/ }}
目录
用 [TOC]
来生成目录:
- 欢迎使用Markdown编辑器写博客
- dao包
- bean包
- impl包
- utils包
- 测试类
- 目录
阅读全文