import java.sql.*;
public class TestJDBC {
public static void main(String[] args) {
// 用命令行参数输入三个字符串,把字符串内容插入表的相应字段
// 本程序的要插入表有三个字段,第一个是数字类型,第二和第三个为字符类型
if (args.length != 3) {
System.out.println("参数错误");
System.exit(-1);
}
int id = 0;
try {
//处理第一个字符串不能转换为数字的异常
id = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
e.printStackTrace();
System.exit(-1);
}
String name = args[1];
String introduction = args[2];
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// con =
// DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root");
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb", "root", "root");
stmt = con.createStatement();
// 此处写SQL语句非常繁锁且容易出错
String sql = "insert into people values(" + id + ",'" + name
+ "','" + introduction + "')";
// 一般验证SQL语句写的对不对最好打印出来,然后去相应的数据库工具执行该条语句,执行成功则SQL没错,否则SQL写错
System.out.println(sql);
stmt.executeUpdate(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException s) {
s.printStackTrace();
} finally {
// 关闭数据库,一般是后开的先关,对应上面
try {
if (rs != null) {
// 如果rs一开始就是null的话,如果不判断就一直出SQL异常,所以应该先判断一下
rs.close();
rs = null;
}
if (stmt != null) {
// 如果stat一开始就是null的话,如果不判断就一直出SQL异常,所以应该先判断一下
stmt.close();
stmt = null;
}
if (con != null) {
// 如果con一开始就是null的话,如果不判断就一直出SQL异常,所以应该先判断一下
con.close();
con = null;
}
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}