一.JDBC是什么?
Java DataBase Connection(类似于IO).
二.JDBC怎样实现传输?
JDBC利用Driver来连接不同的数据库。如Oracle, SQL Server, MySql , DB2.
Driver(驱动):本质上是一个程序
1.它是JDBC技术的实现。
2.总的来说与数据库相关(因为java部分是固定的,而数据库有很多种需要不同的驱动去适应它)
3.Driver类型: A:JDBC-ODBC桥
B:纯本地实现
C:部分JAVA实现
D:纯JAVA实现
三.JDBC可以用一套固定的接口去跟不同的数据库进行交互
需要掌握如下接口:Driver, Connection, Statement, PreparedStatement, ResultSet。
实现:跟IO类似,一边Out,一边In。
不同的是输出的不是流,而是SQL语句。
思路:
JAVA——>数据库
1.建立跟数据库的连接
1.1装在驱动 class.forName(“驱动名称”)
1.2打开连接 Connection conn = DriverManeger.getConnection(URL,用户名,密码);
2.执行SQl语句
2.1得到执行SQL语句的接口
Statement stmt = conn.createStatement();
或 PreparedStatement pstmt = conn.PreparedStatement(String sql);
2.2执行SQL语句
stmt.executeUpdate(sql);
或 pstmt.setString(1,值);
pstmt.executeUpdate();
2.3 关闭连接
conn.close();
stmt.close();
pstmt.close();
数据库——>JAVA
1.建立跟数据库的连接
1.1装在驱动 class.forName(“驱动名称”)
1.2打开连接 Connection conn = DriverManeger.getConnection(URL,用户名,密码);
2.执行SQL语句
2.1得到执行SQL语句的接口
Statement stmt = conn.createStatement();
或 PreparedStatement pstmt = conn.PreparedStatement(String sql);
2.2执行取值,获得从数据库返回的结果集
3.从ResultSet中获取数据(rs相当于游标)
while(rs.next())
a.按名称取值 rs.getString(“字段名”);
b.按索引取值 rs.getString(索引下标);
两种方法都是对照ResultSet的。
4.关闭连接
conn.close();
rs.close();
stmt.close();
pstmt.close();
*用preparedStatment是指预编译的SQL语句,是静态的。
String sql = “…………(?,?,?,?)”
将字段名用?代替
pstmt.setString(索引,值);
pstmt.setInt(索引,值);
pstmt.executeUpdate();
而Statement是动态的。
四.事务:
保证数据库正确
A.原子性:事务的内部操作为一个整体,要么都成功,要么都失败。
B.一致性:数据操作前后要满足相同的规则。
C.隔离性:事物内部数据对外的可见性和可操作性。
D.稳定性:无论发生任何事情,事务都要保证数据能正确保存到数据库中。
默认情况下,JDBC将一条数据库语句是为一个完整的事务。
可以关掉默认事务管理: conn.setAutoCommit(false);
在执行完事务后应提交事务:conn.commit();
conn.rollback();
需要时可以取消事务:conn.close();
五.批量操作
Statement stmt = conn.createStatement();
stmt.addBatch(sql); //将多个sql打包
stmt.executeBatch();//批量执行
JDBC笔记整理
最新推荐文章于 2023-09-07 17:22:05 发布