zoukankan      html  css  js  c++  java
  • JDBC原理

    • JDBC的简介

    Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

    1. jdbc是用Java来操作数据库
    2. jdbc 的维护是由sun公司 ==>主要是提供一些连接数据库的类或者接口(规范),还提供了连接数据库的协议

    - Jdbc的开发原理

    jdbc是有sun公司提供了一些接口(一种规范),主要用于来对接数据库厂商,数据 库厂商根据提供了一些规范 来给用户提供使用(提供一套能够访问到自己服务器的一套代码)驱动来操作数据库

    在这里插入图片描述

    - jdbc的开发流程

    1. 通过反射来加载驱动包得到Driver对象
    2. 使用DervieManger 来获取连接对象
    3. 得到执行sql的对象
    4. 得到返回结果
    5. 关闭资源

    -jdbc的操作步骤

    1. 新建一个文件 这文件 lib 用于存放jar包
      在这里插入图片描述
    2. 下载驱动包 :下载的地址:https://dev.mysql.com/downloads/connector/j/5.1.html

    在这里插入图片描述

    1. 添加项目依赖
      在这里插入图片描述
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    -总结

    1.jdbc 主要是使用Java来操作数据库 其实连接数据库的桥梁(中介)

    2.jdbc的使用步骤【面试题】:

    1.加载(驱动)数据库驱动到JVM【利用反射Class.forname】
    2.建立获取数据库连接【DriverManager.getConnection】
    3.通过DriverManager 来获取操作数据库对象Statement
    4. 定义操作的sql语句
    5.执行数据库操作
    6.获取操作的结果集 resultset

    7.关闭对象,回收数据库资源【关闭结果集--关闭数据库--关闭连接】


    注:关闭资源 从下往上关闭

    3. preparedSatement 优点【面试题】 :

    1.预编译减少sql的编译错误,增加sql的安全性
    2.防止sql注入 安全性更高 效率更高
    3.由于其预编译可以将优化后的SQL缓存起来,下次执行相同的结构的语句快
    4.preparedSatement 注意点 : 

    • 使用?占位符来替换需要拼接的值
    • 占位符的索引是从1开始
    • setInt(“索引”,”具体需要替换的值”);
    • setObject(“索引”,”具体需要替换的值”)

    4. 使用JDBC操作数据库时,如何提升读取数据的性能?

        如何提升更新数据的性能?【面试题】

    1.通过结果集对象的setFetchSize()方法指定每次抓取的记录数

    2.使用PreparedStatement语句构建批处理,将若干SQL语句置于一个批处理中执行




    5. junit 测试

      1. 其实就是定义一个方法来替代main来直接运行
      2. 方法定义的注意事项: 需要使用public 来修饰
      3. 不能有返回值
      4. 不能传递参数
      5. 加上注解 @Test
      6. 封装 :
        1. 配置资源文件只需要加载一次 使用静态代码块
        2. 工具类的对象只需要实例化一次 单例设置模式
          1.私有的属性
          2.私有构造
          3.提供一个公有的方法返回这个对象
        3. BaseDao
          1.获取连接对象
          2.增删改(sql,数组,返回值是int)
          3.查询(sql,数组,返回值是是一个结果集)
          4.关闭资源的方法
  • 相关阅读:
    7月的尾巴,你是XXX
    戏说Android view 工作流程《下》
    “燕子”
    Android开机动画bootanimation.zip
    戏说Android view 工作流程《上》
    ViewController里已连接的IBOutlet为什么会是nil
    My first App "Encrypt Wheel" is Ready to Download!
    iOS开发中角色Role所产生的悲剧(未完)
    UIScrollView实现不全屏分页的小技巧
    Apple misunderstood my app,now my app status changed to “In Review”
  • 原文地址:https://www.cnblogs.com/nastu/p/13815854.html
Copyright © 2011-2022 走看看