import java.io.FileInputStream;
import java.util.Properties;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement; public class ExecuteDML{
private String driver;
private String url;
private String user;
private String pass; public void initParam(String paramFile) throws Exception{
Properties props = new Properties();
props.load(new FileInputStream(paramFile));
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
pass = props.getProperty("pass");
} public int insertData(String sql) throws Exception{
//加载驱动
Class.forName(driver);
try(
//获取数据库连接
Connection conn = DriverManager.getConnection(url, user, pass);
//使用Connection来创建一个Statement对象
Statement stmt = conn.createStatement()){
//执行SQL语句,返回受影响的记录条数
return stmt.executeUpdate(sql);
}
} public static void main(String[] args) {
ExecuteDML ed = new ExecuteDML();
ed.initParam("mysql.ini");
int result = ed.insertData("insert into jdbc_test(jdbc_name,jdbc_desc)"
+ "select s.student_name , t.teacher_name "
+ "from student_table s , teacher_table t "
+ "where s.java_teacher = t.teacher_id;");
System.out.println("------系统中一共有" + result + "条记录受影响------");
}
}

出错是因为,对initParam()方法和insertData()方法抛出的异常没有进行处理,解决办法:

  1.main()方法中在try...catch块中调用initParam()和insertData()方法

  2.main()方法throws抛出异常。

 import java.io.FileInputStream;
import java.util.Properties;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement; public class ExecuteDML{
private String driver;
private String url;
private String user;
private String pass; public void initParam(String paramFile) throws Exception{
Properties props = new Properties();
props.load(new FileInputStream(paramFile));
driver = props.getProperty("driver");
url = props.getProperty("url");
user = props.getProperty("user");
pass = props.getProperty("pass");
} public int insertData(String sql) throws Exception{
//加载驱动
Class.forName(driver);
try(
//获取数据库连接
Connection conn = DriverManager.getConnection(url, user, pass);
//使用Connection来创建一个Statement对象
Statement stmt = conn.createStatement()){
//执行SQL语句,返回受影响的记录条数
return stmt.executeUpdate(sql);
}
} public static void main(String[] args) throws Exception{
ExecuteDML ed = new ExecuteDML();
ed.initParam("mysql.ini");
int result = ed.insertData("insert into jdbc_test(jdbc_name,jdbc_desc)"
+ "select s.student_name , t.teacher_name "
+ "from student_table s , teacher_table t "
+ "where s.java_teacher = t.teacher_id;");
System.out.println("------系统中一共有" + result + "条记录受影响------");
}
}

最新文章

  1. linux mysql root密码重置
  2. hadoop的自定义数据类型和与关系型数据库交互
  3. 51单片机中断interrupt……using……
  4. MySQL(MariaDB)的 SSL 加密复制
  5. PHP框架Swoole的一个定时器Timer特性
  6. Spring Mvc 输出Json(iwantmoon.com出品)
  7. VirtualBox Headless启动虚拟机
  8. FlatBuffers
  9. Java Nio 笔记
  10. 从零开始Unity3D游戏开发【3烘焙】
  11. iOS 滤镜 转载,原文见正文首行链接
  12. ASP.NET MVC IOC之Unity攻略
  13. IE8下 Select文字垂直居中的办法
  14. 2017年总结的前端文章——border属性的多方位应用和实现自适应三角形
  15. Charles Map Local 中文显示乱码问题
  16. Python档案袋(脚本执行和输入输出)
  17. Android--多线程之进程与线程
  18. 当页面上需要的字段不在model中时候,需要自行设置该字段
  19. CSS中margin边界叠加问题及解决方案
  20. 关注网页的更新状况,了解最新的handsup 消息.

热门文章

  1. archlinux安装串口终端ckermit
  2. storm(4)-topology的组成-stream/spout/blot/
  3. Java中String与Date格式之间的转换
  4. 3dsmax2019卸载/安装失败/如何彻底卸载清除干净3dsmax2019注册表和文件的方法
  5. 《C++ Primer(第五版)》知识巩固
  6. 彻底解决matplotlib中文乱码问题(转)
  7. 配置vim插件遇到youcompleteme插件问题解决方案
  8. 在W3C SCHOOL网站上发现一个关于Schema的错误
  9. Android使用7牛云存储
  10. c# 实现RPC框架的思路