JDBC知识总结

关系
UI—-jdbc—数据库
数据库–jdbc–显示UI界面
制定统一操作关系数据库的标准。

ODBC –采用统一的方式操作不同关系的数据库 用c语言编写
Microsift提出的数据库访问接口标准
JDBC –采用统一的方式操作不同的关系数据库 用java语言编写
由sun公司提供的

JDBC Api分两部分
1、提供给开发者的一组 独立于数据库的API
对数据库的操作都可以用这组API进行,是
一个标准,由sun公司提供。java.sql包中。
那么要把这些通用API翻译成特定数据库能懂得指令
就需要JDBC Driver来实现了
2、提供给面向JDBC驱动程序开发商的编程接口
他会把我们通过JDBC api发给数据库的通用指令翻译给自己的
数据库,由数据库厂商提供驱动,必须实现java.sql.Driver接口
是具体的实现

JDBC的四种类型
a、JDBC-ODBC驱动
把java语言转c语言 效率很低;
b、部分java实现的本地驱动
把java语言转c语言 线路低 必须安装客户端
c、纯java实现的网络驱动
使用数据库的特殊协议
d、纯java实现的本地驱动
采用TCP/IP协议进行通信

Oracle只支持2,4驱动
现在采用第四种thin驱动
Driver驱动 oracle.jdbc.driver.OracleDriver
url jdbc:oracle:thin:@localhost:1521:XE

工作原理流程
装载驱动程序---->获得数据库连接--->使用statement执行sql语句
返回执行的结果---->关闭相关连接

url标识一个唯一的数据库
可以安装一个数据库 配置很多个数据库系统
url由数据库厂商提供

JDBC编程步骤
statement版
//反射 加载驱动类
Class.forName(driverName);
//建立连接
Connection conn = DriverManager.getConnection(url,user,passwd);
//创建发送sql语句的对象
Statement st = conn.createStatement();
//创建sql语句
String sql = ” ……”;
//执行sql语句
execute(sql):执行任何sql语句,返回boolean 代表是否有结果集
executeQuery(sql)执行sql查询语句 返回结果集
executeUpdate(sql) 执行DMLsql语句 返回受影响行数
适合insert update delete
//接收结果集
ResultSet rs = st.executeQuary(sql);
//遍历结果集
while(rs.next){
String str = rs.getString(“字段名/下标”)
int str = rs.getint(“字段名/下标”)
}

PrepareStatement
//创建sql语句
String sql = "insert into s_people values (?,?,?,?)";
//预处理
PrepareStatement pst = conn.prepareStatement(sql);
//再传入值
pst.execute()/pst.executeQuery();

批处理版
//设置commit为手动
conn.setAutoCommit(false);
//设置把命令存入缓存
pst.addBatch();
//执行缓存中的命令
pst.executeBatch();
//执行commit
conn.commit();
//遇到exception回滚
conn.rollback();

statement和preparestatement
statement
a、执行异构sql语句效率更高
b、创建对象和执行sql语句
createStatement();
c、动态sql语句使用字符串拼接的方式
d、不会进行预编译
prepareStatement
a、执行同构的sql语句效率更高
b、创建对象和执行sql语句
c、动态sql语句使用?
d、会进行预先编译传入的是字符串

CallableStatement 执行sql/pl语句

prepareStatement能识别 a' or 1='1 此类sql漏洞

关闭资源 先开后关 后开先关

面向对象编程和关系型数据库映射的对应关系
表———类
字段——-属性
一行数据—对象
外键——-has a
双向关联 单项关联
private 类名 对象

private set<类名> 对象名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值