一,前言
了解JDBC的概念,掌握JDBC中常用的类和方法,掌握JDBC的基本操作步骤
二,概念
SUM公司为了简化开发人员的(对数据库的统一)操作,提供了一个(Java操作数据库的)规范,俗称JDBC。
这些规范的实现有具体的厂商去做,对于开发人员来说,只需掌握JDBC接口的操作即可。
三,JDBC中重要的类
类名 | 作用 |
---|---|
Driver | 数据库驱动,用于获取Connection对象 |
DriverManager | 驱动管理器,用于注册驱动,是获取 Connection对象的入口 |
Connection | 数据库连接,用于获取Statement对象、管理事务 |
Statement | sql执行器,用于执行sql |
PreparedStatement | 表示预编译的SQL语句的对象。 |
ResultSet | 结果集,用于封装和操作查询结果 |
1.Driver类
位于导入的jar包中,是所有JDBC驱动程序需要实现的接口,不同的数据库厂商提供不同的实现。
在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现
//mysql驱动 com.mysql.jdbc.Driver //oracle驱动 oracle.jdbc.driver.OracleDriver
2.DriverManager类
在java.sql这个包里面,管理一组 JDBC 驱动程序的基本服务。叫作驱动管理对象,获取数据库连接。
//1.加载数据库的驱动 Class.forName("com.mysql.jdbc.Driver"); //2.获取数据库连接 DriverManager.getConnection(url, "postgres", "888888");
3.Connection
Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息。
常用方法:
//获取执行sql 的对象 Statement createStatement() PreparedStatement prepareStatement(String sql) //管理事务 setAutoCommit(boolean autoCommit): 开启事务,调用该方法设置参数为false,即开启事务 commit(): 提交事务 rollback(): 回滚事务
4.Statement
sql执行器,用于执行sql。
常用方法:
//可以执行任意的sql boolean execute(String sql); // 执行DML(insert、update、delete)语句、DDL(create,alter、drop)语句 //返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。 int executeUpdate(String sql); //执行DQL(select)语句 ResultSet executeQuery(String sql);
5.PreparedStatement
sql预编译执行器,用于执行预编译的sql。
常用方法:
String sql = "INSERT INTO `表名` VALUER (?,?,?,?,?)" void set数据类型(int parameterIndex, 数据类型 obj) 将指定的参数设置为给定的对象。
6.ResultSet
结果集对象,封装查询结果
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果 集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。
常用方法:
rs.previous();//向前滚动 rs.next();//向后滚动 rs.getRow();//得到当前行号 rs.absolute(n);//光标定位到n行 rs.relative(int n);//相对移动n行 rs.first();//将光标定位到结果集中第一行。 rs.last();//将光标定位到结果集中最后一行。 rs.beforeFirst()//将光标定位到结果集中第一行之前。 rs.afterLast();//将光标定位到结果集中最后一行之后。 rs.moveToInsertRow();//光标移到插入行 rs.moveToCurrentRow();//光标移回到调用 rs.moveToInsertRow()方法前光标所在行
四,JDBC操作步骤
//前提已导入驱动jar包 //1.加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2.用户信息和url,url:使用Unicode中文编码,使用utf8字符集,使用安全的连接 String url = "jdbc:mysql://localhost:3306/库名/+ jdbcstudy?useUnicode=true&characterEncoding=utf8&useSSL=true"; String name = "root"; String passWord = "123456"; //3.连接成功,数据库对象,Connection代表数据库 Connection con = DriverManager.getConnection(url,username,password); //4.执行SQL的对象,Statemnt 执行sql的对象 Statemnt stat = con.createStatement(); //5.执行SQL的对象 去 执行SQL,可能存在的结果,查看返回结果 String sql = "SELECT * FROM `表名`"; ResultSet rs = stat.executeQuery(SQL);//返回结果集 while(rs.next()){ System.out.println(rs.get数据类型(`字段名1`)); System.out.println(rs.get数据类型(`字段名2`)); ... } //6.释放连接,按照后开先关的顺序关流 rs.close(); stat.close(); con.close();