IDEA操作数据库--用其他方法额外处理查询结果


IDEA操作数据库--用其他方法额外处理查询结果

Map mu = new HashMap<>();
    //HashMap要用new来声明
import java.sql.*;
import java.util.*;
//自动引入util下的map类


/**
 * @ClassName PrintUser2
 * @Description
 **/
public class PrintUser2 {
    String sql = "SELECT TOP 1 LOGIN_NAME,GENDER,PHONE FROM SYS_BSE_USER ORDER BY USER_ID_KEY DESC ;";//查询一个用户信息
    Map mu = new HashMap<>();
    //HashMap要用new来声明


    //如果要对查询的结果另外处理,必须转换成其他类型,例如Map,List等类型,传递出来再进行处理。
    //此后数据库链接断开,也不影响对查询结果集的后续操作。否则就必须在一个数据库链接生命周期内处理完查询结果
    //一旦数据库链接断开,则不能再对查询结果进行处理
    public Map 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()方法才能读取第一行数据
                mu.put("LOGIN_NAME",rs.getString("LOGIN_NAME"));
                mu.put("GENDER",rs.getString("GENDER"));
                mu.put("PHONE", rs.getString("PHONE"));
                //从查询结果中取出一个值,put()方法压入map,但是必须给这个值定义一个键,此谓键-值对
                //取值的时候,就可以用这个键名来取具体的值
            } 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();
            }
        }
        return mu;
    }

    public void print(Map map){
        System.out.println("用户名  |"+"性别|"+"电话号码");
        System.out.println(map.get("LOGIN_NAME")+" |"+map.get("GENDER")+"   |"+map.get("PHONE"));
        //map.get()方法是根据键名来取出键值

    }
}

相关