浩瀚

Java对MySql数据库增删改查

Java对MySql数据库增删改查

本章内容需要结合Java连接数据库
获取Connection对象后就可以对数据库进行操作,
我们需要使用Connection对象创建Statement对象,Statement对象用于将SQL语句发送到数据库中,可以理解为执行SQL语句

它们的常用方法如下:

Connection接口常用方法

方法名称作用
void close()立即释放此Connection对象的数据库和JDBC资源
Statement createStatement()创建一个Statement对象来讲SQL语句发送到数据库
PreparedStatement prepareStatement(String sql)创建一个PreparedStatement对象来讲参数化的sql语句发送到数据库
boolean isClosed()查询此Connection对象是否已经关闭

Statement接口常用方法

方法名称作用
ResultSet executeQuery(String sql)可以执行SQL查询并获取ResultSet对象
Int executeUpdate(String sql)可以执行插入删除更新的操作,返回值是执行该操作所受影响的行数
Boolean execute(string sql)可以执行任意sql语句,若结果为ResultSet对象则返回true

使用Statement插入数据

插入数据我们只需要创建Statement对象然会调用execute(String sql)方法或者executeUpdate(String sql)方法即可实现插入数据。

Statement stmt = null;
try{
    stmt = conn.createStatement();//实例化一个Statement对象
    String sql = “insert into student values(1001,”张三”,”男”)”; //sql语句
    stmt.execute(sql);//执行sql语句
}catch (SQLException e){
    //异常代码块
}finally{
    //关闭Statement
    try{
        if(stmt!=null){
            stmt.close();
        }
        If(conn!=null){
            conn.close()
        }
    }catch(SQLException e){
        //异常代码块
    }
}

使用Statement更新数据

更新数据和插入数据类似,我们只需要修改一些SQL语句就可以实现这个效果,我们这里使用executeUpdate()方法实现

try{
    stmt = conn.createStatement();
    String sql = “update student set stuid = 1000 where stuid = 1001”;
    stmt.executeUpdate(sql);
}catch (SQLException e){
    //异常代码块
} finally{
    //关闭Statement
    try{
        if(stmt!=null){
            stmt.close();
        }
        If(conn!=null){
            conn.close()
        }
    }catch(SQLException e){
        //异常代码块
    }
}

使用Statement和ResultSet查询所有宠物

查询数据我们还是先创建Statement对象,然后调用executeQuery(String sql)方法,它的返回值是一个ResultSet对象,

ResultSet rs = null;
try{
    Stmt = conn.createStatement();
    String sql = “select * from student”;
    rs = stmt.executeQuery(“sql”);
    while(rs.next()){
        System.out.print(rs.getInt(1)+”\t”);
        System.out.print(rs.getString(2)+”\t”);
        System.out.print(rs.getString(3)+”\n”);
    }
}catch (SQLException e){
    //异常代码块
} finally{
    //关闭Statement
    try{
        if(rs!=null){
            rs.close();
        }
        if(stmt!=null){
            stmt.close();
        }
        If(conn!=null){
            conn.close()
        }
    }catch(SQLException e){
        //异常代码块
    }
}

ResultSet接口常用方法

方法名称作用
boolean next()将光标从当前位置向下移动一行
boolean previous()将光标从当前位置向上移动一行
void close()关闭ResultSet对象
int getInt(int columnIndex)以int的形式获取结果集当前指定列号的值
int getInt(String columnLabel)同上
float getFloat(int columnIndex)以float的形式
float getFloat(String columnLabel)同上
String getString(int columnIndex)以String的形式
String getString(int columnIndex)同上
int getRow()得到光标当前所指的行号
boolean absolute(int row)光标移动到row指定的行

PreparedStatement 接口

为什么要用PreparedStatement接口
它和Statement相比较提高了代码的可读性,可维护性和提高SQL语句执行性能以及更高的安全性

PreparedStatement 接口的常用方法

方法名称作用
boolean exectute()在此 PreparedStatement 对象中执行SQL语句,该语句可以是任何SQL语句,如果返回结果是Result对象,则返回true否则返回false
ResultSet executeUpdate()在此 PreparedStatement 对象中执行SQL语句查询,并返回该查询生成的 ResultSet 对象
int executeUpdate()在此 PreparedStatement 对象中执行SQL语句该语句必须是一个 DML 语句,如:INSERT,UPDATE,DELETE语句,或者是无返回内容的SQL语句,如DDL语句,返回值是执行该操作受影响的行数
void setInt(int index,int x)将指定参数设置为给丁 Java int 值。设置其他类型参数的方法于此相似,如SetFloat(int index,float x)
void setObject(int index,Object x)使用给定对象设置指定参数的值

使用 PreparedStatement 操作数据库的三个基本步骤

1、创建 PreparedStatement对象

通过Connection接口的prepareStatement(String sql)方法来创建 PreparedStatement 对象,创建SQL语句的时候可以不指定值,使用" ?"作为占位符

PreparedStatement pstmt = conn.prepareStatement("UPDATE student SET stuID=? WHERE stuID=?");

2、设置每个输入参数的值

通过 setXxx()方法来设置值,其中Xxx是和参数相应的数据类型,当数据类型不确定的时候可以使用Object,这个方法有两个参数,第一个参数是序数位置,从1开始,第二个参数是给它相应的值

pstmt.setInt(1,1000);
pstmt.setObject(2,1001);

3、执行SQL语句

前面设置参数值之后我们就可以调用 PreparedStatement 接口的三个方法(ResultSet executeQuery()int executeUpdate()boolean execute())执行SQL语句

psmtm.executeUpdate();