JDBC

文章目录

  • 概述
  • 使用步骤
    • 1. 加载驱动
      • 1)new 对象 (不推荐)
        • 缺点
      • 2)加载子类
      • 3)调用类中的静态成员
      • 4)通过反射
        • 优点
    • 2. 获取连接
    • 3. 执行增删改查操作
      • 方式一getXXX(列的索引)
      • 方式二getXXX(列名)
      • 方式三getObject(索引or列名)
    • 4. 关闭连接
  • Statement和PreparedStatement
    • PreparedStatement 好处

概述

java database connectivity ,java 和数据库的连接技术,sun公司推出的一套java应用程序访问数据库的技术规范。
规范:抽象类或者接口
在java中,数据库存取技术可以分为如下几类

  • JDBC直接访问数据库
  • JDO技术(Java Data Object)
  • 第三方O/R工具,如Hibernate,Mybatis等
    JDBC是java访问数据库的基石,JDO,Hibernate等只是更好的封装了JDBC。

没有JDBC,应用程序访问数据库。
JDBC_第1张图片
有了JDBC,应用程序访问数据库
JDBC_第2张图片

使用步骤

1. 加载驱动

类加载的时机

1)new 对象 (不推荐)

DriverManager.deregisterDriver(new Driver());

缺点

依赖性太强,属于编译期加载,如果编译期间该类不存在,直接报编译错误。
导致Driver对象创建了两遍,效率较低。

2)加载子类

3)调用类中的静态成员

4)通过反射

Class.forName(“com.mysql.jdbc.Driver”);

优点

运行时加载,编译时候没有不会报错,大大降低了类的依赖性。
Driver对象仅仅创建了1遍,效率较高。

2. 获取连接

DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?user=root&password=test”);
配置文件方式(推荐)
Properties info = new Properties();
String url = info.getProperty("url)
DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?user=root&password=test”);

3. 执行增删改查操作

statement.executeQuery(sql);
statement.execute(sql);

方式一getXXX(列的索引)

getInt(1): 5
getString(2):allen

方式二getXXX(列名)

getInt(“id”):5
getString(“name”):Allen

方式三getObject(索引or列名)

4. 关闭连接

Statement和PreparedStatement

PreparedStatement 好处

  1. 不再使用+拼接sql语句,减少语法错误,语义性强
  2. 将模板sql(固定的部分)和参数部门进行了分离,提高维护性
  3. 有效的解决了sql注入问题
  4. 大大减少了编译次数,效率高。对于一个模板,编译好了放入cache,以后再次使用从缓存中拿。

参考:
https://www.bilibili.com/video/BV12b411K7Zu?p=308

你可能感兴趣的:(JDBC)