整理日志7-JDBC总结.

使用JDBC进行访问数据库,首先要确保安装和运行了选择的数据库,并且驱动程序可用。(可以从 http://industry.java.sun.com/products/jdbc/drivers 下载 JDBC 驱动程序)
Java与数据库交互通常由以下几步组成:
     1.装入数据库驱动程序 (JDBC 驱动程序或 JDBC-ODBC 桥) 。
     2.创建数据库的 Connection。
     3.创建一个 Statement 对象。该对象实际执行 SQL 或存储过程。
     4.创建一个 ResultSet,然后用执行查询的结果填充(如果目标是检索或直接更新数据)。
     5.从 ResultSet 检索或更新数据。

一、实例化驱动

访问数据库,先装入 JDBC 驱动程序,然后由 DriverManager创建与数据库相应的驱动程序的连接来确定。使用Class.forName() 直接装入,向 DriverManager 注册
示例:
public class Pricing extends Object {

   public static void main (String args[]){

       String driverName = "JData2_0.sql.$Driver";

      try {
         Class.forName(driverName);
      } catch (ClassNotFoundException e) {
         System.out.println("Error creating class: "+e.getMessage());
      }
   }
}

二、创建Connection

示例:
import .sql.Connection;
import .sql.DriverManager;
import .sql.SQLException;

public class Pricing extends Object {
   public static void main (String args[]){
      String driverName = "JData2_0.sql.$Driver";
      String connectURL =
      "jdbc:JDataConnect://127.0.0.1/pricing";
      Connection conn = null;   
      try
      {
         Class.forName(driverName);
         conn = DriverManager.getConnection(connectURL);
      } catch (ClassNotFoundException e) {
         System.out.println("Error creating class: "+e.getMessage());
      } catch (SQLException e) {
          System.out.println("Error creating connection:"+e.getMessage());
      }
      finally {
         System.out.println("Closing connections...");
         try {
            conn.close();
         } catch (SQLException e) {
            System.out.println("Can't close connection.");
         }
      }

   }
}
各种数据库使用JDBC连接的方式
//DB2
String driverName = "com.ibm.db2.jcc.DB2Driver";
String connectURL = "jdbc:db2://localhost:5000/sample";
Class.forName(driverName);
Connection conn = DriverManager.getConnection(connectURL,”user”,”password”);

//Oracle(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);

//SQL
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

//Sybase
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);

//MySQL
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" Connection conn= DriverManager.getConnection(url);

//ACCESS
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver(*.mdb)};DBQ="+application.getRealPath("/Data/MyDb.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

三、创建 Statement 对象

Statement 对象用于将 SQL 语句发送到数据库中。有三种 Statement 对象,它们都作为在给定连接上执行 SQL 语句的包容器:Statement、PreparedStatement(它从Statement 继承而来)和 CallableStatement(它从 PreparedStatement 继承而来)。它们都专用于发送特定类型的 SQL 语句: Statement 对象用于执行不带参数的简单SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句(当要反复执行某一特定查询时,PreparedStatement 可能最有用);CallableStatement 对象用于执行对数据库已存储过程的调用。CallableStatement 和 PreparedStatement之间的一个区别是:除了通常创建的 ResultSet 之外,CallableStatement 还可以提供 OUT 参数

Statement实例:
在程序中增加
import .sql.Statement;
在程序生成Connection对象后,利用该对象生成Statement 对象
Statement statement = null;
      try {
         statement = conn.createStatement();
      } catch (SQLException e) {
         System.out.println("SQL Error: "+e.getMessage());
      }

PreparedStatement实例
...
 statement = conn.prepareStatement("select * from test where "+ "id < ? and id > ?");
 statement.setInt(1, 5);
 statement.setInt(2, 10);
 resultset = statement.executeQuery();
...
CallableStatement实例

四、执行Statement

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute。使用哪一个方法由 SQL 语句所产生的内容决定。

  方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
  方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
  方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。

示例:
import .sql.ResultSet;
ResultSet Rs = null;
在生成Statement后执行
Rs = statement.executeQuery("SELECT * FROM test");

五、ResultSet

ResultSet 被创建之后,它就有一个引用数据集内相对位置的“指针”。在 ResultSet语句返回之后(即使表为空),该指针正好位于第一行的“上面”。要到达实际数据的第一行,应用程序调用 next() 方法。该方法返回一个 Boolean 值,指出在新位置处是否有行存在。如果没发现数据,则 next() 返回 false。
Getxxx()与wasNull()
ResultSet.getXXX 方法获取常见的 JDBC 数据类型
对非常大的行值使用流
getBinaryStream 返回只提供数据库原字节而不进行任何转换的流。
getAsciiStream 返回提供单字节 ASCII 字符的流。
getUnicodeStream 返回提供双字节 Unicode 字符的流。
wasNull() 方法来确定是否有特定的数据片为空
while (resultset.next()) {
//根据字段名
System.out.print(resultset.getString("id"));
//根据索引
System.out.print(resultset.getString(2));
……
}
通过ResultSetMetaData类还可以获取元数据
...
import .sql.ResultSetMetaData;
public class Pricing extends Object {
...
      Statement statement = null;
      ResultSet resultset = null;
      ResultSetMetaData resultmetadata = null;
      try {
         statement = conn.createStatement();
         resultset = statement.executeQuery("select * from products");
  
         //Get the ResultSet information
         resultmetadata = resultset.getMetaData();
         //Determine the number of columns in the ResultSet
         int numCols = resultmetadata.getColumnCount();
  
         while (resultset.next()) {
            for (int i=1; i <= numCols; i++) {
               //For each column index, determine the column name
               String colName = resultmetadata.getColumnName(i);
               //Get the column value
               String colVal = resultset.getString(i);
               //Output the name and value
               System.out.println(colName+"="+colVal);
            }
            //Output a line feed at the end of the row
            System.out.println(" ");
         }
...
不必关闭 ResultSet;当产生它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该 ResultSet 将被 Statement 自动关闭。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sqlite-jdbc-3.25.1.jar 是一个用于连接和操作 SQLite 数据库的 Java 驱动程序。它提供了在 Java 程序中对 SQLite 数据库进行读取和写入的功能。 SQLite 是一个轻量级的嵌入式数据库引擎,被广泛应用于移动设备和嵌入式系统中。而 sqlite-jdbc-3.25.1.jar 则是 SQLite 数据库的 Java 接口,它允许开发者使用 Java 语言来访问和操作 SQLite 数据库。该驱动程序允许在 Java 应用程序中使用 SQL 语句对 SQLite 数据库进行增、删、改、查等操作。 使用 sqlite-jdbc-3.25.1.jar 进行 SQLite 数据库操作非常简单。开发者只需在 Java 项目中引入该驱动程序的 Jar 文件,并使用 Java 代码进行连接和操作数据库即可。通过创建 Connection 对象,开发者可以连接到 SQLite 数据库。然后,可以使用该对象创建 Statement 对象,并通过执行 SQL 查询和更新语句来操作数据库中的数据。最后,需确保在使用完毕后,关闭相关的连接和资源。 除了提供基本的数据库连接和操作功能外,sqlite-jdbc-3.25.1.jar 还支持事务管理、预编译 SQL 语句、批量处理等高级功能,使得 SQLite 数据库在 Java 程序中的使用更加灵活和高效。 总而言之,sqlite-jdbc-3.25.1.jar 是一个用于连接和操作 SQLite 数据库的 Java 驱动程序。它方便了开发者在 Java 程序中使用 SQL 语句对 SQLite 数据库进行操作,为开发者提供了一个简单、高效的访问 SQLite 数据库的接口。 ### 回答2: sqlite-jdbc-3.25.1.jar是一个Java编程语言的SQLite数据库驱动程序。SQLite是一种轻量级的关系型数据库管理系统,具有快速、可靠和易于集成的特点。它是一个嵌入式数据库,不需要独立的服务器进程,可以直接在应用程序中使用。 sqlite-jdbc-3.25.1.jar是SQLite官方提供的Java接口实现。它提供了对SQLite数据库的连接、查询、插入、更新和删除等操作的支持。通过引入该jar包,我们可以在Java应用程序中使用SQLite数据库,进行数据的持久化存储和访问。 使用sqlite-jdbc-3.25.1.jar可以简化与SQLite数据库的交互过程。我们只需在Java程序中引入该库,并配置相应的连接参数,即可创建和管理SQLite数据库连接对象。然后,我们可以使用SQL语句来执行数据库操作,例如查询表中的数据、插入新的记录、更新已有记录等。 sqlite-jdbc-3.25.1.jar还提供了一些其他的功能和特性,例如批量操作、事务处理、预编译语句、连接池管理等,可以进一步优化数据库操作的性能和效率。 总之,sqlite-jdbc-3.25.1.jar是一个能够在Java应用程序中与SQLite数据库进行交互的驱动程序。通过使用它,我们可以更方便地使用SQLite作为数据存储和管理的解决方案,实现数据持久化和访问的需求。 ### 回答3: sqlite-jdbc-3.25.1.jar 是SQLite数据库的Java驱动程序。它是用于在Java应用程序中与SQLite数据库进行交互的关键库文件。SQLite是一个轻量级的嵌入式关系型数据库,适用于移动设备和小型应用。而sqlite-jdbc-3.25.1.jar允许Java开发人员通过提供一个简单的API来连接和操作SQLite数据库。 sqlite-jdbc-3.25.1.jar提供了一系列的类和方法,使开发人员可以轻松地创建、查询、更新和删除数据库中的数据。它支持执行SQL语句、预编译语句、事务管理等数据库操作。从连接数据库、执行SQL语句到关闭数据库连接,sqlite-jdbc-3.25.1.jar提供了一套完整的功能来简化与SQLite数据库的交互。 使用sqlite-jdbc-3.25.1.jar可以带来很多好处。首先,它提供了一个简单而易于使用的API,使得在Java应用程序中使用SQLite数据库变得更加方便。其次,它具有良好的性能和可靠性,能够处理大量数据和高并发访问。另外,sqlite-jdbc-3.25.1.jar是开源的,意味着开发人员可以根据自己的需求进行定制和扩展。最重要的是,由于SQLite是一个嵌入式数据库,所以在使用sqlite-jdbc-3.25.1.jar时不需要额外安装和配置数据库服务器,这使得应用程序的部署更加简单和便捷。 总而言之,sqlite-jdbc-3.25.1.jar是一个重要的Java库文件,它使得在Java应用程序中使用SQLite数据库变得更加便捷和高效。它具有简单易用的API、良好的性能和可靠性,适用于各种规模的应用程序。无论是在移动设备还是小型应用中,sqlite-jdbc-3.25.1.jar都是首选的数据库驱动程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值