1、JDBC:就是一套API,由sun公司定义类或者定义的接口。(全称 java database connectivity:是Java访问数据库的标准规范),Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。
2、预处理对象executeUpdate方法,作用:完成记录的insert\update\delete语句的执行。操作格式统一如下:
1. 注册驱动
2. 获取连接
3. 获取预处理对象
4. SQL语句占位符设置实际参数
5. 执行SQL语句
6. 释放资源
3、插入记录:insert // 实现向分类表中插入指定的新分类
public void demo01() throws Exception { // 1注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 2获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root"); // 3获得预处理对象 String sql = "insert into sort(sname) values(?)"; PreparedStatement stat = conn.prepareStatement(sql); // 解决SQL注入攻击问题 // 4 SQL语句占位符设置实际参数 stat.setString(1, "奢侈品"); // 5执行SQL语句 int line = stat.executeUpdate(); //执行更新 System.out.println("新添加记录数:" + line); // 6释放资源 stat.close(); conn.close(); }
4、更新记录:update // 实现更新分类表中指定分类ID所对应记录的分类名称
public void demo02() throws Exception { // 1注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 2获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root"); // 3获得预处理对象中 String sql = "update sort set sname=? where sid=?"; PreparedStatement stat = conn.prepareStatement(sql); // 4 SQL语句占位符设置实际参数 stat.setString(1, "数码产品"); stat.setInt(2, 1); // 5执行SQL语句 int line = stat.executeUpdate(); System.out.println("更新记录数:" + line); // 6释放资源 stat.close(); conn.close(); }
5、删除记录:delete // 实现删除分类表中指定分类ID的记录
public void demo03() throws Exception { // 1注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 2获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root"); // 3获得预处理对象 String sql = "delete from sort where sid=?"; PreparedStatement stat = conn.prepareStatement(sql); // 4 SQL语句占位符设置实际参数 <不懂> stat.setInt(1, 1); // 5执行SQL语句 int line = stat.executeUpdate(); System.out.println("删除记录数:" + line); // 6释放资源 stat.close(); conn.close(); }
6、预处理对象executeQuery方法 ,作用:完成记录的select语句的执行。操作格式统一如下:
1. 注册驱动
2. 获取连接
3. 获取预处理对象
4. SQL语句占位符设置实际参数
5. 执行SQL语句
6. 释放资源
7、 查询记录:select // 实现查询分类表所有记录
public void demo04() throws Exception { // 1注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 2获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root"); // 3获得预处理对象 String sql = "select * from sort"; PreparedStatement stat = conn.prepareStatement(sql); // 4 SQL语句占位符设置实际参数 // 5执行SQL语句 ResultSet rs = stat.executeQuery(); // 6处理结果集(遍历结果集合) while( rs.next() ){ //获取当前行的分类ID String sid = rs.getString("sid");//方法参数为数据库表中的列名 //获取当前行的分类名称 String sname = rs.getString("sname"); //显示数据 System.out.println(sid+"-----"+sname); } // 7释放资源 rs.close(); stat.close(); conn.close(); }
8、查询记录:实现查询分类表中指定分类名称的记录
public void demo05() throws Exception { // 1注册驱动 Class.forName("com.mysql.jdbc.Driver"); // 2获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root"); // 3获得预处理对象 String sql = "select * from sort where sname=?"; PreparedStatement stat = conn.prepareStatement(sql); // 4 SQL语句占位符设置实际参数 stat.setString(1, "奢侈品"); // 5执行SQL语句 ResultSet rs = stat.executeQuery(); // 6处理结果集(遍历结果集合) while( rs.next() ){ //获取当前行的分类ID String sid = rs.getString("sid");//方法参数为数据库表中的列名 //获取当前行的分类名称 String sname = rs.getString("sname"); //显示数据 System.out.println(sid+"-----"+sname); } // 7释放资源 rs.close(); stat.close(); conn.close(); }