ODBC方式连接数据库

以下介绍的是用ODBC方式连接SQL数据库

一.创建ODBC数据源

     找到"数据源(ODBC)",并打开它-----选择"系统DSN"-----添加-----选择"SQL Server"-----数据源名称:为数据源起名;说明:可省略;服务器:选择所要连接的数据库所在的SQL Server服务器名-----选择"使用用户登陆ID和......",并在其中输入用户名和密码(该用户名和密码必须和SQL中的对应)-----选择"更改默认数据库":在其中选择SQL Server中的某个数据库(该数据库中必须有你要操作的表)-----测试-----如果测试成功,表示该数据源已创建成功

 

二.建立JDBC-ODBC桥接器

     try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     }

     catch(ClassNotFoundException e)

     {

            System.out.println(e.toString);

     }

 

三.连接数据库

     try{

           Connection con=DriverManager.getConnection("jdbc:odbc:数据源名","SQL用户名","SQL密码");

     }

     catch(SQLException e)

     {

           System.out.println(e.toString);

     }

     Connection类:该类在java.sql包中

 

四.向数据库发送SQL语句

     try{

           Statement sql=con.createStatement(int type,int concurrency);

     }

     catch(SQLException e)

     {

           System.out.println(e.toString);

     }

     Statement类:该类在包java.sql中,其中参数type和concurrency含义如下

                           type:决定游标的滚动方式以及数据库的变化对当前结果集的影响,取值如下

                                     ResultSet.TYPE_FORWORD_ONLY:结果集的游标只能向下滚动

                                     ResultSet.TYPE_SCROLL_INSENSITIVE:结果集的游标可以上下移动,当数据库变化时,当前结果集不变

                                     ResultSet.TYPE_SCROLL_SENSITIVE:结果集的游标可以上下移动,当数据库变化时,当前结果集也改变

                           concurrency:决定是否可以用结果集更新数据库,取值如下

                                     ResultSet.CONCUR_READ_ONLY:不能用结果集更新数据库中的表

                                     ResultSet.CONCUR_UPDATETABLE:能用结果集更新数据库中的表

     注意:type和concurrency参数可有可无

 

五.执行SQL语句

     1.执行查询语句或统计语句返回的结果集

           try{

                 ResultSet rs=sql.executeQuery("SQL查询或统计语句");

           }

           catch(SQLException e)

           {

                 System.out.println(e.toString);

           }

           ResultSet类:该类在包java.sql中,常用方法如下

                     boolean next():将游标向下移动,当移到结果集最后一行之后时返回false

                     boolean previous():将游标向上移动,当移到结果集第一行之前时返回false

                     void beforeFirst():将游标移到第一行之前

                     void afterLast():将游标移到最后一行之后

                     void first():将游标移到结果集的第一行

                     void last():将游标移到结果集的最后一行

                     boolean isAfterLast():判断游标是否在最后一行之后

                     boolean isBeforeFirst():判断游标是否在第一行之前

                     boolean isFirst():判断游标是否在第一行

                     boolean isLast():判断游标是否在最后一行

                     int gerRow():得到当前游标所指行的行号,行号从1开始,如果结果集没有行,返回0

                     boolean absolute(int row):将游标移到参数row指定的行号;如果row取负值,表示倒数的行数

                     int getInt(int n):取得当前行中第n列的整数的值,n从1开始

                     int getInt(String s):取得当前行中列名为s的整数的值

                     String getString(int n):取得当前行中第n列的字符串的值

                     String getString(String s):取得当前行中列名为s的字符串的值

                     long getLong(int n):.......

                     long getLong(String s):.......

                     byte getByte(int n):.......

                     byte getByte(String s):.......

                     Date getDate(int n):.......

                     Date getDate(String s):.......

                     float getFloat(int n)):.......

                     float getFloat(String s)):.......

                     double getDouble(int n)):.......

                     double getDouble(String s)):.......

     2.执行添加,修改,删除语句返回表中受影响的行数

          try{

                int n=sql.executeUpdate("SQL的添加,修改,删除语句");

          }

          catch(SQLException e)

          {

                System.out.println(e.toString);

          }

 

 

                          

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(class13(Java,SE))