看这一篇博文的童鞋,相信已经对数据库交互的基础(数据库连接)已经掌握了。
如果没有掌握,请前往Java JDBC 之 URL 与数据库连接进行学习掌握!

接下来我来介绍一下 Java JDBC 之 Statement

这个是用来干嘛的呢?

Statement 是用来帮我们操作数据库(增、删、改、查)的。

下面我将来介绍它的常用的几个方法。。。。。。。。。。。。

我们先来介绍 StatementexecuteQuery()方法 来怎么 查询出数据库的数据

//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接数据库的属性字符串
//url数据库地址
String url = "jdbc:sqlserver://localhost:1433;DatabaseName = DBDemo";
//登录名
String user = "sa";
//登录密码
String password = null;
//将写好的数据库连接字符串通过参数传入getConnection方法然后通过返回值获得与数据库的连接对象
Connection conn = DriverManager.getConnection(url, user, password);

//查询数据库数据的SQL语句
String sql = "select Id,Password,Name,Age from UserInfo";

//创建一个Statement对象,用Connection的createStatement()方法来进行实例化
Statement stmt = conn.createStatement();

//创建一个ResultSet对象来接收数据库返回的数据集
ResultSet rs = stmt.executeQuery(sql);

//通过ResultSet对象的next()方法来判断ResultSet对象中是否有数据
//如果有,执行完一次之后跳到下一行数据,直到没有数据为止,返回false
//然后通过getString方法获取ResultSet对象里面的数据,显示输出

while (rs.next()) {
    System.out.println("Id:"+rs.getString("Id"));
    System.out.println("Password:"+rs.getString("Password"));
    System.out.println("Name:"+rs.getString("Name"));
    System.out.println("Age:"+rs.getString("Age"));
}

接下来我们介绍 Statement 的另一个方法 executeUpdate(),这个方法用来 数据库的(增、删、改)

增加

//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接数据库的属性字符串
//url数据库地址
String url = "jdbc:sqlserver://localhost:1433;DatabaseName = DBDemo";
//登录名
String user = "sa";
//登录密码
String password = null;
//将写好的数据库连接字符串通过参数传入getConnection方法然后通过返回值获得与数据库的连接对象
Connection conn = DriverManager.getConnection(url, user, password);

//向数据库添加数据的SQL语句
String sql = "insert into UserInfo values('564646','123456','大黄',23)";

//创建一个Statement对象,用Connection的createStatement()方法来进行实例化
Statement stmt = conn.createStatement();

//创建一个对象来接收数据库返回受影响的行数,如果失败返回-1
int rows = stmt.executeUpdate(sql);

//判断rows是否大于0,如果大于0则表示添加成功,否则添加失败
if (rows > 0) {
    System.out.println("添加成功!");
} else {
    System.out.println("添加失败!");
}

修改

//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接数据库的属性字符串
//url数据库地址
String url = "jdbc:sqlserver://localhost:1433;DatabaseName = DBDemo";
//登录名
String user = "sa";
//登录密码
String password = null;
//将写好的数据库连接字符串通过参数传入getConnection方法然后通过返回值获得与数据库的连接对象
Connection conn = DriverManager.getConnection(url, user, password);

//修改数据库数据的SQL语句
String sql = "update UserInfo set Name = '小雅' where Id = 564644";

//创建一个Statement对象,用Connection的createStatement()方法来进行实例化
Statement stmt = conn.createStatement();

//创建一个对象来接收数据库返回受影响的行数,如果失败返回-1
int rows = stmt.executeUpdate(sql);

//判断rows是否大于0,如果大于0则表示修改成功,否则修改失败
if (rows > 0) {
    System.out.println("修改成功!");
} else {
    System.out.println("修改失败!");
}

删除

//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//创建连接数据库的属性字符串
//url数据库地址
String url = "jdbc:sqlserver://localhost:1433;DatabaseName = DBDemo";
//登录名
String user = "sa";
//登录密码
String password = null;
//将写好的数据库连接字符串通过参数传入getConnection方法然后通过返回值获得与数据库的连接对象
Connection conn = DriverManager.getConnection(url, user, password);

//删除数据库数据的SQL语句
String sql = "delete UserInfo where Id = 1234456";

//创建一个Statement对象,用Connection的createStatement()方法来进行实例化
Statement stmt = conn.createStatement();

//创建一个对象来接收数据库返回受影响的行数,如果失败返回-1
int rows = stmt.executeUpdate(sql);

//判断rows是否大于0,如果大于0则表示删除成功,否则删除失败
if (rows > 0) {
    System.out.println("删除成功!");
} else {
    System.out.println("删除失败!");
}

是不是感觉(增、删、改)很像?
所以我们一般把(增、删、改)写成一个通用的方法

/**
 * 数据库(增、删、改)通用的方法
 * @param sql 操作数据库的SQL语句
 * @return 受影响的行数
 */
public int dbUpdate(String sql){
    try {
        //加载驱动
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        //创建连接数据库的属性字符串
        //url数据库地址
        String url = "jdbc:sqlserver://localhost:1433;DatabaseName = DBDemo";
        //登录名
        String user = "sa";
        //登录密码
        String password = null;
        //将写好的数据库连接字符串通过参数传入getConnection方法然后通过返回值获得与数据库的连接对象
        Connection conn = DriverManager.getConnection(url, user, password);
        //创建一个Statement对象,用Connection的createStatement()方法来进行实例化
        Statement stmt = conn.createStatement();
        //创建一个对象来接收数据库返回受影响的行数,如果失败返回-1
        int rows = stmt.executeUpdate(sql);
        //返回受影响的行数
        return rows;
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    return -1;
}

OK,这次的Statement介绍就到这里了,加油VK。。。。。。。。。。