单例设计模式的简单应用

欢迎使用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]来生成目录:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值