java 错误: 未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出
2024-08-29 19:34:16
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 + "条记录受影响------");
}
}
最新文章
- linux mysql root密码重置
- hadoop的自定义数据类型和与关系型数据库交互
- 51单片机中断interrupt……using……
- MySQL(MariaDB)的 SSL 加密复制
- PHP框架Swoole的一个定时器Timer特性
- Spring Mvc 输出Json(iwantmoon.com出品)
- VirtualBox Headless启动虚拟机
- FlatBuffers
- Java Nio 笔记
- 从零开始Unity3D游戏开发【3烘焙】
- iOS 滤镜 转载,原文见正文首行链接
- ASP.NET MVC IOC之Unity攻略
- IE8下 Select文字垂直居中的办法
- 2017年总结的前端文章——border属性的多方位应用和实现自适应三角形
- Charles Map Local 中文显示乱码问题
- Python档案袋(脚本执行和输入输出)
- Android--多线程之进程与线程
- 当页面上需要的字段不在model中时候,需要自行设置该字段
- CSS中margin边界叠加问题及解决方案
- 关注网页的更新状况,了解最新的handsup 消息.
热门文章
- archlinux安装串口终端ckermit
- storm(4)-topology的组成-stream/spout/blot/
- Java中String与Date格式之间的转换
- 3dsmax2019卸载/安装失败/如何彻底卸载清除干净3dsmax2019注册表和文件的方法
- 《C++ Primer(第五版)》知识巩固
- 彻底解决matplotlib中文乱码问题(转)
- 配置vim插件遇到youcompleteme插件问题解决方案
- 在W3C SCHOOL网站上发现一个关于Schema的错误
- Android使用7牛云存储
- c# 实现RPC框架的思路