8-1、JDBC对象介绍(4大参数等)

1 JDBC中的主要类(接口)

在JDBC中常用的类有:

l  DriverManager;(注册驱动类,调用该类就执行静态代码块的内容,自己注册)

l  Connection;数据库连接, 可以得到statement,preparedStatement:java.sql.类

l  Statement;

l  ResultSet。

 

2 DriverManager

其实我们今后只需要会用DriverManager的getConnection()方法即可:

  1. Class.forName(“com.mysql.jdbc.Driver”);//注册驱动
  2. String url = “jdbc:mysql://localhost:3306/mydb1”;
  3. String username = “root”;
  4. String password = “123”;
  5. Connection con = DriverManager.getConnection(url, username, password);

 

注意,上面代码可能出现的两种异常:

  1. ClassNotFoundException:这个异常是在第1句上出现的,出现这个异常有两个可能:

l  你没有给出mysql的jar包;

l  你把类名称打错了,查看类名是不是com.mysql.jdbc.Driver。

 

  1. SQLException:这个异常出现在第5句,出现这个异常就是三个参数的问题,往往username和password一般不是出错,所以需要认真查看url是否打错。

 

对于DriverManager.registerDriver()方法了解即可,因为我们今后注册驱动只会Class.forName(),而不会使用这个方法。

 

3 Connection

Connection最为重要的方法就是获取Statement:

l  Statement stmt = con.createStatement();

 

后面在学习ResultSet方法时,还要学习一下下面的方法:

l  Statement stmt = con.createStatement(int,int[c1] );

4 Statement

Statement最为重要的方法是:

l  int executeUpdate[c2] (String sql):执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句;

l  ResultSet executeQuery[c3] (String sql):执行查询操作,执行查询操作会返回ResultSet,即结果集。

 

  boolean execute[c4] ()

Statement还有一个boolean execute()方法,这个方法可以用来执行增、删、改、查所有SQL语句。该方法返回的是boolean类型,表示SQL语句是否有结果集!。

如果使用execute()方法执行的是更新语句,那么还要调用int getUpdateCount()来获取insert、update、delete语句所影响的行数。

如果使用execute()方法执行的是查询语句,那么还要调用ResultSet getResultSet()来获取select语句的查询结果。

 

5 ResultSet之滚动结果集(了解)scroll,sentive, forward_only

下一行:默认只能使用它,其他的方法存在,但不能使用!默认的结果集不可滚动!

上一行

下N行

上N行

到N行

结果集不能滚动时,红色的方法表示不能使用。

ResultSet表示结果集,它是一个二维的表格!ResultSet内部维护一个行光标(游标),ResultSet提供了一系列的方法来移动游标:

l  void beforeFirst():把光标放到第一行的前面,这也是光标默认的位置;

l  void afterLast():把光标放到最后一行的后面;

l  boolean first():把光标放到第一行的位置上,返回值表示调控光标是否成功;

l  boolean last():把光标放到最后一行的位置上;

l   

l  boolean isBeforeFirst():当前光标位置是否在第一行前面;

l  boolean isAfterLast():当前光标位置是否在最后一行的后面;

l  boolean isFirst():当前光标位置是否在第一行上;

l  boolean isLast():当前光标位置是否在最后一行上;

l   

l  boolean previous():把光标向上挪一行;

l  boolean next():把光标向下挪一行;

l  boolean relative(int row):相对位移,当row为正数时,表示向下移动row行,为负数时表示向上移动row行;

l  boolean absolute(int row):绝对位移,把光标移动到指定的行上;

l  int getRow():返回当前光标所有行。

 

 

获取结果集元数据!(列数,列名等)

l  得到元数据:rs.getMetaData(),返回值为ResultSetMetaData;

l  获取结果集列数:int getColumnCount()

l  获取指定列的列名:String getColumnName(int colIndex)

 

结果集特性:当使用Connection的createStatement时,已经确定了Statement生成的结果集是什么特性。

l  是否可滚动

l  是否敏感(敏感:数据库改变,使结果集也会改变)

l  是否可更新(可更新:修改结果集,使数据库也改变)

con.createStatement():生成的结果集:不滚动、不敏感、不可更新!

con.createStatement(int,int):

第一个参数:

l  ResultSet.TYPE_FORWARD_ONLY:不滚动结果集;

l  ResultSet.TYPE_SCROLL_INSENSITIVE:滚动结果集,但结果集数据不会再跟随数据库而变化;

l  ResultSet.TYPE_SCROLL_SENSITIVE[c5] :滚动结果集,但结果集数据不会再跟随数据库而变化;

第二个参数:

l  CONCUR_READ_ONLY:结果集是只读的,不能通过修改结果集而反向影响数据库;

l  CONCUR_UPDATABLE:结果集是可更新的,对结果集的更新可以反向影响数据库。

 

 

 

上面方法分为两类,一类用来判断游标位置的,另一类是用来移动游标的。如果结果集是不可滚动的,那么只能使用next()方法来移动游标,而beforeFirst()、afterLast()、first()、last()、previous()、relative()方法都不能使用!!!

结果集是否支持滚动,要从Connection类的createStatement()方法说起。也就是说创建的Statement决定了使用Statement创建的ResultSet是否支持滚动。

Statement createStatement(int resultSetType, int resultSetConcurrency)

resultSetType的可选值:

l  ResultSet.TYPE_FORWARD_ONLY:不滚动结果集;

l  ResultSet.TYPE_SCROLL_INSENSITIVE:滚动结果集,但结果集数据不会再跟随数据库而变化;

l  ResultSet.TYPE_SCROLL_SENSITIVE :滚动结果集,但结果集数据不会再跟随数据库而变化;

 

可以看出,如果想使用滚动的结果集,我们应该选择TYPE_SCROLL_INSENSITIVE!其实很少有数据库驱动会支持TYPE_SCROLL_SENSITIVE的特性!通常我们也不需要查询到的结果集再受到数据库变化的影响。

 

resultSetConcurrency的可选值:

l  CONCUR_READ_ONLY:结果集是只读的,不能通过修改结果集而反向影响数据库;

l  CONCUR_UPDATABLE:结果集是可更新的,对结果集的更新可以反向影响数据库。

 

通常可更新结果集这一“高级特性”我们也是不需要的!

 

获取滚动结果集的代码如下:

Connection con = …

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY);

String sql = …//查询语句

ResultSet rs = stmt.executeQuery(sql);//这个结果集是可滚动的,不敏感的

 

6 ResultSet之获取列数据(getXxx(1,2,3…))

可以通过next()方法使ResultSet的游标向下移动,当游标移动到你需要的行时,就需要来获取该行的数据了,ResultSet提供了一系列的获取列数据的方法:

l  String getString(int columnIndex):获取指定列的String类型数据;

l  int getInt(int columnIndex):获取指定列的int类型数据;

l  double getDouble(int columnIndex):获取指定列的double类型数据;

l  boolean getBoolean(int columnIndex):获取指定列的boolean类型数据;

l  Object getObject(int columnIndex):获取指定列的Object类型的数据。

 

上面方法中,参数columnIndex表示列的索引,列索引从1开始,而不是0,这第一点与数组不同。如果你清楚当前列的数据类型,那么可以使用getInt()之类的方法来获取,如果你不清楚列的类型,那么你应该使用getObject()方法来获取。

ResultSet还提供了一套通过列名称来获取列数据的方法:

l  String getString(String columnName):获取名称为columnName的列的String数据;

l  int getInt(String columnName):获取名称为columnName的列的int数据;

l  double getDouble(String columnName):获取名称为columnName的列的double数据;

l  boolean getBoolean(String columnName):获取名称为columnName的列的boolean数据;

l  Object getObject(String columnName):获取名称为columnName的列的Object数据;


 

转载于:https://www.cnblogs.com/hyqblog/p/6405223.html

### 回答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、付费专栏及课程。

余额充值