(一)环境搭建

前提条件:建好account表,如下:

 

在完成以上需求之前先来看看我们在JDBC快速入门 里面写的Demo01:

 

存在着内存泄漏的问题,因为这种写法的意思是只有成功执行了sql后才释放资源

而main函数是按顺序执行的,前面的没执行完是不会执行后面的

我们要加以改进,如下:

我们把StatementConnection对象都声明为全局,以便于释放

 

我们把释放资源的代码写在finally里面,无论sql语句是否成功执行,资源都会被释放

 

(二)添加一条记录

public class JDBCDemo02 {
    
    public static void main(String[] args) {

        Statement stmt = null;
        Connection conn = null;
        //1. 注册驱动
        try {

            Class.forName("com.mysql.cj.jdbc.Driver");
            //2. 定义sql
            String sql = "insert into account values(null,'王五',3000)";
            //3. 获取Connection对象
            conn = DriverManager.getConnection("jdbc:mysql:///test03", "root", "root");
            //4. 获取执行sql的对象 Statement
            stmt = conn.createStatement();
            //5. 执行sql
            long count = stmt.executeLargeUpdate(sql); //影响的行数
            //6. 处理结果
            System.out.println(count);
            if (count > 0) {
                
                System.out.println("添加成功!");
            } else {
   
     
                System.out.println("添加失败!");
            }
        } catch (ClassNotFoundException e) {
            
            e.printStackTrace();
        } catch (SQLException e) {
            
            e.printStackTrace();
        } finally {
            
            // stmt.close();
            // 避免空指针异常
            if (stmt != null) {
     
                try {
                    
                    stmt.close();
                } catch (SQLException e) {
   
                    e.printStackTrace();
                }
            }
            if (conn != null) {
   
     
                try {
   
     
                    conn.close();
                } catch (SQLException e) {
   
     
                    e.printStackTrace();
                }
            }
        }
    }
}

(三)修改记录

//2. 定义sql
String sql = "update account set balance = 1500 where id = 3";

if (count > 0) {
   
     
    System.out.println("修改成功!");
 } else {
   
     
    System.out.println("修改失败!");
 }

(四)删除一条记录

//2. 定义sql
String sql = "delete from account where id = 3";

if (count > 0) {
   
     
    System.out.println("删除成功!");
} else {
   
     
    System.out.println("删除失败!");
}