Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之04.JDBC Resultset

• 本季内容提要
�CResultSet 简介
�CJava 数据类型与SQL数据类型的映射
�CResultSet 常用方法
• next()
• getXXX()
�C实例
• 从结果集中获得数据
##############Michael分割线###################
• ResultSet 简介
�C用来获得SQL语句的查询结果
�C结果集包含了SQL语句的查询结果数据
�C调用语句的executeQuery方法返回结果集对象
• Java 数据类型与SQL数据类型的映射
image
• ResultSet 常用方法
�Cnext()
• 返回boolean类型数据,用来判断结果集中是否有数据
�CgetXXX()
• 获得结果集中的数据项
�C可以根据列名称
�C可以根据列索引
• 实例
�C从结果集中获得数据
image
#####################Michael分割线########################
Main.java
package com.michael.main;    

import com.michael.jdbc.TestResultSet;    

public class Main {    

         /**    
         * @param args    
         */    
         public static void main(String[] args) {    
                 /**    
                ConnectionUtil cu = new ConnectionUtil();    
                //第一种方法    
                System.out.println("第一种方法:"+cu.getConnection());    
                //第二种方法    
                System.out.println("第二种方法:"+cu.getConnection("com.mysql.jdbc.Driver","jdbc:mysql://localhost:3306/jdbc_db","root","mysqladmin"));    
                //第三种方法    
                System.out.println("第三种方法:"+cu.openConnection());    
                */    
                TestResultSet.query();    
        }    
}
TestResultSet.java
package com.michael.jdbc;    

import java.sql.Connection;    
import java.sql.ResultSet;    
import java.sql.SQLException;    
import java.sql.Statement;    

public class TestResultSet {    
         public static void query(){    
                Connection conn = new ConnectionUtil().openConnection();    
                 try {    
                        Statement stmt = conn.createStatement();    
                        String sql = "select id,name,email from customertbl";    
                        ResultSet rs = stmt.executeQuery(sql);    
                         while(rs.next()){    
                                 int id = rs.getInt(1);    
                                String name = rs.getString( "name");    
                                String email = rs.getString( "email");    
                                System.out.println(id+ ":"+name+ ":"+email);    
                        }    
                } catch (SQLException e) {    
                         // TODO Auto-generated catch block    
                        e.printStackTrace();    
                } finally{    
                         try {    
                                conn.close();    
                        } catch (SQLException e) {    
                                conn = null;    
                                e.printStackTrace();    
                        }    
                }    
        }    
}
image
#####################Michael分割线########################
在Servlet中我们要把后台查询结果显示在前台页面上,实现前后台的交互,我们可以把结果集封装到List中
Main.java
package com.michael.main;    

import com.michael.jdbc.TestResultSet;    

public class Main {    

         /**    
         * @param args    
         */    
         public static void main(String[] args) {    
                 /**    
                ConnectionUtil cu = new ConnectionUtil();    
                //第一种方法    
                System.out.println("第一种方法:"+cu.getConnection());    
                //第二种方法    
                System.out.println("第二种方法:"+cu.getConnection("com.mysql.jdbc.Driver","jdbc:mysql://localhost:3306/jdbc_db","root","mysqladmin"));    
                //第三种方法    
                System.out.println("第三种方法:"+cu.openConnection());    
                */    
                TestResultSet.query();    
        }    
}
ConnectionUtil.java
package com.michael.jdbc;    

import java.sql.Connection;    
import java.sql.DriverManager;    
import java.util.Properties;    

public class ConnectionUtil {    
         //第一种方法    
         public Connection getConnection(){    
                Connection conn = null;    
                 try {    
                         //Class.forName加载驱动    
                        Class.forName( "com.mysql.jdbc.Driver");    
                         //DriverManager获得连接    
                        conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/jdbc_db","root","mysqladmin");    
                        return conn;    
                } catch (Exception e) {    
                        e.printStackTrace();    
                }    
                return null;    
        }    
        //第二种方法    
        public Connection getConnection(String driver,String url,String user,String password){    
                Connection conn = null;    
                try {    
                        //Class.forName加载驱动    
                        Class.forName(driver);    
                        //DriverManager获得连接    
                        conn = DriverManager.getConnection(url,user,password);    
                        return conn;    
                } catch (Exception e) {    
                        e.printStackTrace();    
                }    
                return null;    
        }    
        //第三种方法    
        public Connection openConnection(){    
                String driver = "";    
                String url = "";    
                String user = "";    
                String password = "";    
                Properties prop = new Properties();    
                Connection conn = null;    
                try {    
                        //加载属性文件    
                        prop.load(this.getClass().getClassLoader().getResourceAsStream("DBConfig.properties"));    
                        driver = prop.getProperty("driver");    
                        url = prop.getProperty("url");    
                        user = prop.getProperty("user");    
                        password = prop.getProperty("password");    
                        //Class.forName加载驱动    
                        Class.forName(driver);    
                        //DriverManager获得连接    
                        conn = DriverManager.getConnection(url,user,password);    
                        return conn;    
                } catch (Exception e) {    
                        e.printStackTrace();    
                }    
                return null;    
        }    

}
TestResultSet.java
package com.michael.jdbc;    

import java.sql.Connection;    
import java.sql.ResultSet;    
import java.sql.SQLException;    
import java.sql.Statement;    
import java.util.ArrayList;    
import java.util.List;    

public class TestResultSet {    
         public static List query(){    
                Connection conn = new ConnectionUtil().openConnection();    
                 try {    
                        Statement stmt = conn.createStatement();    
                        String sql = "select id,name,email from customertbl";    
                        ResultSet rs = stmt.executeQuery(sql);    
                         //将结果集封装到List中    
                        List list = new ArrayList();    
                         while(rs.next()){    
                                 // 可以根据列名称也可以根据列索引    
                                 int id = rs.getInt(1);    
                                String name = rs.getString( "name");    
                                String email = rs.getString( "email");    
                                System.out.println(id+ ":"+name+ ":"+email);    
                                Customer c = new Customer();    
                                c.setId(id);    
                                c.setName(name);    
                                c.setEmail(email);    
                                 //将对象存放到list容器中    
                                list.add(c);    
                        }    
                         return list;    
                } catch (SQLException e) {    
                         // TODO Auto-generated catch block    
                        e.printStackTrace();    
                } finally{    
                         try {    
                                conn.close();    
                        } catch (SQLException e) {    
                                conn = null;    
                                e.printStackTrace();    
                        }    
                }    
                 return null;    
        }    
}
Customer.java
package com.michael.jdbc;    
//对象关系映射ORM    
public class Customer {    
         private int id;    
         private String name;    
         private String email;    
         public String getEmail() {    
                 return email;    
        }    
         public void setEmail(String email) {    
                 this.email = email;    
        }    
         public int getId() {    
                 return id;    
        }    
         public void setId( int id) {    
                 this.id = id;    
        }    
         public String getName() {    
                 return name;    
        }    
         public void setName(String name) {    
                 this.name = name;    
        }    
}
image
#####################Michael分割线########################

本文出自 “王乾De技术博客” 博客,谢绝转载!

你可能感兴趣的:(java,Web,servlet,jdbc,ResultSet)