zoukankan      html  css  js  c++  java
  • 从jdbc到分层的飞跃

    1.在Java中,如何把各种数据存入数据库,实现增删改查呢?

    答:通过JDBC技术实现对各种数据库的访问。

          JDBC( Java DataBase Connectivity)Java数据库连接技术的简称。

          由一组Java语言编写的类和接口组成,可以为多种数据库提供统一访问。

    2. JDBC API 提供了java应用程序与各种不同数据库交互的标准接口。

       Connection 连接接口  :   负责连接数据库,并传送数据

     Statement  接口    :   由Connection产生,负责执行sql语句

       ResultSet   结果集接口  :   负责保存、处理Statement执行后产生的查询结果。

       PreparedStatement接口  :Statement的子接口,也由Connection产生,同样负责执行sql语句。sql语句中用? 占位符,防止sql 语句拼接的注入。

    3. JDBC 驱动

      JDBC Driver Manager  位于java.sql包中,负责管理各种不同的JDBC驱动。

    4.JDBC访问数据库的步骤

      1)加载JDBC驱动

        

      2)与数据库建立连接

        

      3)发送Sql语句

        

      4)处理返回结果

        a)处理增加语句的返回结果

         

     

              b)处理查询语句的返回结果

        

    二、分层 

    我们现阶段学的分层就是把要实现不同功能的类,放在不同的包中,这些包的命名有嵌套层次。

    下图是flat模式下各个包的关系

    下图是包继承结构图下的包形式:

      

    DAO 数据访问对象 :Data Access Objects 

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

    DAO模式将数据访问业务  和业务逻辑分离,对上层提供面向对象的数据访问接口。

    一个典型的DAO模式主要有DAO接口,DAO实现类,实体类组成,

    基于代码复用,再创建一个数据库连接和关闭的工具类,我们写的工具类中包括封装的增删改方法,和查询方法。

    如:

    cn.s2227.dao.imple包   dao的impl层 : StudentDaoImpl的实现类,继承BaseDao类,实现IStudentDao接口,适配器开发模式。

    cn.s2227.entity包    entity  层   : 实体类Student

    cn.s2227.service 包   service 层  : 接口 IStudentService

    cn.s2227.service.impl包    impl 层 : 实现类 StudentServiceImpl 实现了IStudentServie接口

    cn.s2227.test 包   test    :main方法,最后的测试类

    1. BaseDao工具类中 四个内容

      1)获取连接的方法

      2)关闭资源的方法

    3)增、删、改的标准方法,根据业务需要传入sql语句

      4)查询的方法 

    2. IStudentDao 接口 

      增、删、改、查四个抽象方法

    3. dao.impl   中 StudentDaoImpl 类继承BaseDao,实现IStudentDao ,

        重写了IStudentDao接口中的增、删、改、查四个方法。

        每个方法可以有单元测试。  

        单元测试的Junit4 包 ,可以 通过 Build Path 的add Libarary 添加

  • 相关阅读:
    Problem 1014 xxx游戏 暴力+拓扑排序
    Codeforces Beta Round #10 D. LCIS
    HDU 1423 Greatest Common Increasing Subsequence LCIS
    Codeforces Round #349 (Div. 1) A. Reberland Linguistics dp
    BZOJ 3875: [Ahoi2014]骑士游戏 dp+spfa
    Codeforces Round #360 (Div. 2) E. The Values You Can Make 01背包
    Codeforces Round #360 (Div. 2) D. Remainders Game 中国剩余定理
    UVALive 4872 Underground Cables 最小生成树
    POJ 1182 食物链 并查集
    山东省第六届ACM省赛
  • 原文地址:https://www.cnblogs.com/sunnylife2004/p/6685015.html
Copyright © 2011-2022 走看看