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

系统 2015 0

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();

            }

            

        }

    }

}
      
    

 


 

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论