学习JDBC

JDBC技术

简介

  使用java程序访问(操作)数据库(发送sql语句),这叫用到了jdbc技术.jdbc就是Sun公司设计的一套java程序连接(操作)具体的数据库产品的接口

jdbc的API

Driver接口:驱动程序接口
  Connection connect() 用于连接数据库的方法

Connection接口:代表和数据库的连接
  Statement createStatement() 创建Statement接口的对象
  PreparedStatement prepareStatement(String sql) 创建PrepareStatement接口的对象
  CallableStatement prepareCall(String sql)创建CallableStatement接口的对象

Statement接口:用于执行静态的sql语句
  Int executeUpdate(String sql) 执行DDL和DML语句(更新sql语句)
  ResultSet executeQuery(String sql) 执行DQL语句

  PreparedStatement接口:用于执行预编译的sql语句
    CallableStatement接口:用于执行存储过程的sql,存储过程只能执行查询sql

ResultSet接口:表示数据库结果集
  boolean next() 将光标移至下一行
  getxxx(): 获取结果集中的每列的值

Demo1:
这里写图片描述

jdbc操作步骤

1.注册驱动程序
2.获取连接对象
3.准备sql语句(DDL+DML)
4.创建Statement对象
5.执行sql语句
6.返回结果,处理结果
7.关闭资源

Statement和PreparedStatement

语法不同:
  1.Statement只能执行静态sql
  2.PreparedStatement即可以执行静态sql,也可以执行预编译sql语句

安全性不同:
  1.Statement可以被用户进行sql注入
  2.PreparedStatement不能被用户注入sql,比Statement更安全

执行效率问题:
  1.Statement不能利用数据库sql缓存功能
  2.PreparedStatement可以利用数据库sql缓存功能,比Statement效率更高

结论:建议尽量使用PreparedStatement

JDBC批处理

Statement的批处理:
   void addBatch(String sql) 把sql添加到缓存区中(没有发送的)
   int[] executeBatch() 执行批处理缓存中sql语句(发送到数据库执行)
   void clearBatch() 清空缓存区sql语句

PreparedStatement的批处理:
   void addBatch() 把参数添加到缓存区中
   int[] executeBatch() 执行批处理缓存中所有参数(发送到数据库执行)
   void clearBatch() 清空缓存区参数列表

JDBC处理大容量数据

什么是大容量
  字符::
    text,longtext(4G字符串内容)
  字节:
    blob(65kb),mediumblob(16MB),longblog(4GB)

JDBC如何获取自增长的值

JDBC的事务

innoDB数据库类型: 支持事务。
MyISAM: 不支持事务,但执行效率高。
事务的特性:ACID
原子性(Atomidity):事务是一个不可分割的工作单位.事务中的操作要么都发生,要么都不发生
一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态
隔离性(Isolation):多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事物的操作数据所干扰,多个并发事务之间要相互隔离
持久性(Durability):一个事务一旦被提交,它对数据库的影响是永久性的

事务并发问题:
脏读:一个事务读到了另一个事务没有提交的数据
不可重复读:一个事务读到了另一个事务已提交(update)数据
幻读:一个事务读到了另一个事务已经提交的新插入(insert)的数据

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值