PreparedStatement 执行sql
try{conn.setAutoCommit(false); //设置不会自动提交
stmt = conn.createStatement();
stmt.executeQuery("SELECT * FROM temp_info");
stmt.executeUpdate("UPDATE temp_info SET ip='***.***.***.***'");
conn.commit(); //提交事务
System.out.println("Ok!");
conn.close();
}catch(SQLException e){try{conn.rollback(); // 操作不成功,回滚事务
}catch(SQLException r){System.out.println(r.getMessage());
}
System.out.println(e.getMessage());
}
PreparedStatement批量处理和事务代码如下:
/* * PreparedStatement: 1.addBatch() 将一组参数添加到 PreparedStatement对象内部 2.executeBatch() 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 * */
public class PreparedStatementCommitAndRollback { public static void main(String args[]) { Connection con = null; PreparedStatement pstm = null; try { // 1. 建立与数据库的连接 con = JDBCUtil.getConnection(); // 2. 执行sql语句 // 1).先创建PreparedStatement语句(发送slq请求): pstm = con.prepareStatement("insert into student values(?,?,?,?)"); con.setAutoCommit(false);//1,首先把Auto commit设置为false,不让它自动提交 // 2) 设置sql语句1 pstm.setInt(1, 33); pstm.setString(2,"wangqin"); pstm.setString(3, "c++"); pstm.setDouble(4, 78.5); // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 pstm.addBatch(); // 2) 设置sql语句2 pstm.setInt(1, 34); pstm.setString(2,"wuytun"); pstm.setString(3, "c"); pstm.setDouble(4, 77); // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 pstm.addBatch(); // 2) 设置sql语句3 pstm.setInt(1, 31); pstm.setString(2,"tetet"); pstm.setString(3, "c++"); pstm.setDouble(4, 90); // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 pstm.addBatch(); // 2) 设置sql语句4 pstm.setInt(1, 32); pstm.setString(2,"liug"); pstm.setString(3, "c"); pstm.setDouble(4, 50); // 3) 将一组参数添加到此 PreparedStatement 对象的批处理命令中。 pstm.addBatch(); // 4) 将一批参数提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。 pstm.executeBatch(); System.out.println("插入成功!"); // 若成功执行完所有的插入操作,则正常结束 con.commit();//2,进行手动提交(commit) System.out.println("提交成功!"); con.setAutoCommit(true);//3,提交完成后回复现场将Auto commit,还原为true, } catch (SQLException e) { try { // 若出现异常,对数据库中所有已完成的操作全部撤销,则回滚到事务开始状态 if(!con.isClosed()){ con.rollback();//4,当异常发生执行catch中SQLException时,记得要rollback(回滚); System.out.println("插入失败,回滚!"); con.setAutoCommit(true); } } catch (SQLException e1) { e1.printStackTrace(); } }finally{ JDBCUtil.closePreparedStatement(pstm); JDBCUtil.closeConnection(con); } }
}
PreparedStatement 执行sql相关推荐
- 使用preparedStatement执行sql语句 20210411094249744
目标 使用preparedStatement对象操作sql语句 实现登陆的功能 编写代码 import java.sql.*; import java.util.Scanner;public clas ...
- JDBC中使用PreparedStatement执行SQL语句并管理结果集
基本说明 1.使用PreparedStatement在对反复操作多条结构相似的SQL语句时效率更高,并且可以使用参数替代变量,可以防止SQL注入. 2.PreparedStatement也提供了 ex ...
- java代码执行mysql语句_三种执行SQL语句的的JAVA代码
问题描述: 连接数据库,执行SQL语句是必不可少的,下面给出了三种执行不通SQL语句的方法. 1.简单的Statement执行SQL语句.有SQL注入,一般不使用. public static voi ...
- mysql执行sql语句按钮_mysql执行sql语句过程
开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...
- PreparedStatement批量执行sql
2019独角兽企业重金招聘Python工程师标准>>> 案例: 工具方法: public static Connection getConnection(){try {Class.f ...
- JDBC查看Preparedstatement执行的sql语句
通过JDBC4查看 String sql = "select * from user where uname = ?"; //执行sql语句 ps=conn.prepareStat ...
- java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- mybatis 创建session, 缓存, 执行SQL
案例代码, 上一个博客已经分析了 SqlSessionFactory 的 build , 本文内容部分知识基于上篇的文章 mybatis 的初始化, build 这节我们分析, 开启session, ...
- java执行sql文件_面试官:MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...
最新文章
- 轻松学习LINUX系列教程推出
- android sdk版本控制,1. 统一SDK版本管理配置
- [转]互联网产品经理必上的九个资讯+分析类网站
- java文件名大小_java 比较指定文件夹内.txt文件名的大小
- 转载:磁盘分区,一篇很好的文章
- 一步步编写操作系统 23 重写主引导记录mbr
- EOSIO:EOSIO最新版1.4.0创建测试账户
- 容器编排技术 -- Kubernetes kubectl create deployment 命令详解
- 使用com.alibaba.fastjson.JSONObject构造简单的JSON数据
- OpenCv之绘图(笔记03)
- MySQL的SQL预处理(Prepared)
- Python爬虫采集网易云音乐热评实战
- 一文看懂数字孪生,工信部权威白皮书
- Beyond Compare linux
- JS中国标准时间格式转换字符串
- T430系统盘迁移到SSD上的经验
- ms-sql数据类型和access数据类型大全
- EOJ 3344.送命题
- 【工具】windows--word转PDF
- 蓝牙突然消失,ubuntu连接音箱没有声音问题