zoukankan      html  css  js  c++  java
  • JDBC—DAO

    一、JDBC

    什么是JDBC?
    JAVA DataBase Connectivity (Java 数据库连接技术)
    由Java编写的一组类和接口组成,为各种类型的数据库提供
    统一的访问。
    JDBC的作用?
    一种将程序数据持久化到数据库的机制。
    JDBC的组成?
    1:JDBC API 主要做三件事:
    与数据库建立连接/发送SQL语句/处理结果
    2:JDBC Driver Manager 驱动程序管理器
    3:JDBC驱动 不同的数据库需要不同的驱动,这些驱动都实现
    了JDBC API中的各种接口。

    JDBC访问数据库的步骤?
    1:加载JDBC驱动
    2:与数据库建立连接
    3:发送SQL语句并得到返回的结果
    4:处理返回结果
    (Structured Query Language)

    两种常用的驱动方式:
    1:JDBC-ODBC桥连方式连接数据库
    2:纯Java方式连接数据库
    ------------------------------
    常见的连接数据库错误:
    1、驱动名错误
    2、数据连接字符串,数据库用户名,输错
    3、数据库操作结束,没有关闭数据库连接,占用系统资源
    4、关闭数据库连接的语句没放到finally语句中,可能不被执行

    1. (一)JDBC-ODBC连接数据库

    1、在不需要ResultSet对象,Statement对象,Connection对象的时候,显示地关闭它们
    public void close() throws SQLException
    2、要按照,先ResultSet结果,后Statement,最后
    Connectiond的顺序关闭资源。因为ResultSet是通过Statement执行SQL命令得到的,而Statement是需要在创建连接之后才可以
    使用的。
    3、用户如果不关闭ResultSet,当Statement关闭,重新执行或
    用于多从结果序列中获得下一个结果时,该ResultSet将自动关闭

    1. (二)纯JAVA方式连接数据库

     

    (三)常用的5个对象

     

    Connection,DriverManager(略,见用例)

     

    1、Statement常用方法

    2、ResultSet常用方法

     

    3、PreparedStatement的介绍

     

    a : PreparedStatement接口继承自Statement接口:(优点):

    1.提高了代码的可读和可维护性

    2.提高了SQL语句的执行性能

    3.提高了安全性( or '1'='1' 注入拼接攻击)

     

    b : PreparedStatement接口的使用

    使用PreparedStatement的execute(String sql)方法执行sql语句如果是查询的话返回true,如果是更新或插入的话就返回false所以执行插入或更新语句应该使用executeUpdate():

    (1) 返回SQL 数据操作语言 (DML) 语句的行数

    (2) 对于无返回内容的 SQL 语句,返回 0。

     

    c : statement和preparedStatement的区别:

    1.statement每次执行sql语句,相关数据库都要执行拼接sql语句的编译,preparedstatement是预编译的,代码可重用支持批处理。使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

    2: statement需要拼接sql语句,preparedstatement的sql语句可以用变量替换,达到代码重用的好处

    3.安全性:传递给Statement的字符串参数会自动被驱动器忽略。传递给PreparedStatement对象的参数可以被强制进行类型转换,使开发人员可以确保在插入或查询数据时与底层的数据库格式匹配。

     

    d : 使用PreparedStatement操作数据库的三步骤:

    1.创建PreparedStatement对象

    2.设置每个输入参数的值

    3.执行SQL语句

     

    PreparedStatement用例

     

     

    JDBC用例:

     

     

    二、JDBC—DAO模式

     

    什么是DAO?
    1:Data Access Objects :数据存储对象:
    2:DAO指位于业务逻辑和持久化数据之间实现对持久化数据的访
    问,也就是将数据库操作都封装起来,对外提供相应的接口
    3:[采用面向接口,有利于代码的,低耦合高类聚原则]
    DAO的优势?
    1:隔离业务逻辑代码和数据访问代码
    2:隔离不同数据库实现
    DAO的组成?
    1:DAO接口 把对数据库的所有操作定义为抽象方法
    2:DAO实现类 不同数据库给出的DAO接口定义方法的具体实现
    3:实体类 用于存放和传输对象数据
    4:数据库连接和关闭工具
    避免了数据库连接和关闭代码的重复

     

  • 相关阅读:
    PAT (Advanced Level) Practice 1054 The Dominant Color (20 分)
    PAT (Advanced Level) Practice 1005 Spell It Right (20 分) (switch)
    PAT (Advanced Level) Practice 1006 Sign In and Sign Out (25 分) (排序)
    hdu 5114 Collision
    hdu4365 Palindrome graph
    单链表查找最大值、两个递增的链表合并并且去重
    蓝桥杯-最短路 (SPFA算法学习)
    蓝桥杯-最大最小公倍数
    Codeforces-470 div2 C题
    蓝桥杯-地宫取宝
  • 原文地址:https://www.cnblogs.com/domi22/p/8059268.html
Copyright © 2011-2022 走看看