1 DriverManager: 此类管理数据库驱动程序列表。使用通信协议将来自java应用程序的连接请求与适 2 当的数据库驱动程序匹配。 3 4 Driver:此接口处理与数据库服务器的通信,我们很少会直接与Driver对象进行交互。而是使用 5 DriverManager对象来管理这种类型的对象。 6 7 Connection:该接口具有用于连接数据库的所有方法。连接对象表示通信上下文,数据库的所有通信 8 仅通过连接对象。 9 10 Statement:使用从此接口创建的对象将SQL语句提交到数据库。用于对数据库进行通用访问。在运行时使用静态SQL语句时很有用。Statement接口不能接受参数。 11 12 PreparedStatement 多次使用SQL语句时使用。PreparedStatement接口在运行时接 13 受输入参数。 14 15 ResultSet:在使用Statement对象执行SQL查询后,这些对象保存从数据库检索的数据。它作为一个迭 16 代器,允许我们移动其数据。 17 18 SQLException:此类处理数据库应用程序中发生的任何异常。
使用jdbc,注册用户信息;并且打印成功还是失败到控制台:
刚开始的user_info表
1 public static void main(String[] args) { 2 3 // 注册用户 往外面uesr-info表里面插入一条记录 4 5 System.out.println("请输入用户名"); 6 Scanner scan = new Scanner(System.in); 7 String name = scan.next(); 8 9 System.out.println("请输入密码"); 10 String pass = scan.next(); 11 12 StringBuilder ss = new StringBuilder(); 13 ss.append("insert into user_info(uname,upass)values('").append(name).append(" ', ").append(pass).append(" )"); 14 15 System.out.println(ss.toString()); 16 17 // 注册 18 try { 19 Class.forName("com.mysql.jdbc.Driver"); 20 21 Connection connection = DriverManager.getConnection(url, user, password); 22 Statement statement = connection.createStatement(); 23 int result = statement.executeUpdate(ss.toString()); 24 25 if (result > 0) { 26 System.out.println("注册成功"); 27 } else { 28 System.out.println("注册失败"); 29 } 30 statement.close(); 31 connection.close(); 32 33 } catch (Exception e) { 34 // TODO Auto-generated catch block 35 e.printStackTrace(); 36 } 37 38 }
结果:
使用jdbc根据用户id修改用户名称:
1 public static void main(String[] args) { 2 3 // 根据用户id修改用户名称 4 5 System.out.println("请输入你要修改的用户id"); 6 Scanner scan = new Scanner(System.in); 7 String id = scan.next(); 8 9 System.out.println("请输入你要修改的用户名"); 10 String name = scan.next(); 11 12 // ? 占位符 13 String sql = "update user_info set uname=? where uid=?"; 14 15 // 预处理SQL语句,这个操作数据库的对象,比较智能 16 // 会根据我们的参数,自己来给SQL进行预处理 17 18 try { 19 Class.forName("com.mysql.jdbc.Driver"); 20 21 Connection connection = DriverManager.getConnection(url, user, password); 22 23 // 获取一个操作数据库的对象;获取一个预处理的对象 24 // statement 只能执行静态的sql 25 // PreparedStatement 自己放参数,自己调用 26 PreparedStatement ps = connection.prepareStatement(sql); 27 28 // 给SQL语句里面的占位符进行赋值 29 ps.setString(1, name);// 给SQL第一个问号赋值 30 ps.setInt(2, Integer.parseInt(id));// 给第二个赋值 31 32 // 执行SQL 33 int ex = ps.executeUpdate();// 不要加SQL 34 if (ex > 0) { 35 System.out.println("修改成功"); 36 } else { 37 System.out.println("修改失败"); 38 } 39 40 ps.close(); 41 connection.close(); 42 43 } catch (Exception e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 } 47 48 }
结果: