JDBC操纵数据库的步骤(以SQLServer为例)

JDBC的简介

         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,操作不同的数据库需要使用不同的JDBC。

JDBC编程步骤

一、Load the Driver  加载JDBC驱动程序

         DriverManager管理一组JDBC驱动程序的基本服务。可以想象成一个管家,通过注册DriverManager可以拿到跟数据库的一根链接。

          首先新建一个项目,过程不再赘述。右击项目->Build Path -> Add External Archives。然后选择sqljdbc4.jar

         然后实例化SQLServerDriver,打开jar包你会发现它的路径是com.microsoft.sqlserver.jdbc.SQLServerDriver。实例化有两种方法:

    1、使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

           Class 与class不同,Class是一个类

     2、 new com.microsoft.sqlserver.jdbc.SQLServerDriver();

      两种方法都差不多,没啥区别,看个人爱好了。

 二、连接数据库

1 Connection conn = DriverManager.getConnection(, ,  ,);

    getConnection有三个参数。

          第一个参数是数据库的连接字符串,这个需要根据实际情况的不同而有所不同。

          第二个是用户名

          第三个是密码

三、Execute the SQL 执行数据库语句

        执行数据库语句前要创建一个语句对象。Statement

1 Statement stmt = conn.createStatement();                           

  四、处理得到的结果集

1   ResultSet rs = stmt.executeQuery("select * from dept");     

         返回来的结果集rs,指针指向第一条数据的前面,所以需要先next一下。

1          while( rs.next()){

2 

3                  rs.getString();

4 

5                  rs.getInt();

6 

7                     ……

8            }

五、关闭数据库

            原则上,后打开的先关闭

         ResultSet.close

         Statement.close

         Connection.close

 

下面是完整代码:

 

 1 import java.sql.*;

 2 public class JTest{

 3 

 4     public static void main(String[] args) throws Exception{

 5         String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

 6         String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master";

 7         //实例化驱动

 8         Class.forName(JDriver);

 9         String user ="sa";

10         String possword = "";

11         //连接数据库

12         Connection conn = 

13 DriverManager.getConnection(connectDB, user, possword);

14         //创建语句对象

15         Statement stmt = conn.createStatement();

16         //执行select语句

17         ResultSet rs =  

18                   stmt.executeQuery("Select * from dept");

19         //循环获取结果集

20          while( rs.next()){

21              System.out.println(rs.getString("deptno"));

22              System.out.println(rs.getInt("deptno"));

23          }

24          //关闭数据库,遵循后打开先关闭的原则。

25          rs.close();

26          stmt.close();

27          conn.close();

28     }

29 }

 

 

 

JDBC编程大致就这么些步骤,不过以上的代码太不专业了,而且有点问题。实例化驱动、连接数据库、创建语句对象等代码都会抛出异常,假若在程序运行的过程中出现异常而导致程序终止,后面的关闭数据库的语句不会被执行,而且被申请的内存不会被释放,长此以往会导致资源的耗尽。因此这里需要将throws 改为try/catch。

import java.sql.*;

public class JText {



    public static void main(String[] args) {

        String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

        String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master";

        String user ="sa";

        String possword = "";

        Connection conn = null;

        Statement stmt = null;

        ResultSet  rs = null;

        try {

            //实例化驱动

            Class.forName(JDriver);

            //连接数据库

            conn = DriverManager.getConnection(connectDB, user, possword);

            //创建语句对象

             stmt = conn.createStatement();

            //执行select语句

             rs =  stmt.executeQuery("Select * from dept");

            //循环获取结果集

             while( rs.next()){

                 System.out.println(rs.getString("deptno"));

                 System.out.println(rs.getInt("deptno"));

             }

        } catch (ClassNotFoundException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (SQLException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } finally{

            try{

                 //关闭数据库,遵循后打开先关闭的原则。

                if(rs != null){      //在关闭之前,判断一下是否为空

                    rs.close();

 //关闭之后 释放资源,这是一个很好的习惯

                    rs =null;    

                }

                 if (stmt != null){

                     stmt.close();

                     stmt = null;

                 }

                 if (conn != null){

                     conn.close();

                     conn =null;

                 }

            }catch (SQLException e){

                e.printStackTrace();

            }

            

        }

    }

}

 


 

你可能感兴趣的:(sqlserver)