zoukankan      html  css  js  c++  java
  • JDBC总结

    一、JDBC概述

    1、Java Data Base Connectivityjava数据库连接)

    2、组成包:java.sql.*;javax.sql.*;这两个包都包含在了JDK中。

    3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现

    二、JDBC的编码步骤

    1、把数据库的驱动加入到classpath

    2、开发步骤:

     * 开发步骤:(必须记住的)

     * 1、注册驱动

     *  2、获取与数据库的链接

     *  3、得到代表发送和执行SQL语句的对象 Statement

     *  4、执行语句

     *  5、如果执行的是查询语句,就会有结果集,处理

     *  6、释放占用的资源

    3、具体代码

    三、JDBC中的主要接口或类

    1、DriverManger类详解

    1.1作用:a、注册驱动b、获取与数据库的链接

    1.2改进注册驱动:(不能依赖具体的数据库驱动

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());

    缺点:严重依赖具体的驱动类;会导致驱动被注册2次。

    替代方案:Class.forName("com.mysql.jdbc.Driver");

    1.3获取与数据库的链接

    l 方式一:(推荐)

    DriverManager.getConnection("jdbc:mysql://localhost:3306/day17", "root", "sorry");

    jdbc:mysql://localhost:3306/day17  SUN和数据库厂商定义的协议,具体的参考数据库的文档。

     jdbc:mysql:///day17 (链接本机的默认端口3306)= jdbc:mysql://localhost:3306/day17

    u 方式二:

    l 方式三:

    2、Connection简介

    所有的与数据库的交互都是基于链接的基础之上的,因此该对象相当重要。

    Statement stmt = conn.createStatement():创建向数据库发送sqlstatement对象

    3Statement详解

    作用:代表SQL语句;向数据库发送并执行SQL语句

    常用方法:

    ResultSet executeQuery(String sql):只适合查询,返回的是查询的结果集

    int executeUpdate(String sql):适合DML,或者没有返回结果集的DDL,返回的是影响的记录行数

    boolean execute(String sql):执行任何的SQL语句,返回的不是成功与否。有结果集的返回true,没有返回false

    4、ResultSet详解

    作用:代表者查询语句的查询结果集

    4.1遍历过程:有一个游标,如何遍历结果集,请看图

    4.2如何获取列的数据

    方式一:(推荐)

    方式二:了解

    4.3常用的方法:(改变游标位置的)

    l boolean next():向后移动游标,同时返回该位置上有木有记录

    l boolean previous():向前移动游标,同时返回该位置上有木有记录

    l boolean absolute(int rowNum):定位到某行(第一行是1),同时返回该位置上有木有记录

    l void beforeFirst():游标定位在第一行的前面

    l void afterLast():游标定位在最后一行的后面

    l last():直接定位到最后一行

    小练习:取出最后一条记录

    4.4遍历结果集打印到控制台木个鸟用,应该封装到JavaBean

    5、释放占用的资源

    按照打开的顺序,以相反的方向进行释放。

    Connection要尽量晚的创建和尽量早的释放。

    为了保障资源能被释放,应该放到finally代码块中

    四、JDBC的编码规范和工具类的提取

    1、编写配置文件:

    2、抽取了工具类

    3、以后代码的编写

    五、JDBC进行CRUD

    六、利用JDBC改写用户注册案例

    1、更改JavaWeb项目的访问路径(由其是拷贝的整个项目)

    2、SQL注入的问题

    3、解决:使用PreparedStatement

    七、JDBC中的PreparedStatement

    1、特点和作用

    a、指示SQL语句的预编译。提高数据库的执行效率

    b、防止SQL注入。给数据库的已经不是字符串了

    c、语句中的参数可以使用占位符(?)

    结论:能用PreparedStatement就不要使用Statement

    八、理解Dao解耦的好处(很关键)

    九、客户信息管理系统

    用之前所学完成一个对单表的CRUDJavaWeb项目

    1、搭建开发环境:写配置文件,考jar

    2、建立JavaBean,建立业务接口

    3、编写业务实现和dao接口及dao实现

    4、对业务层和dao层进行测试

    5、表现层

      

  • 相关阅读:
    (原)试问那些不劳而获的人?
    (原)资源互换原则
    (原)关于与人沟通时的几个中文语法
    osgviewer读取dxf文件,拣选高亮功能小结
    qt的OSG视图中拣选对象事件消息
    1)OSG与QT单文档视图的结合
    三维渲染引擎设计与实践(八)
    三维渲染引擎设计与实践(七)
    三维渲染引擎设计与实践(六)
    三维渲染引擎设计与实践(五)
  • 原文地址:https://www.cnblogs.com/bwcx1375/p/7113392.html
Copyright © 2011-2022 走看看