练涛

sql查询操作—顺序查询

使用工具:

  1. myeclipse 2016
  2. sql server2008

准备工作:

使用sql server 2008建立如下表格:
student
(根据网上教程/书本教程)

具体代码:

package lt_jdbc3;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;    
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;    

public class jdbc3test
{
    public static void main(String args[])
    {           
        // 声明JDBC objects.    
        Connection con = null;       
        ResultSet rs = null;    
        Statement sql;

        try 
        {    

            System.out.println("准备连接!!!"); 
            //1、加载驱动
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
            System.out.println("加载驱动成功!");
            // 2、建立数据库连接      //getConnection()方法内部参数可以用变量传入
            con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ","sa","12345");    
            System.out.println("连接数据库成功!!!");    

            // 4、执行SQL语句,须获得java.sql.Statement实例,Statement实例分为以下3种类型:
            // * 执行静态SQL语句。通常通过Statement实例实现。
            // * 执行动态SQL语句。通常通过PreparedStatement实例实现。
            // * 执行数据库存储过程。通常通过CallableStatement实例实现。
            // 具体的实现方式:
            sql = con.createStatement();
            System.out.println("获得java.sql.Statement实例成功!");

            // 5、Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
            // * ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
            // ,返回一个结果集(ResultSet)对象。
            // * int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
            // DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
            // * execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
            rs = sql.executeQuery("SELECT * FROM student");
            System.out.println("sql查询语句执行成功!");

            // 6、处理结果
             // 两种情况:
             // 1、执行更新返回的是本次操作影响到的记录数。
             // 2、执行查询返回的结果是一个ResultSet对象。
             // **ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
             // 行中数据的访问。
             // **使用结果集(ResultSet)对象的访问方法获取数据:

            ResultSetMetaData m = null;// 获取 列信息
               m = rs.getMetaData();        //得到一个DatabaseMetaData对象
               int columns = m.getColumnCount();    //该对象可以获得columns的数值
               // 显示列,表格的表头
               for (int i = 1; i <= columns; i++) {
                System.out.print(m.getColumnName(i));   //getColumnName()获得每个列的Name
                System.out.print("\t");
               }
               System.out.println();

              String a = null;
            while (rs.next()) {
                //注意,循环columns是从1开始 ,,停止条件容易出错!
                 for (int i = 1; i <=columns; i++) {
                     //判断数据是否是String类型
                     if (rs.getString(i) instanceof String){
                        a=(rs.getString(i)).trim(); //把前后空格去掉
                        System.out.print(a);
                    }else{
                        System.out.print(rs.getString(i));
                    }

                     System.out.print("\t");
                }
                System.out.println();
               }

         }   
        catch (Exception e) 
        {    
          System.out.println("连接错误:"+e);  
        }     
    }    
}

易错点:

  1. url:”jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ”
  2. SQL语句:”SELECT * FROM student”

结果:

sql查询

posted @ 2017-03-26 16:41  练涛  阅读(189)  评论(0编辑  收藏  举报