JDBC
Posted CoDeiSlifE
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。
第一章
http://www.cnblogs.com/erbing/p/5805727.html
- JDBC
Java Data Base connetivity:Java数据库连接 - 下载jdbc驱动
https://dev.mysql.com/downloads/connector/j/
.jar文件就是所需要的驱动,把jar文件添加到工程中
- JDBC编程流程:
- 加载驱动程序 Class.forName(driverClass)
- 加载MySql驱动:Class.forName("com.mysql.jdbc.Driver")
- 加载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver")
- 获得数据库连接
Connection conn = DriverManager.getConnection("jdbc://127.0.0.1:3306/xxxname","root","root") - 创建Statement对象
Statement st = conn.createStatement() - 执行语句
ResultSet rs = st.excuteQuery()等 - 处理结果
while(rs.next()){...} - 清理环境
rs.close()
st.close()
conn.close()
//1,加载驱动 Class.forName("com.mysql.jdbc.Driver"); //2,获得连接 Connection conn = DriverManager.getConnection(url, username, password); //3创建Statement Statement st = conn.createStatement(); //4.执行语句 ResultSet rs = st.executeQuery(sql); //5,处理结果 while(rs.next()){ } //6,清理环境 rs.close(); st.close(); conn.close();
- Statement接口和PrepareStatement接口
- 后者是前者的子接口
- Statement为一条Sql语句生成执行计划,每次查询都会生成一个查询计划 ,而PrepareStatement使用占位符,通过set不同数据 可以生成一次执行计划,可以重用
- PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程
- 使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处
- statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理
-
CallableStatement接口继承自 preparedstatement接口,由方法prepareCall创,用于调用存储过程
- 事务transaction
一组要么同时执行成功,要么同时执行失败的sql语句,是数据库操作的一个执行单元
执行DML语句时事务开始
执行COMMIT或ROLLBACK语句,事务结束。执行一条DDL或DCL语句,会自动执行COMMIT;执行一条DML,但该语句却失败了,会自动执行ROLLBACK
特点:- 原子性
一个事务中的所有操作是一个整体,要么全成功,要么全失败 - 一致性
如果一个事务内,有一个操作失败,那么其他修改过的数据都要恢复到修改前的状态 - 隔离性
一个事务查看数据所处的状态,是另一个并发事务修改前或者修改后的状态,不会是中间状态;一个事务的执行不能影响其他事务 - 持久性
事务完成之后,对系统的影响是永久性的;事务一旦提交,就会永久保存在数据库中,这时即使再回滚也不会撤销所做的更改
- 原子性
try { conn.setAutoCommit(false);//自动提交设置为false pst.executeQuery("查询sql");//执行查询 pst.executeUpdate("更新sql");//执行更新 conn.commit();//两个都操作成功后手动提交事务 } catch (Exception e) { conn.rollback();//一旦有一个操作失败,事务回滚 e.printStackTrace(); }
以上是关于JDBC的主要内容,如果未能解决你的问题,请参考以下文章