JDBC ConncetionFactory、Statement、事务提交模式和事务隔离级别和批量处理的应用
来源:互联网 发布:peid 0.94优化版 编辑:程序博客网 时间:2024/05/20 18:00
JDBC ConncetionFactory、Statement、事务提交模式和事务隔离级别和批量处理的应用
创建配置文件和ConncetionFactory类
sqlite.driver=org.sqlite.JDBCsqlite.url=jdbc:sqlite:E:/SQLite3/StudentManageSystem.dbsqlite.user=sqlite.password=oracle.driver=oracle.jdbc.driver.OracleDriveroracle.url=jdbc:oracle:thin:@" + "host:port:databaseNameoracle.user=**oracle.password=**mysql.driver=com.mysql.jdbc.Drivermysql.url=jdbc:mysql://host:port:databaseNamemysql.user=**mysql.password=**
package cjx913;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;public class ConnectionFactory {private static String DRIVER;private static String URL;private static String USER;private static String PASSWORD;static{Properties properties = new Properties();InputStream is = ConnectionFactory.class.getResourceAsStream("jdbcinfo.properties");try {properties.load(is);//加载配置文件DRIVER = properties.getProperty("sqlite.driver");//读取文件配置数据库驱动URL = properties.getProperty("sqlite.url");//读取文件配置数据库URLUSER = properties.getProperty("sqlite.user");//读取文件配置数据库用户PASSWORD = properties.getProperty("sqlite.password");//读取文件配置数据库用户密码} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/** * 提供getConnection()方法 * @return Connection */public static Connection getConnection(){Connection conn = null;try {Class.forName(DRIVER);conn = DriverManager.getConnection(URL);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}}
创建Test类,测试代码
package cjx913;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class test {public static void main(String[] args) {insertData();}private static void insertData() {//通过ConnectionFactory建立数据库连接Connection conn = ConnectionFactory.getConnection();//创建PreparedStatement,传输SQL语句或参数PreparedStatement stmt = null;try {//设置事务手动提交模式conn.setAutoCommit(false);//设置事务隔离级别conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);//stmt = conn.prepareStatement("INSERT INTO Teacher(id,name) VALUES(?,?)");for(int i=1;i<=1000;i++){stmt.setInt(1, i);stmt.setString(2, "教师"+i);stmt.addBatch();//将参数传输到stmt缓存中}stmt.executeBatch();//将所有参数传输到数据库批量处理conn.commit();//提交事务} catch (SQLException e) {e.printStackTrace();try {conn.rollback();//回滚事务} catch (SQLException e1) {e1.printStackTrace();}}finally{try {conn.close();//关闭连接} catch (SQLException e) {e.printStackTrace();}}}}
我这里使用SQLite数据库,用的是SQLite数据库JDBC的驱动,
插入数据成功后,再次运行显示错误,
应该是回滚失败。。。。。。
阅读全文
1 0
- JDBC ConncetionFactory、Statement、事务提交模式和事务隔离级别和批量处理的应用
- jdbc事务和事务的隔离级别
- jdbc事务和事务的隔离级别
- jdbc事务和事务的隔离级别
- JDBC和事务的隔离级别
- JDBC: 处理事务 & 事务的隔离级别
- JDBC: 处理事务 & 事务的隔离级别
- 事务和JDBC事务隔离级别
- 事务和JDBC事务隔离级别
- 浅谈事务和事务的隔离级别
- JDBC 事务的传播特性和隔离级别
- JDBC设置事务的隔离级别和转账案例
- JDBC的事务控制和批量处理
- JDBC的事务控制和批量处理
- JDBC的事务控制和批量处理
- 事务和JDBC事务隔离级别(转,比较全面)
- jdbc 事务的隔离级别
- jdbc 事务的隔离级别
- 能金云CEO许瀚丹:利用大数据构建金融风险防控体系
- Vue.js常用组件
- 实现Bresenham提取线段上的所有点(图像栅格化)
- WEB前端面试题查询整理
- SQL Server 2008编程入门经典笔记:事务
- JDBC ConncetionFactory、Statement、事务提交模式和事务隔离级别和批量处理的应用
- windows下安装redis及php安装redis扩展教程
- “GANs 之父”Goodfellow亲身传授:深度学习未来的8大方向和入门AI必备的三大技能
- 【AI 技术精选】神经网络结构深入分析和比较
- Selenium Java自动化测试学习知识积累-我的第一个自动化项目
- 第1032期机器学习日报(2017-07-16)
- 分享一款JS工具:st.js
- 第1033期机器学习日报(2017-07-17)
- 如何使用vs调试.net framework代码 (一)