JDBC

prepareStatement:设置预编译
通过预编译,设置占位符 避免sql注入
在这里插入图片描述

JDBC:是一种用于执行sql的javaAPI,可以为多种关系型数据库进行统一的访问,他是由一组java语言编写的类和接口组成的。JDBC提供的一种基准,根据这些基准可以构建更高级的工具或者接口

JDBC常用的接口:
1、Driver接口
Driver接口是数据库厂商来提供的,作为java开发人员,我们只需要使用Driver接口就可以了
加载驱动
Class.forname(“com.mysql.jdbc.Driver”);

2、Connection接口
当前接口是与特定数据库进行连接的(会话),在连接上下文中执行sql语句并且返回结果集。
DriverManager.getConnection();
DriverManager java提供的专用于加载驱动底层驱动的一个类。驱动管理器。

连接mysql地址:jdbc:mysql://ip:端口/数据库名称
连接oracle地址:jdbc:oracle:thin:@host:port:database

Connection提供了一系列的方法:

createStatement:返回一个statement
prepareStatement:返回预编译sql对象
prepareCall:调用存储过程

3.Statement接口

Statement sta =xxxx;
For(int i=0;i<1000;i++){
sta.addBatch(“insert into t_user xxxxx”)
这里并不是执行了sql语句,而是放到了批量执行列表中
}

sta.executeBatch()

4.resultSet(默认光标指向第一行)
(1) Next()将光标移动到下一个元素。如果没有则返回false
(2)Previous()将光标移动到前一个元素
(3)absolute(in row)将光标移动到指定行
(4)First()
(5)Last()
在这里插入图片描述

5.关闭资源
推荐的关闭流程:ResultSet–PrepareStatement–Connection

1.Statement 和 preparestatement驱动
2.Jdbc执行流程
3.结果集获取的原理
4.反射(还没讲到)
5.在jdbc中调用存储过程
6.Jdbc表现了什么思想:面向接口变成

事务

什么是事务:
一组要么同时执行成功、或者同时执行失败的sql语句集,他是数据库操作的一个执行单元。
在数据库创建了一个单元,单元里面放好多条sql。Sql语句的执行需要依赖于单元的操作。

购物:下单下了订单后,库存就应该减少。Insert into t_order update t_book set number=number_xx 应该放在一个单元执行,要么同时成功要么同时失败。

事务操作针对 增删改语句。查询语句不管。

在数据库中执行事务:commit
回滚事务:rollback

事务的ADIC特性:
A(atomicity):原子性:在一个事务内的操作都是一个整体,要么同时成功,要么同时失败。
C(consistency):一致性:表示一个事务内某个执行失败,所有更改过的数据全部回滚到修改之前的状态
I(isolation)隔离性:在并发运行下,多个事务可能交叉执行,为了保证每一个事务的准确性,需要将这些事务进行隔离。
隔离级别:低–所有人可以同时操作。 高–必须等我操作完别人才可以操作

D(durability):持久性一旦完成事务操作,对数据库的数据影响是永久的。(提交完断电了,下次看还是保存好的)

在这里插入图片描述
仅仅执行了这句话,并不会修改磁盘数据库的内容,因为没有提交事务,把默认提交事务设置成了false(默认是true 自动提交)
在这里插入图片描述
在这里插入图片描述
如果添加了手动提交事务,那么提交后就可以修改数据库了。
在这里插入图片描述
可以在try catch里面添加回滚功能,当执行了非法的语句的时候数据库可以自动回滚到执行前 状态。

面试题:关系型数据库的核心:表(两个表通过外键连接)

ORM:object relation model 关系对象映射:一种程序技术,为了解决关系型数据库和对象之间的阻抗

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值