JDBC--Result 获取返回集合

时间:2022-01-13 19:45:10
  1. package jdbc.chap05;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.util.ArrayList;  
  7. import java.util.List;  
  8.   
  9. import jdbc.util.DbUtil;  
  10. import model.Person;  
  11.   
  12. public class sec01 {  
  13.   
  14.     private static DbUtil dbUtil=new DbUtil();  
  15.     /** 
  16.      * 遍历查询结果1 
  17.      * @throws Exception 
  18.      */  
  19.     private static void listPerson()throws Exception{  
  20.         Connection con=dbUtil.getCon();//获取连接  
  21.         String sql="select * from t_student";  
  22.         PreparedStatement pstmt=con.prepareStatement(sql);  
  23.         ResultSet rs=pstmt.executeQuery();//返回2维结果集ResultSet  
  24.         while (rs.next()){  
  25.             int id=rs.getInt(1);//获取第一个列的值 编号ID  
  26.             String name=rs.getString(2);//获取第二个列的值 编号 name  
  27.             int age=rs.getInt(3);//获取第三列的值 编号age  
  28.             System.out.println("学生编号:"+id+"学生姓名:"+name+"学生年龄:"+age);  
  29.             System.out.println("========================================================");  
  30.               
  31.         }  
  32.     }  
  33.     /** 
  34.      * 遍历查询结果2 
  35.      * @throws Exception 
  36.      */  
  37.     private static void listPerson2()throws Exception{  
  38.         Connection con=dbUtil.getCon();//获取连接  
  39.         String sql="select * from t_student";  
  40.         PreparedStatement pstmt=con.prepareStatement(sql);  
  41.         ResultSet rs=pstmt.executeQuery();//返回2维结果集ResultSet  
  42.         while (rs.next()){  
  43.             int id=rs.getInt("id");//获取第一个列的值 编号ID  
  44.             String name=rs.getString("name");//获取第二个列的值 编号 name  
  45.             int age=rs.getInt("age");//获取第三列的值 编号age  
  46.             System.out.println("学生编号:"+id+"学生姓名:"+name+"学生年龄:"+age);  
  47.             System.out.println("========================================================");  
  48.               
  49.         }  
  50.     }  
  51.     private static List<Person> listPerson3()throws Exception{  
  52.         List<Person> personlist=new ArrayList<Person>();    
  53.         Connection con=dbUtil.getCon();//获取连接  
  54.         String sql="select * from t_student";  
  55.         PreparedStatement pstmt=con.prepareStatement(sql);  
  56.         ResultSet rs=pstmt.executeQuery();//返回2维结果集ResultSet  
  57.         while (rs.next()){  
  58.             int id=rs.getInt("id");//获取第一个列的值 编号ID  
  59.             String personName=rs.getString("name");//获取第二个列的值 编号 name  
  60.             int age=rs.getInt("age");//获取第三列的值 编号age  
  61.         Person person=new Person(id, personName, age);  
  62.         personlist.add(person);  
  63.           
  64.               
  65.         }  
  66.         return personlist;  
  67.             
  68.     }  
  69.     public static void main(String[] args) throws Exception {  
  70.   
  71. //      listPerson();  
  72. //      listPerson2();  
  73.         List<Person> personList=listPerson3();  
  74.         for (Person person:personList){  
  75.             System.out.println(person.toString());  
  76.         }  
  77.     }  
  78. }  

关键点:重写ToString

[java]  view plain  copy
  1. package model;  
  2. /** 
  3.  * 个人信息  
  4.  * @author MC-DS 
  5.  * 
  6.  */  
  7.   
  8. public class Person {  
  9.   
  10.     private int id;  
  11.     private String personName;  
  12.     private int age;  
  13.       
  14.       
  15.       
  16.     public Person(int id, String personName, int age) {  
  17.         super();  
  18.         this.id = id;  
  19.         this.personName = personName;  
  20.         this.age = age;  
  21.     }  
  22.     public Person(String personName, int age) {  
  23.         super();  
  24.         this.personName = personName;  
  25.         this.age = age;  
  26.     }  
  27.     public int getId() {      
  28.         return id;  
  29.     }  
  30.     public void setId(int id) {  
  31.         this.id = id;  
  32.     }  
  33.     public String getPersonName() {  
  34.         return personName;  
  35.     }  
  36.     public void setPersonName(String personName) {  
  37.         this.personName = personName;  
  38.     }  
  39.     public Integer getAge() {  
  40.         return age;  
  41.     }  
  42.     public void setAge(int age) {  
  43.         this.age = age;  
  44.     }  
  45.     @Override  
  46.     public String toString() {  
  47.         // TODO Auto-generated method stub  
  48.         return "["+this.id+","+this.personName+","+this.age+"]";  
  49.     }  
  50.       
  51. }  

写前:
[plain]  view plain  copy
  1. model.Person@27d43d30  
  2. model.Person@5efd2ebd  
  3. model.Person@4007ab03  
  4. model.Person@376c72cc  
  5. model.Person@30e4cb81  
  6. model.Person@7cec9b3a  
  7. model.Person@11c33ce9  
  8. model.Person@28d3ee1b  
  9. model.Person@71b5438d  
  10. model.Person@3366184d  
  11. model.Person@73c58197  
  12. model.Person@2bbf1be2  

写后:
 
[java]  view plain  copy
  1. [1,ling,18]  
  2. [2,李小龍,18]  
  3. [6,劉德華,17]  
  4. [7,古天樂,37]  
  5. [8,李小龍,18]  
  6. [22,李小龍,18]  
  7. [222,李小龍,18]  
  8. [233,李小龍,18]  
  9. [656,李小龍,18]  
  10. [658,李小龍,18]  
  11. [659,郑伊健,37]  
  12. [661,陈小春,32]