DAO与JDBC封装

JDBC封装

是面向对象的一种表现形式,主要是面对可相信的对象提供方便,让这类对象具有使用的权利,对其它对象进行拦截,在没有相应权限的情况下是没有使用权利的。

对于一些工具类就是这样的情况,把具体实现的过程封装到类中,只提供你使用的最终接口,只要能实现你的业务就可以,其他的具体操作你没有办法拿到。

封装就是为了将一团分布的东西集中在一起,所以才会有了面向对象的思想,因为将一个具体的事物抽象的放在了一个类中,该类中保存了这个事物的具体属性和行为,
属性就是一个事物的特点,比如:一个人的姓名、身高、体重、性别、年龄等
行为就是一个事物的动作,比如:一个人有吃饭,睡觉,学习的动作

因此,被封装的对象就更加具体化,谁需要访问一个对象的任何成员,就只需要找到该对象就可以了,但是这个对象也有一些成员不想让你看到,比如说每个人都有隐私或者密码,或者不想公开的信息,这些信息,一般人是不知道的,这就是封装。

首先要定义统一的抽象的API,这里可以操作数据的代码抽象成接口,业务处理代码只需要调用这些接口就可以实现对数据的访问,从而隔离实现细节

DAO模式
在面向对象设计过程中,有一些 “套路”用于解决特定问题,称为模式

DAO(DataAccessObjects,数据存取对象)位于业务逻辑和持久化数据之间,实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来,对外提供相应的接口。

DAO模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分离,对上层提供面向对象的数据访问接口。

DAO模式的优势

隔离了数据访问代码和业务逻辑代码,业务逻辑代码直接调用DAO方法即可,完全感觉不到数据库表的存在,分工明确,数据访问层代码变化不影响业务逻辑代码,这符合单一职能原则,降低了耦合性,提高了可复用性。

隔离了不同数据库实现, 采用面向接口编程,如果底层数据库变化,如由MySQL变化Oracle,只要增加DAO接口的新实现类即可,原有MyQSL实现不用修改。在符合“开-闭”原则,降低了代码的耦合性,提高了代码扩展性和系统的课移动植性。

DAO模式主要由以下部分组成

1.DAO接口:把数据库的所有操做定义成抽象方法,可以提供多种实现方式。

2.DAO实现类:针对不同的传输数据库给出DAO接口定义方法的具体实现

3.实体类:用于存放与传输对象数据

4.数据库连接和关闭工具类:避免了数据库连接和关闭代码的重复使用,方便修改

首先获取连接及加载驱动
    public Connection  getConnection(){

        //加载驱动
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, userName, passWord);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            
            e.printStackTrace();
        }
        return connection;

    }

返回数据结果集
    public  ResultSet   getResultSet(String sql){
        PreparedStatement ps=null;
        ResultSet rs=null;
        //获得连接
        try {
            connection= getConnection();
            ps= connection.prepareStatement(sql);
            rs =  ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;

    }

执行增,删,改返回结果

public  int update(String sql,Object[] objects){
        PreparedStatement  ps = null;
        int num=0;
        //获得连接对象
        try {
            connection= getConnection();
            ps=connection.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) {
            
            e.printStackTrace();
        }finally{
            close(connection, ps, null);
        }
        return num;

    }

关闭资源

public  void  close(Connection connection, PreparedStatement ps, ResultSet rs){
    注意:从下往上关
        try {
            if(rs !=null){
                rs.close();
            }
            if(ps !=null){
                ps.close();
            }
            if(connection !=null){
                connection.close();
            }
        } catch (SQLException e) {
        
            e.printStackTrace();
        }
    }

Propertise类

Propertise用来配置文件

它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要 使用数据库文件来保存,而使用一般的文本文件来保存。

Java中配置文件常为Properpise文件,格式为文本文件,文件的内容的格式“键 = 值”格式,注释可以用“#”注释

读取配置文件

Properpise类位于java.util包中,继承Hashtable类

使用java.util.Properties

1、创建一个Properties对象。

2、使用对象的load方法加载你的property文件。
3、使用getProperty方法取值。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值