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(); } } } }