JDBC连接数据库2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiberroot/article/details/79454644
/*
    处理查询结果集
    完整的JDBC编程六步:
        1、注册驱动
        2、获取连接
        3、获取数据库操作对象
        4、执行SQL语句
        5、处理查询结果集
        6、释放资源
*/
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;

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

        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try{
            //1、注册驱动
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            //2、获取连接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3366/bjpowernode","root","123");
            //3、获取数据库操作对象
            stmt = conn.createStatement();
            //4、执行SQL语句
            //查询结果在rs对象当中。
            rs = stmt.executeQuery("select empno as a,ename as b,sal as c from emp where sal >= 1000"); 
            //5、处理查询结果集
            //目前处理的主要方式是:将结果集中的数据打印输出到控制台
            /*
                rs对象中存储的是以下数据:
                    +-------+-------+---------+
                    | empno | ename | sal     |
                    +-------+-------+---------+
                    |  7788 | SCOTT | 3000.00 |
                    |  7839 | KING  | 5000.00 |
                    |  7902 | FORD  | 3000.00 |
                    +-------+-------+---------+
                boolean has = rs.next(); 作用:将结果集的光标向前移动一行,指向的当前行有数据的时候返回true
            */
            while(rs.next()){
                //处理当前光标指向的行
                //将当前行在这个大括号中把所有的列取出
                //JDBC当中所有的下标都是从1开始的。
                //以下方法的作用是:不管数据库表当中存储的数据类型是什么,统一都以字符串的形式取出。
                /*
                String empno = rs.getString(1); //以查询结果集当中列下标的方式获取
                String ename = rs.getString(2);
                String sal = rs.getString(3);
                System.out.println(empno + " , " + ename + " , " + sal);
                */

                /*
                String empno = rs.getString("empno"); //以查询结果集当中列名称的方式获取
                String ename = rs.getString("ename");
                String sal = rs.getString("sal");
                System.out.println(empno + " , " + ename + " , " + sal);
                */

                /*
                //注意:列名称不是表格里面的列名称,是你查询结果集当中的列名称。
                String empno = rs.getString("a");
                String ename = rs.getString("b");
                String sal = rs.getString("c");
                System.out.println(empno + " , " + ename + " , " + sal);
                */

                //可以以指定的类型取出
                /*
                int empno = rs.getInt(1);
                String ename = rs.getString(2);
                double sal = rs.getDouble(3);
                System.out.println((empno+1) + " , " + ename + " , " + sal);
                */

                int empno = rs.getInt("a");
                String ename = rs.getString("b");
                double sal = rs.getDouble("c");
                System.out.println((empno+1) + " , " + ename + " , " + sal);
            }
        }catch(SQLException e){
            e.printStackTrace();
        }finally{
            //6、释放资源
            if(rs != null){
                try{
                    rs.close();
                }catch(SQLException e){
                    e.printStackTrace();
                }
            }
            if(stmt != null){
                try{
                    stmt.close();
                }catch(SQLException e){
                    e.printStackTrace();
                }
            }
            if(conn != null){
                try{
                    conn.close();
                }catch(SQLException e){
                    e.printStackTrace();
                }
            }
        }

    }
}

猜你喜欢

转载自blog.csdn.net/tiberroot/article/details/79454644