0323.JDBC review

/*
JDBC:(Java Database Connectivity)即Java数据库连接
使用JDBC编写的程序可以实现 跨数据库、跨平台,具有非常优秀的可移植性。
是一种可以执行SQL (Structured Query Language 即结构化查询语句) 的Java API。
当需要数据库之间切换时,只需要更改不同的实现类(即数据库驱动)。
Sun公司提供的JDBC可以完成以下三个基本功能:(通过这三个功能,程序即可 访问、操作 数据库系统)
建立与数据库的连接;
执行SQL语句;
获得SQL语句的执行结果。
JDBC驱动常有4种类型:P567。
ODBC:(Open Database Connectivity)开放数据库连接。Microsoft的。
JDBC比ODBC更简单、直观、安全性更高、容易部署。
--------------------------------------------------------------------------------------------------------------------------------------------------------
JDBC 4.2 常用接口和类:P602

DriverManager:用于管理JDBC驱动的服务类,主要功能是获取 Connection对象。
Connection con=DriverManager.getConnection ( String url , String user , String password ) ;
URL通常写法:jdbc:subprotocol:other stuff
MySQL的URL:jdbc:mysql://hostname:port/databasename
("jdbc:mysql://127.0.0.1:3306/database_name","root","password")
Oracle的URL:jdbc:oracle:thin:@hostname:port:databasename

Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。
常用方法:Statement stmt = con.createStatement() throws SQLException;
PreparedStatement pstmt = con.prepareStatement(String sql) throws SQLException;
CallableStatement cstmt = con.prepareCall(String sql) throws SQLException;
以上三个方法都返回用于执行SQL语句的Statement对象,只有获得了Statement对象后才可以执行SQL语句。
PreparedStatement 和 CallableStatement是Statement的子类
还有几个用于控制事务的方法:P602

Statement:用于执行SQL语句的工具接口。
可以用于执行 SQL查询语句:主要由select关键字完成;
DML(Data Manipulation Language,数据操作语言)语句:insert、update、delete;
DDL(Data Definition Language,数据定义语言)语句:create、alter、drop、truncate;
DCL(Data Control Language,数据控制语言)语句:grant、revoke。
Statement常用方法:
ResultSet executeQuery(String sql) throws SQLException:
只能用于执行查询语句,返回查询到的ResultSet结果集;
int executeUpdate(String sql) throws SQLException:
用于DML(返回受影响的行数)、DDL(返回0);
boolean execute(String sql) throws SQLException:
可执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;
执行后第一个结果为受影响行数或没任何结果,则返回false。
PreparedStatement:预编译的Statement对象。是Statement的子接口。P603
比Statement多了如下方法:
void setXxx(int parameterIndex , Xxx value):传入的值根据索引传给SQL语句中指定位置的参数。

ResultSet:结果集对象。
该对象包含访问查询结果的方法,可以通过列索引或列名获得数据。
包含了如下常用方法来 移动记录指针:
void close();
bollean absolute(int row);
void beforeFirst();
boolean first();
boolean previous();
boolean next();
boolean last();
void afterLast();
记录指针移动到指定行后,ResultSet可通过如下方法获取当前行、指定列 的值:
getXxx(int columnIndex);
getXxx(String columnLabel);
<T> T getObject(int columnIndex,Class<T> type);
<T> T getObject(int columnLabel,Class<T> type);
--------------------------------------------------------------------------------------------------------------------------------------------------------
JDBC编程步骤:
1、加载数据库驱动
Class.forname("com.mysql.jdbc.Driver");好像等同于com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();
("oracle.jdbc.driver.OracleDriver"); 又好像JDBC 4 以后可以不用写Class.forname方法了。
2、通过DiverManager获取数据库连接
Connection con=DriverManager.getConnection ( String url , String user , String password ) ;
3、通过Connection对象创建Statement对象。
Statement stmt=con.createStatement();
4、使用Statement执行SQL语句
Result rs=stmt.executeQuery("select * from tablename");
5、操作结果集P605有个图
6、回收数据库资源,包括关闭ResultSet、Statement、Connection等资源。
2 3 4 可以写到try()里,try语句在该语句结束时自动关闭这些资源。相当于包含了隐式的finally块(Java7)
这些资源实现类必须实现AutoCloseable或Closeable接口,实现这两个接口就必须实现close()方法。
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值