当前位置:Gxlcms > 数据库问题 > JDBC操作

JDBC操作

时间:2021-07-01 10:21:17 帮助过:22人阅读

Driver 核心接口
所有的驱动类都必须实现这个接口。
DriverManager 驱动管理类

  • 所有注册到内存中的合法驱动类都会被这个类所管理,可以通过驱动管理列
  • 获取和每一个数据的连接。 Connection 代表和数据库的连接负责数据库中的事务管理

Statement 用来执行SQL命令
PreparedStatement
CallableStatement
ResultSet 代表查询语句的结果集

 

3.如何学习JDBC?

学习JDBC api
api:一套预定义好的函数,用来实现某种特定功能。
一些类和方法 连接和操作数据库
JDBC api分为两个版本:

  1. 企业版
  • 用来告诉数据库厂商如何按照标准制定
  • 自己的驱动程序。驱动程序开发指南。

         2.程序员版

  • 教给程序员如何使用JDBC操作数据库。
  • java.sql.*;


JDBC编程六大步骤:

  • 1)注册驱动

三种方式:

  • a)使用反射机制加载驱动类对象

//1.把指定类加载到内存中
//2.获取该类的镜像对象
Class.forName(String className);
参数:驱动类的全限类名(全包名+类名)
推荐使用。
反射机制可以把代码写灵活。

  • b)直接实例化驱动类对象

全限类名:oracle.jdbc.driver.OracleDriver
Driver driver = new OracleDriver();
//接口类的引用指向实现类对象

  • c)使用系统参数

Properties是一种比较小型的、特殊的Map集合
只能用来存放String类型的键值对。
常用于做配置文件。
在系统参数中添加如下参数:
jdbc.drivers=oracle.jdbc.driver.OracleDriver
System.setProperty(String key,String value);

唯一的目的:把驱动类加载到内存中。

  • 2)获取和数据库的连接(Connection对象)

两种方式:

  • a)DriverManager.getConnection(url,user,password);

url:统一资源定位符
jdbc:oracle:thin:@127.0.0.1:1521:XE
jdbc:oracle:thin:@localhost:1521:XE
user:登录数据库时所使用的账号
password:登录数据库时所使用的密码

  • b)driver.connect(url,info);

driver是一个驱动类对象。
必须和注册驱动的方式二连用。
Properties:一种特殊的保存键值对的数据结构。
key和value必须都是String字符串。
常用于做配置文件
info中需要包含两组键值对(用来指定账号和密码):
"user","账号"
"password","密码"
.properties

  • 3)创建执行SQL命令的statement对象

Statement
执行异构SQL命令效率较高
不需要进行预编译
PreparedStatement
执行同构的SQL命令效率较高
需要进行预编译
CallableStatement
执行PL/SQL命令。

异构:
select id,last_name from s_emp;
delete from s_dept;

同构:
insert into s_student values(1,‘tom‘,22);
insert into s_student values(2,‘jack‘23);
insert into s_student values(3,‘lucy‘,24);

预编译:
预先提供一个SQL模板,用于后续动态地向模板中
传入不同的值。
?:先行占位,后面再用具体的值代替掉问号
insert into s_student values(?,?,?);

  • 4)编写SQL命令、执行SQL命令

三种方法:都可以执行任何SQL命令。
boolean execute();
如果结果为true则代表有结果集,
如果为false则代表没有结果集。
int executeUpdate();
返回值代表有多少条数据受到了影响。
适用于DML语句。
ResulSet executeQuery();
适用于select查询语句。

  • 5)处理结果集(只针对select查询语句)
  • 6)释放资源

原则:后开的先关 先开的后关

4.JDBC事务管理机制

  • Connection对象充当事务管理者。 默认处理机制:自动提交事务
  • 每次执行完毕DML语句之后,
  • JDBC都会自动向数据库发送一条提交事务的命令。
  • 设置手动提交事务:
  • conn.setAutoCommit(boolean flag);
  • flag为true代表设置为自动提交,
  • flag为false代表设置为手动提交事务。
  • 提交事务:
  • 1)conn.commit();
  • 2)st.execute("commit");
  • 5.jdbc的批处理
  • 批处理:批量发送和执行sql命令
  • 使用于大批量的执行sql命令


执行一条sql命令的过程:

  • 1 在客户端编写sql命令
  • 2客户端和服务器端创建链接
  • 3.发送sql命令到服务器段
  • 4服务器端执行sql命令
  • 客户端和数据库服务器使用tcp协议经行链接

tcp:在经行数据传输之前要先穿件链接——“”三次握手

//将某条sql命令添加到批处理空间
addBatch(String sql);

 


//执行批处理
//将批处理空间中的sql命令一次性打包发送给数据库执行
executeBatch();


JDBC中批量执行SQL命令的效率影响因素
1)是否使用批处理
2)是否自动提交事物;
3 执行sql命令的对象
Statement -- 执行易购的sql命令效率较高
preparedStatement --执行同构sql命令效率较高

执行效率测试:
向 s_teacher表中插入50000条数据
1 使用Statement、不适用批处理、事务自动提交
2 使用PreparedStatement\使用批处理

实体 :一类具有相同特点的事物抽象出来的集合
实体在数据库中以数据库表的形式体现。
实体在java中以pojo类的形式体现。

pojo类:
不继承任何父类,也不行实现任何借口。
所有有的成员变量都要是私有的。
给出对应的

 

JDBC操作

标签:cut   localhost   rman   设置   flag   color   sqlserver   boolean   sqlite   

人气教程排行