一、什么是JDBC(Java Data Base Connectivity)?
java程序连接数据库,JDBC是由SUN公司提出的一组规范,这组规范主要由一组接口构成,主要作用就是访问数据库。
二、JDBC核心思想【思想重要】
三、核心API【重点】
Java.sql.DriverManager[C] |
工具类,帮助我们管理不同数据库厂商的驱动,我们只需要将驱动jar包交给它,他会为我们创建一个数据库连接对象。 |
Java.sql.Connection[I] |
如果得到了一个connection对象,就意味着连接到了数据库。 |
Java.sql.Statement[I] |
发送sql命令到数据库执行。 |
Java.sql.PreparedStatement[I] |
与statement功能一样,是statement的子接口。 |
Java.sql.ResultSet[I] |
接收数据库返回的结果集(针对于DQL) |
四、使用JDBC进行开发
1.搭建开发环境
创建一个java projectà引入驱动jar包到项目中
第一种方式:右键—>build path àconfigure build path à[Libraries]àaddExternal jar
第二种方式:右键—》new folderàlibà将jar放入文件夹—》add build path[建议使用]
首先这张图介绍了jdbc的作用 提供了一个接口,这样做 可以有两个作用 1.可以方便的切换数据库 只需要加载不同的驱动也就是jdbc的实现类
第二个作用是避免了 数据库厂商提供原码。
所以在这里我们需要获取3个对象
Connection 数据库连接
PreparedStatement/Statement 发送sql
ResultSet 结果集DQL
代码实现重要的6步
//1.加载驱动-->将实现类加载到虚拟机中 Class.forName("oracle.jdbc.OracleDriver"); //2.获取连接 url:统一资源标识符,互联网中获取某一资源的方式 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr"); //3.书写sql语句 String sql="insert into t_User(userid,username,ages) values(1000,‘张翰‘,100)"; //4.发送sql语句--创建一个发送sql语句的对象 Statement stmt = conn.createStatement(); int count = stmt.executeUpdate(sql); System.out.println("受影响行数="+count); //5.关闭资源 先打开的后关闭 if(stmt != null){ stmt.close(); } if(conn != null){ conn.close(); }
不知道小伙伴们看了这个代码是不是也和小编我一样充满了疑问,于是我就上网查找了一些资料了解一下
1.为什么只需要写这一个步骤就可以了,就完成了将驱动加载到虚拟机中
//1.加载驱动-->将实现类加载到虚拟机中 Class.forName("oracle.jdbc.OracleDriver");
首先要先了解一下类加载 ,类加载是什么
类加载: 当JVM第一次使用一个类时, 找到这个类对应的字节码文件, 通过IO流读入这个文件中的类的信息, 并保存起来. 一个类只会加载一次
类加载时机:
第一次创建对象
第一次调用类的静态方法, 或访问类的静态成员
加载子类时, 会先加载父类
类加载的过程:
如果需要, 先加载父类
按代码顺序, 初始化静态属性, 或是运行静态初始代码块
类加载的产物:
类对象 : 储存了一个类的信息 Class类的对象
由于驱动本质上还是一个class,将驱动加载到内存和加载普通的class原理是一样的:使用Class.forName("driverName")。以下是将常用的数据库驱动加载到内存中的代码:
Class.forName()将对应的驱动类加载到内存中,然后执行内存中的static静态代码段,代码段中,会创建一个驱动Driver的实例,放入DriverManager中,供DriverManager使用。
例如,在使用Class.forName() 加载oracle的驱动oracle.jdbc.driver.OracleDriver时,会执行OracleDriver中的静态代码段,创建一个OracleDriver实例,然后调用DriverManager.registerDriver()注册: 待续。。。。。。
解释一下每个意思
//2.获取连接 url:统一资源标识符,互联网中获取某一资源的方式 jdbc:oracle:thin:@localhost:1521:xe", "hr", "hr"
原文:https://www.cnblogs.com/zhulina-917/p/11382360.html