java中PreparedStatement和Statement区别(转)

第一:
数据库在执行sql语句的时候如果使用PreparedStatement语句会有一点优势:因为数据库会preparedStatement
语句进行预编译,下次执行相同的sql语句时,数据库端不会再进行预编译了,而直接用数据库的缓冲区,提高数据访问的效率(但尽量尽量采用使用?号的方式传递参数),如果sql语句只执行一次,以后不再复用.
第二:
在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedSt atement代替Statement.也就是说,在任何时候都不要使用Statement.
基于以下的原因:
一.代码的可读性和可维护性.
虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次:
stmt.executeUpdate("insert into tb_name (col1,col2,col2,col4) valu es ('"+var1+"','"+var2+"',"+var3+",'"+var4+"')");
perstmt = con.prepareStatement("insert into tb_name (col1,col2,c ol2,col4) values (?,?,?,?)");
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();
不用我多说,对于第一种方法.别说其他人去读你的代码,就是你自己过一段时间再去读,都会觉得伤心.
二.PreparedStatement尽最大可能提高性能.
每一种数据库都会尽最大努力对预编译语句提供最大的性能优化.因为预编译语句有可能被重复调用.所以语句在被DB的编译器编译后的执行代码被缓存下来,那么下次调用时只要是相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中(相当于一个涵数)就会得到执行.这并不是说只有一个C onnection中多次执行的预编译语句被缓存,而是对于整个DB中,只要预编译的语句语法和缓存中匹配.那么在任何时候就可以不需要再次编译而可以直接执行.而statement的语句中,即使是相同一操作,而由于每次操作的数据不同所以使整个语句相匹配的机会极小,几乎不太可能匹配.比如:
insert into tb_name (col1,col2) values ('11','22');
insert into tb_name (col1,col2) values ('11','23');
即使是相同操作但因为数据内容不一样,所以整个个语句本身不能匹配,没有缓
存语句的意义.事实是没有数据库会对普通语句编译后的执行代码缓存.
当然并不是所以预编译语句都一定会被缓存,数据库本身会用一种策略,比如使
用频度等因素来决定什么时候不再缓存已有的预编译结果.以保存有更多的空间存储新的预编译语句.
三.最重要的一点是极大地提高了安全性.
即使到目前为止,仍有一些人连基本的恶义SQL语法都不知道.
String sql = "select * from tb_name where name= '"+varname+" ' and passwd='"+varpasswd+"'";
如果我们把[' or '1' = '1]作为varpasswd传入进来.用户名随意,看看会成为什么?
select * from tb_name = '随意' and passwd = '' or '1' = '1';
因为'1'='1'肯定成立,所以可以任何通过验证.更有甚者:
把[';drop table tb_name;]作为varpasswd传入进来,则:
select * from tb_name = '随意' and passwd = '';drop table tb_na me;有些数据库是不会让你成功的,但也有很多数据库就可以使这些语句得到执行.
而如果你使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.只要全使用预编译语句,你就用不着对传入的数据做任何过虑.而如果使用普通的statement,有可能要对drop,;等做费尽心机的判断和过虑.
上面的几个原因,还不足让你在任何时候都使用PreparedStatement吗?。

合集下载

preparestatement unwrap方法

preparestatement unwrap方法

PreparedStatement unwrap方法1. 介绍在Java的JDBC API中,PreparedStatement接口是Statement接口的子接口,用于执行预编译的SQL语句。

PreparedStatement接口提供了unwrap方法,用于将PreparedStatement对象转换为其他类型的对象。

unwrap方法的定义如下:<T> T unwrap(Class<T> iface) throws SQLException;该方法接受一个Class对象作为参数,表示要转换成的目标类型。

如果当前的PreparedStatement对象可以被转换成目标类型,则返回转换后的对象;否则抛出SQLException异常。

unwrap方法的主要作用是支持JDBC 4.0规范中引入的新特性,即”JDBC接口的可包装性”。

通过unwrap方法,可以在不改变现有代码的情况下,将JDBC接口对象转换成具体的实现类对象,以便访问更丰富的特性和功能。

本文将详细介绍PreparedStatement unwrap方法的使用方法和示例,并解释其背后的原理和用途。

2. 使用方法unwrap方法的使用方法非常简单,只需要按照以下步骤进行操作:1.创建一个PreparedStatement对象,可以通过Connection对象的prepareStatement方法来获得;2.调用unwrap方法,传入目标类型的Class对象作为参数;3.如果成功转换,将返回转换后的对象;否则抛出SQLException异常。

以下是一个示例代码,演示了如何使用unwrap方法将PreparedStatement对象转换为OraclePreparedStatement对象:import oracle.jdbc.OraclePreparedStatement;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class Example {public static void main(String[] args) {try {Connection connection = getConnection(); // 获取数据库连接PreparedStatement preparedStatement = connection.prepareStatement ("SELECT * FROM table");OraclePreparedStatement oraclePreparedStatement = preparedStatemen t.unwrap(OraclePreparedStatement.class);// 使用oraclePreparedStatement对象进行更多操作} catch (SQLException e) {e.printStackTrace();}}// 获取数据库连接的方法private static Connection getConnection() throws SQLException {// ...}}在上述示例中,我们首先创建了一个PreparedStatement对象,然后使用unwrap方法将其转换为OraclePreparedStatement对象。

jdbc_preparedstatement_setobject_引号_解释说明

jdbc_preparedstatement_setobject_引号_解释说明

jdbc preparedstatement setobject 引号解释说明1. 引言1.1 概述在开发数据库相关应用程序时,我们经常需要使用JDBC(Java Database Connectivity)来连接和操作数据库。

其中,JDBC Prepared Statement是一种预编译的SQL语句对象,可以提高数据库操作的效率和安全性。

1.2 文章结构本文将详细介绍JDBC Prepared Statement中的SetObject方法,并重点解释该方法中引号的作用和使用场景。

文章分为以下几个部分:引言、JDBC Prepared Statement简介、SetObject方法概述、引号的作用和使用场景以及结论。

1.3 目的本文旨在帮助读者深入了解JDBC Prepared Statement中SetObject方法的使用,并解释引号在这个方法中起到的作用。

通过本文的阐述,读者能够更加清楚地理解如何正确地运用SetObject方法,避免出现问题或错误。

同时,本文也旨在提供对JDBC Prepared Statement和SetObject方法整体评价的总结。

注:本文主要针对Java编程语言进行讲解,并假设读者已经具备基本的Java编程知识和对关系型数据库有一定了解。

2. JDBC Prepared Statement2.1 简介JDBC(Java Database Connectivity)是一种用于在Java程序和数据库之间建立连接并进行数据操作的API。

JDBC提供了几个不同的语句类型,其中之一就是Prepared Statement(预编译语句),它可以在执行前将SQL查询或更新语句预先编译,并将参数以占位符的形式存储在语句中。

2.2 作用Prepared Statement的主要作用是通过预编译和参数化查询来提高数据库操作的性能和安全性。

相比于普通的Statement语句,Prepared Statement可以有效地避免SQL注入攻击,并且在多次执行相同语句时,只需要编译一次,而不必每次都重新解析SQL语句。

java_web学习(九)PreparedStatement动态参数的引入

java_web学习(九)PreparedStatement动态参数的引入

java_web学习(九)PreparedStatement动态参数的引⼊⼀.PreparedStatement 概述在的操作过程中,PreparedStatement 对象是⼀个很不起眼但是记为重要的接⼝对象,它继承于Statement,并与之在两⽅⾯有所不同:1)PreparedStatement 实例包含已编译的 SQL 语句。

这就是使语句“准备好”。

包含于 PreparedStatement 对象中的 SQL 语句可具有⼀个或多个 IN 参数。

IN参数的值在 SQL 语句创建时未被指定。

相反的,该语句为每个 IN 参数保留⼀个问号(“?”)作为占位符。

每个问号的值必须在该语句执⾏之前,通过适当的setXXX ⽅法来提供。

2)由于 PreparedStatement 对象已预编译过,所以其执⾏速度要快于 Statement 对象。

因此,多次执⾏的 SQL 语句经常创建为PreparedStatement 对象,以提⾼效率。

⼆.PreparedStatement应⽤实例2.1第⼀步导⼊jar包2.2 创建表t11 <body>2 <%3//加载数据库驱动给jdbc4 Class.forName("org.gjt.mm.mysql.Driver");5 out.print("成功加载驱动");6 String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";7//获取数据库连接,让java可以操作mysql8 Connection conn = DriverManager.getConnection(url);9//定义⼀条SQL命令创建⼀个名为t1的表10 String sql = "create table t1(sno varchar(20),name varchar(20),birth String)";11//从connection对象中,获取⼀个sql执⾏者12 PreparedStatement ps = conn.prepareStatement(sql);13//执⾏14 ps.execute();15 out.print( conn );16//⾸先关闭连接18 ps.close();19 conn.close();20 %>2122 </body>2.3 对t1表中的数据操作只需要将sql命令替换掉<%String sno="1";String name="⼩明";String birth="2008-08-24";//加载数据库驱动给jdbcClass.forName("org.gjt.mm.mysql.Driver");out.print("成功加载驱动");String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";//获取数据库连接,让java可以操作mysqlConnection conn = DriverManager.getConnection(url);//定义⼀条SQL命令String sql = "insert into student(sno,name,birth) values(?,?,?)";//从connection对象中,获取⼀个sql执⾏者PreparedStatement ps = conn.prepareStatement(sql);//防⽌把代码写死ps.setString(1,sno);ps.setString(2,name);ps.setString(3,birth);//执⾏ps.execute();out.print( conn );//⾸先关闭连接ps.close();conn.close();%></body>//增加信息String sql="insert into t1(sno,name,birth) values(?,?,?)"; //更改信息String sql1="UPDATE t1 SET birth=? where sno=?"; //删除信息String sql2="delete from t1 where sno=?";。

connection.preparedstatement方法-概述说明以及解释

connection.preparedstatement方法-概述说明以及解释

connection.preparedstatement方法-概述说明以及解释1.引言1.1 概述Connection类是Java JDBC API中的一个重要接口,它与数据库的连接建立和维护相关的方法。

在使用Connection对象与数据库进行交互时,可以通过Connection接口的prepareStatement方法来创建一个PreparedStatement对象,用于执行预编译的SQL语句。

和Statement对象相比,PreparedStatement对象具有更好的性能和安全性。

使用PreparedStatement对象执行SQL语句时,数据库驱动程序会首先对SQL语句进行编译和优化,并缓存编译好的执行计划。

因此,对于需要重复执行的SQL语句,PreparedStatement对象能够提高执行速度。

PreparedStatement对象也提供了一种更安全的方式来执行SQL语句。

通过使用占位符(placeholder)来表示变量部分,可以有效地防止SQL注入攻击。

PreparedStatement对象利用参数化查询,将传递给占位符的变量值与SQL语句进行分离,确保了SQL语句的安全性。

在创建PreparedStatement对象时,可以将SQL语句作为参数传递给prepareStatement方法。

在SQL语句中,可以使用占位符(通常是问号"?")来表示变量部分,然后使用set方法来设置每个占位符的值。

通过这种方式,可以方便地对SQL语句进行动态拼接,而不需要手动处理字符串连接和转义。

综上所述,Connection接口的prepareStatement方法提供了一种高效、安全和灵活的执行SQL语句的方式。

通过使用PreparedStatement 对象,可以减少SQL注入的风险,并且提升执行性能。

在实际应用中,特别是需要频繁执行的SQL语句,推荐使用prepareStatement方法来替代普通的Statement对象。

java的prepaedstatement的fetchsize使用方法

java的prepaedstatement的fetchsize使用方法

java的prepaedstatement的fetchsize使用方法【1.简介】在Java中,PreparedStatement是一个非常重要的接口,它允许我们执行预编译的SQL语句。

preparedStatement提供了许多便利的方法,如executeQuery、executeUpdate等,使得执行SQL语句变得更加简单和高效。

在本文中,我们将重点介绍PreparedStatement中的fetchSize属性,以及如何在Java程序中使用它。

【2.FetchSize的作用】fetchSize属性用于指定从数据库中一次检索的记录数。

在执行查询操作时,如果设置了fetchSize,那么在每次调用executeQuery方法时,将会返回指定大小的结果集。

这样可以避免一次性返回大量数据,导致内存溢出或性能下降。

【3.设置FetchSize的方法】要在PreparedStatement中设置fetchSize,可以按照以下步骤操作:1.创建一个PreparedStatement对象,使用带有游标参数的SQL语句进行初始化。

2.使用setFetchSize方法设置fetchSize值。

例如:```javapreparedStatement.setFetchSize(10);```3.调用executeQuery或executeUpdate方法执行查询。

4.遍历结果集,处理每一行数据。

5.如果需要多次执行查询,可以重复步骤2-4。

【4.实例演示】以下是一个使用PreparedStatement和fetchSize执行查询的示例:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class FetchSizeExample {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/test";String user = "root";String password = "123456";Connection connection =DriverManager.getConnection(url, user, password);String sql = "SELECT * FROM users WHERE age > ?";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setFetchSize(10);ResultSet resultSet = preparedStatement.executeQuery();while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");int age = resultSet.getInt("age");System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);}resultSet.close();preparedStatement.close();connection.close();}}```在这个示例中,我们首先创建了一个连接,然后使用PreparedStatement 执行查询。

preparedstatement用法 in -回复

preparedstatement用法 in -回复

preparedstatement用法in -回复PreparedStatement用法inPreparedStatement是Java中一个重要的数据库操作API,它用于执行具有参数的SQL语句,可以有效地防止SQL注入攻击和提高执行效率。

其中,in是PreparedStatement的一个常用用法,用于执行包含in子句的SQL查询。

本文将一步一步回答PreparedStatement用法in的相关问题。

1. 什么是PreparedStatement?PreparedStatement是Java中的一个接口,它继承自Statement接口,用于执行带有参数的SQL语句。

与Statement不同的是,PreparedStatement可以防止SQL注入攻击,并且执行效率更高。

PreparedStatement的实例可以通过Connection的prepareStatement()方法创建。

2. PreparedStatement的in用法是什么?在SQL查询中,in子句用于指定一个列的多个可能值,常用于查询满足某些条件的结果。

PreparedStatement的in用法允许我们动态地将多个可能值传递给SQL查询,避免了手动构建SQL语句的复杂性和潜在的安全隐患。

3. 怎样使用PreparedStatement的in用法?首先,我们需要构建一个包含in子句的SQL语句,并使用问号"?" 作为参数占位符。

例如,我们要查询城市为北京、上海和广州的所有用户,可以构建如下SQL语句:javaString sql = "SELECT * FROM users WHERE city IN (?, ?, ?)";接下来,我们可以通过prepareStatement()方法创建PreparedStatement实例,然后设置参数的值:javaPreparedStatement statement =connection.prepareStatement(sql);statement.setString(1, "北京");statement.setString(2, "上海");statement.setString(3, "广州");在这个例子中,我们使用了setString()方法来设置参数的值,setString()方法的第一个参数指定了参数的位置,第二个参数是具体的参数值。

java jdbc的callablestatement接口常用方法-概述说明以及解释

java jdbc的callablestatement接口常用方法-概述说明以及解释1.引言1.1 概述在Java开发中,JDBC(Java Database Connectivity)是一种用于与关系型数据库进行交互的标准API。

JDBC提供了一组接口和类,用于连接数据库、执行SQL语句、获取查询结果等操作。

在JDBC中,CallableStatement接口是PreparedStatement接口的子接口,用于调用存储过程和函数。

相比于PreparedStatement,CallableStatement提供了更多关于存储过程和函数的操作方法,使得开发者能够更加方便地与数据库中的存储过程和函数进行交互。

本文将介绍Java JDBC的CallableStatement接口的常用方法,帮助读者了解和掌握在Java程序中使用CallableStatement接口进行存储过程和函数的调用。

在接下来的章节中,我们将首先对CallableStatement接口进行简单的介绍,包括其作用和用途。

然后,我们将详细介绍CallableStatement 接口常用的方法,包括参数设置、执行存储过程和函数、获取返回结果等。

最后,我们将对本文进行总结,并展望一些与CallableStatement相关的未来发展方向。

通过学习本文,读者将能够了解并掌握Java JDBC的CallableStatement接口的常用方法,从而能够在实际开发中灵活地进行存储过程和函数的调用,提高数据库操作的效率和准确性。

接下来,让我们开始深入探索CallableStatement接口的奥秘吧!1.2 文章结构本文主要介绍Java JDBC的CallableStatement接口的常用方法。

文章分为引言、正文和结论三部分。

引言部分概述了文章的主题和目的。

主要介绍了Java JDBC技术是一种用于与数据库进行交互的重要技术,而CallableStatement接口是Java JDBC中用于调用数据库存储过程和函数的核心接口。

java sql预编译代码

Java SQL预编译代码一、什么是SQL预编译SQL预编译是指在执行SQL语句之前,将其编译为可执行的格式,以提高执行效率。

在Java中,我们可以使用预编译的方式来执行SQL语句,这样可以避免SQL注入攻击,同时也能提高执行效率。

二、为什么要使用SQL预编译使用SQL预编译的好处主要体现在以下几个方面:1.提高执行效率:预编译的SQL语句在执行之前已经被编译为可执行的格式,减少了每次执行SQL语句时的解析和编译时间,从而提高了执行效率。

2.避免SQL注入攻击:预编译的SQL语句可以通过参数绑定的方式来传递参数,而不是直接将参数拼接到SQL语句中。

这样可以有效地防止SQL注入攻击。

3.代码可读性更高:使用预编译的SQL语句可以将SQL语句与代码逻辑分离,使得代码更加清晰易懂。

三、使用PreparedStatement类进行SQL预编译在Java中,我们可以使用PreparedStatement类来实现SQL预编译。

下面是使用PreparedStatement类进行SQL预编译的示例代码:// 1. 创建PreparedStatement对象String sql = "INSERT INTO user (id, name) VALUES (?, ?)";PreparedStatement pstmt = connection.prepareStatement(sql);// 2. 设置参数pstmt.setInt(1, 1);pstmt.setString(2, "John");// 3. 执行SQL语句pstmt.executeUpdate();// 4. 关闭PreparedStatement对象pstmt.close();在上面的示例代码中,我们首先创建了一个PreparedStatement对象,并将SQL语句传递给它。

然后,通过调用setXXX方法来设置SQL语句中的参数,最后调用executeUpdate方法来执行SQL语句。

水利信息化高级编程(Java程序设计Ⅱ)智慧树知到答案章节测试2023年

第一章测试1.给定如下Java代码,下列()方法可以将其加入Example类中,并且能够编译正确。

public class Example {public int getSomething(int d) {return d;}}A:B.public void getSomething(int i) {} B:private int getSomething(int i,String s) {} C:private int getSomething(int i,String s) {return 20;} D:publicdouble getSomething() {return “abc”} 答案:C2.构成方法重载的要素不包括()。

A:方法名相同 B:在同一个类中 C:返回类型不同 D:参数列表不同答案:C3.在如下所示的Example类中,共有()个构造方法。

public class Example{private int x;private Example() {x=1;}public void Example (double f){this.x (int)f;}public Example(String s) {}} A:4 B:1 C:2 D:3 答案:C4.给定如下Java代码,编译运行,结果将是()public class Example{publicdouble result(double d1,double d2){return d1<d2?D1:d2;}public doubleresult(int d1,double d2){return d1>d2?d1:d2;}public int result(int d1,intd2){return d1-d2;}private int result(int i){return i;}public static voidmain(String[ ] args){Example s newExample();System.out.print(s.result(2,3.0)+“,”)System.out.print(s.result(4.0,4.5)+“,”);System.out.print(s.result(10,9));}} A:3.0,4.5,1 B:3.0,4.0,1 C:2,4.0,1 D:-1,4.0,1 答案:B5.下列不属于面向对象技术的基本特征是() A:模块性 B:多态性 C:封装性 D:继承性答案:A6.关于面向对象方法的优点,下列正确的叙述是() A:与人类习惯的思维方法比较一致 B:可重用性好 C:以数据操作为中心 D:可维护性好答案:ABD7.当类中的一个成员方法被下面哪个修饰符修饰后,该方法只能在本类中被访问() A:private B:public C:final D:default 答案:A8.关于static的说法正确的是() A:static可以把一个普通方法变为一个类方法 B:static可以把普通的成员方法变为一个静态方法 C:可以定义静态方法,但不能定义静态变量 D:class前不可以用static作为修饰符答案:ABD9.方法的调用() A:必须提供实际参数 B:只能是一个表达式 C:必须是一条完整的语句 D:可能是语句,也可能是表达式答案:D10.通过使用关键字()创建对象 A:instantiate B:new C:create D:object 答案:B第二章测试1.若一个类中对某个方法进行重载,能够区分这些重载方法的手段是() A:它们的返回类型不同 B:它们的参数列表不同 C:它们的方法名不同 D:它们的访问控制权限修饰符不同答案:B2.Java语言的类间的继承关系是() A:多重的 B:线程的 C:单重的 D:不能继承的答案:C3.下面叙述中,错误的是?() A:父类不能替代子类 B:子类继承父类 C:子类能替代父类 D:父类包含子类答案:D4.下列关于抽象类的描述中,错误的是?() A:抽象类是不可以有构造方法的 B:抽象类是用修饰符abstract说明的 C:抽象类通常要有它的子类 D:抽象类是不可以定义对象的答案:A5.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是?() A:private B:protected C:默认D:public 答案:B6.下列关于继承性的描述中,错误的是?() A:子类继承了父类中除私有的成员以外的其他成员 B:Java通过接口可使子类使用多个父类的成员 C:Java支持单重继承和多重继承 D:一个类可以同时生成多个子类答案:C7.设有如下类的定义:()public class parent {int change() {}}class Childextends Parent { }则,下面哪些方法可加入Child类中? A:abstract intchang(){ } B:int chang(int i){ } C:public int change(){ } D:private intchange(){ } 答案:BC8.下面对于单例设计模式的描述,正确的是?() A:定义静态方法返回该类实例 B:在内部创建一个该类的实例对象,使用静态变量引用该实例对象 C:使用private修饰静态变量,禁止外界直接访问 D:类中定义一个无参的构造方法,并且声明为私有答案:ABCD9.抽象类不能实例化。

java.util.Date 与 java.sql.Date互转 及 字符串转换为日期时间格式

1、将java.util.Date 转换为java.sql.Datejava.util.Date utilDate = new java.util.Date();java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());2、若要插入到数据库并且相应的字段为Date类型可使用PreparedStatement.setDate(int ,java.sql.Date)方法其中的java.sql.Date可以用上面的方法得到也可以用数据库提供TO_DA TE函数比如现有udTO_DATE(new SimpleDateFormat().format(ud,"yyyy-MM-dd HH:mm:ss"), "YYYY-MM-DD HH24:MI:SS")注意java中表示格式和数据库提供的格式的不同sql="update tablename set timer=to_date('"+x+"','yyyymmddhh24miss') where ....." 这里的x为变量为类似:200805221312233、如何将"yyyy-mm-dd"格式的字符串转换为java.sql.Date方法1SimpleDateFormat bartDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String dateStringToParse = "2007-7-12";try{java.util.Date date = bartDateFormat.parse(dateStringToParse);java.sql.Date sqlDate = new java.sql.Date(date.getTime());System.out.println(sqlDate.getTime());}catch (Exception ex) {System.out.println(ex.getMessage());}方法2String strDate = "2002-08-09";StringTokenizer st = new StringTokenizer(strDate, "-");java.sql.Date date=new java.sql.Date(Integer.parseInt(st.nextToken()));java.util.Date和java.sql.Date的区别java.sql.Date,java.sql.Time和java.sql.Timestamp三个都是java.util.Date的子类(包装类)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档