IDEA操作数据库--用其他方法额外处理查询结果Map
IDEA操作数据库--用Map来额外处理查询结果
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<String,String> mu = new HashMap<>(); //HashMap要用new来声明 //如果要对查询的结果另外处理,必须转换成其他类型,例如Map,List等类型,传递出来再进行处理。 //此后数据库链接断开,也不影响对查询结果集的后续操作。否则就必须在一个数据库链接生命周期内处理完查询结果 //一旦数据库链接断开,则不能再对查询结果进行处理 public Map<String,String> 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<String,String> map){ System.out.println("用户名 |"+"性别|"+"电话号码"); System.out.println(map.get("LOGIN_NAME")+" |"+map.get("GENDER")+" |"+map.get("PHONE")); //map.get()方法是根据键名来取出键值 } }