单例设计模式的简单应用

来源:互联网 发布: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包
      • 测试类
      • 目录


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 比选 比那氏漱口水 比那氏漱口水的正确使用方法 沃那比蛇 比那 真的话假的话都比不了那句话 比邻而居韩漫51话 韩漫比邻而交第48 比邻而居 比邻星 比邻而交免费版 比邻而交免费阅读 比邻而交40话游泳课免费 比邻下载 韩漫比邻而交第39话 比邻而交韩漫50集免费观看 比邻而居韩漫 韩漫比邻而交第38章免费 比邻app 韩漫比邻而交原版 韩漫比邻而交 比邻而交韩漫 比邻而交34 比邻而交40话免费阅读 比邻巫羽 暗夜比邻星 2019新比邻在哪里下载 韩漫比邻而交第48话免费 漂亮干娣娣比邻而交43 比邻app下载 比邻怎么玩 比邻软件 比邻的意思 下载比邻 比邻什么意思 比邻铃声下载 比邻公司 聊天软件比邻 亚太比邻 对比邻 比邻乡村美式家具