IDEA操作数据库--查询统计SELECT COUNT


IDEA操作数据库--查询统计SELECT COUNT

操作数据库主要用到如下几个类/接口:

Connection :数据库连接接口。与指定的数据库、用户名和密码进行连接。
Statement :声明类,该类内的方法主要是执行CRUD SQL静态语句,并将结果传递给ResultSet 实例。
ResultSet :结果集接口,接收SELECT SQL语句的查询结果集
DriverManager:驱动管理类,引入各种类型数据库的驱动程序

操作数据库的流程:
1.通过DriverManager的驱动实例,建立Connection的实例
2.通过Connection数据库连接,创建Statement 的声明
3.通过Statement的执行语句,并将执行结果赋予ResultSet实例。
4.对结果进行操作。
5.关闭Statement声明
6.关闭Connection连接
注意:
1.Statement的close()方法和Connection的close()方法都会抛出SQLException异常,因此需要用try-catch进行处理
2.必须先关闭Statement,后关闭Connection。
import java.sql.*;
//当敲Connection类名的时候,IDEA工具会自动引入java.sql.*包

/**
 * @ClassName ExcuteDatabase
 * @Description
 **/
public class ExcuteDatabase {
    String sql = "SELECT COUNT(*) FROM SYS_BSE_USER";//统计一下用户表的总行数

    public void runSql() {
        //连接、操作数据库主要用到如下几个类。
        Connection con = null;//数据库连接类,用于连接数据库
        Statement st = null;//用于执行数据库的CRUD语句
        ResultSet rs = null;//用于接收数据库SELECT语句的查询结果,并对结果进行操作

        try {
            con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName= GROWING_DB", "grow_update", "123456");
            //DriverManager类管理很多数据库驱动,getConnection方法是根据给定的数据库连接字符串和用户名、密码去连接数据库
            //这个连接字符串各个数据库有不用的写法:例如pg库的连接字符串就是jdbc:sqlserver://localhost:1433/GROWING_DB
            System.out.println("数据库连接成功");
            try {
                st = con.createStatement();
                rs = st.executeQuery(sql);
                rs.next();//必须用next()方法才能读取第一行数据
                System.out.println("数据库中SYS_BSE_USER用户表一共有"+rs.getInt(1)+"行数据");
                //rs.get***()系列方法是根据列行数,或列名读取数据出来
            } catch (SQLException e) {
                e.getStackTrace();
            }finally {
                try{
                    if(st != null){
                        st.close();
                    }
                }catch (SQLException e){
                    e.getStackTrace();
                }
            }

        } catch (SQLException e) {
            e.getStackTrace();
        } finally{
            try{
                if(con != null){
                    con.close();
                }
            }catch (SQLException e){
                e.getStackTrace();
            }
        }
    }
}