java方法里执行两条sql_Java如何在数据库上执行多个SQL命令?
在Java编程中,如何同时在数据库上执行多个SQL命令?假定数据库名称是:testdb,其中有两张表:employee和dept,employee表中有4条记录,dept表中有2条记录。
创建数据库表的语句 -
use testdb;
-- 员工表
drop table if exists employees;
create table if not exists employees (
id int not null primary key,
age int not null,
name varchar(64),
dept_id int(10)
);
INSERT INTO employees VALUES (100, 28, 'MaxSu', 1);
INSERT INTO employees VALUES (101, 25, 'WeiWang', 2);
INSERT INTO employees VALUES (102, 30, 'KidaSu', 2);
INSERT INTO employees VALUES (103, 28, 'KobeBryant', 1);
----
-- 部门表
drop table if exists dept;
create table if not exists dept (
id int not null primary key,
name varchar (64)
);
INSERT INTO dept VALUES (1, '技术部');
INSERT INTO dept VALUES (2, '市场部');
以下示例中演示如何使用addBatch()和executeBatch()方法同时执行多个SQL命令。
package com.yiibai;
import java.sql.*;
public class ExecuteMultipleSQLStatements {
public static void main(String[] args) throws Exception {
String JDBC_DRIVER = "com.mysql.jdbc.Driver";
String DB_URL = "jdbc:mysql://localhost/testdb?useSSL=false";
String User = "root";
String Passwd = "123456";
try {
Class.forName(JDBC_DRIVER);
} catch (ClassNotFoundException e) {
System.out.println("Class not found " + e);
}
Connection con = DriverManager.getConnection(DB_URL, User, Passwd);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String insertEmp1 = "insert into employees(id,name,age,dept_id) values(110,'Jay',19, 1)";
String insertEmp2 = "insert into employees(id,name,age,dept_id) values(111,'Weiwei',22,2)";
String insertEmp3 = "insert into employees(id,name,age,dept_id) values(112,'Hkou',25,3)";
con.setAutoCommit(false);
stmt.addBatch(insertEmp1);
stmt.addBatch(insertEmp2);
stmt.addBatch(insertEmp3);
ResultSet rs = stmt.executeQuery("select * from employees");
rs.last();
System.out.println("rows before batch execution= " + rs.getRow());
stmt.executeBatch();
con.commit();
System.out.println("Batch executed");
rs = stmt.executeQuery("select * from employees");
rs.last();
System.out.println("rows after batch execution = " + rs.getRow());
}
}
上述代码示例将产生以下结果。
rows before batch execution= 4
Batch executed
rows after batch execution = 7
注:如果JDBC驱动程序安装不正确,将获得ClassNotfound异常。
Class not found java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
JDBC Class found
SQL exception occuredjava.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/testdb
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。
java方法里执行两条sql_Java如何在数据库上执行多个SQL命令?相关推荐
- Java黑皮书课后题第8章:*8.31(几何:交点)编写一个方法,返回两条直线的交点。四个点存放在4*2的二维数组points中。编写一个程序,提示用户输入4个点,并显示交点
*8.31(几何:交点)编写一个方法,返回两条直线的交点.四个点存放在4*2的二维数组points中.编写一个程序,提示用户输入4个点,并显示交点 题目 题目描述 破题 代码 本题运行实例 题目 题目 ...
- 07 - java 方法里面的 return
Java 方法里面的 return return 之函数返回值 public static int sum(a, b) {return a + b; } return 之结束方法 Scanner sc ...
- mysql执行两条update语句
执行两条update语句,没有join关联时 update dp_auto_group_price dagp ,dp_auto_group dag set dagp.is_pub = 0 ,dag.s ...
- Firebug网络面板里的两条竖线表示什么?
Firebug的网络面板可用来查看网站各个资源的加载时间,以便帮助开发者更有效的提高页面加载速度.在这个面板中,我们会看到一蓝一红两条竖线,这两条竖线各代表什么含义呢? 蓝线表示DOMContentL ...
- shell中执行某条语句失败能不能重复执行_如何重复执行一条命令直至运行成功?...
大家好,我是良许. 在我们的日常工作中,需要我们重复做的工作简直不能太多.比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping 命令不停去测试某个地址(比如百度).网络比较好还好说,但如果 ...
- python求斜边上的高是多少厘米_已知一个直角三角形的两条直角边,如何求斜边上的高的长度...
展开全部 利用:直角32313133353236313431303231363533e59b9ee7ad9431333431333963三角形的面积不变,即两直角边的乘积的一半=斜边乘以斜边上的高的一 ...
- insert into 多条数据_「数据库」一千行MySQL命令
基本操作 /* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_pat ...
- Java方法案例--比较两个值是否相等
package com.zhangxueliang.demo;import java.util.Scanner;@SuppressWarnings("all") public cl ...
- Java方法重载时参数类型有重合,它会选择执行哪一个?
本文出处:http://blog.csdn.net/chaijunkun/article/details/7660178,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...
最新文章
- 修改MD5加密 提高网站安全
- 场效应与三极管 电路标识符_看懂这6个提示,轻松搞定恒流源电源电路设计!...
- python中callable什么意思_Python中callable的理解?
- Juddi介绍及安装
- Linux下 /dev/null 21 相关知识说明
- python--循环列表中字典元素
- 【需求工程】需求应用域理解
- error while loading shared libraries: xxx.so.x错误
- uniapp debug能打开release不行_盘点在 Release 下由循环体优化所产生的不确定性 Bug...
- js声明数组的四种方式
- Linux制作ISO镜像文件
- redis 学习笔记(六) sorted_set数据类型
- QS排名前70-100的英国大学怎么选?
- 分享全球范围内比较好用的17个免费空间(基本稳定好多年)
- 服务器背板作用,硬盘和服务器背板
- The following error occured:
- date.gettime()返回的是什么?
- html中auto是设置什么的,css中margin:auto什么意思?margin:auto属性的用法详解
- 前端三件套系例之CSS——CSS3基础样式
- Java入门 - 方法的使用
热门文章
- mysql 转pxc_PXC 配置笔记-从MySQL直接转成PXC集群
- 高性能Linux服务器运维实战,《高性能Linux服务器构建实战》笔记
- Nature子刊:干旱条件下土壤细菌网络的稳定性不如真菌网络
- NBT:宏基因组读云建库+雅典娜算法组装获得微生物高质量基因组
- seaborn使用violinplot函数可视化小提琴图、使用stripplot函数添加抖动数据点(jittered points)、显示数据的稠密程度
- R语言数值向上近似函数(round, ceiling, floor, trunc, signif)实战
- R线性回归模型构建示例
- 为什么需要权重初始化(weight initialization)?常见的权重初始化方式有哪些?启发式权重初始化的好处?
- 生物信息学 生物科学、农学、林学、医学
- (邓爱萍)Java抽象 继承 接口