java.sql.Connection类中有个方法

Java教程之JDBC中的常用接口和类 JDBC定义了一系列操作数据库的接口和类,这些接口和类位于java.sql包中。接下来,本节将详细介绍JDBC的常用API。 Driver接口 Driver接口是所有JDBC驱动程序必须要实现的接口,该接口提供给数据库厂商使用。在编写JDBC程序时,必须先装载特定数据库厂商的驱动程序,装载驱动程序通过java.lang.Class类中的静态方法forName()实现。 DriverManager类 DriverManager类用于加载JDBC驱动并创建与数据库的连接,DriverManager类的常用方法 阅读详情

java.sql.Connection类中有个方法 10

java.sql.Connection类中有个方法 

PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException

这个方法中参数的第二个作用是什么,代表什么意思? 

下面是org.springframework.jdbc.core.PreparedStatementCreatorFactory中的一段代码 
[code=java] 

public PreparedStatement createPreparedStatement(Connection con) throws SQLException { 
        PreparedStatement ps = null; 
        if (generatedKeysColumnNames != null || returnGeneratedKeys) { 
                try { 
                        if (generatedKeysColumnNames != null) { 
                                ps = con.prepareStatement(this.actualSql, generatedKeysColumnNames);   // TODO 
                        }else { 
                                ps = con.prepareStatement(this.actualSql, PreparedStatement.RETURN_GENERATED_KEYS); 
                        } 
                }catch (AbstractMethodError ex) { 
                        throw new InvalidDataAccessResourceUsageException( 
                                        "The JDBC driver is not compliant to JDBC 3.0 and thus " + 
                                        "does not support retrieval of auto-generated keys", ex); 
            } 
        } 
        else if (resultSetType == ResultSet.TYPE_FORWARD_ONLY && !updatableResults) { 
                ps = con.prepareStatement(this.actualSql); 
        } 
        else { 
                ps = con.prepareStatement(this.actualSql, resultSetType, 
                                updatableResults ? ResultSet.CONCUR_UPDATABLE : ResultSet.CONCUR_READ_ONLY); 
        } 
        setValues(ps); 
        return ps; 
} 



呵呵,这个问题困惑我许久了!
问题补充
kimmking 写道
finallygo 写道
ms在联合主键的时候用

jdbc规范里,insert时,获取自动添加的keys用的。 
但是翻了下mysql 5.1.13 驱动的实现 
第二个参数传 什么都可以,只要length > 0就可以。 

/** 
* @see Connection#prepareStatement(String, String[]) 
*/ 
public java.sql.PreparedStatement prepareStatement(String sql, 
String[] autoGenKeyColNames) throws SQLException { 
java.sql.PreparedStatement pStmt = prepareStatement(sql); 

((com.mysql.jdbc.PreparedStatement) pStmt) 
.setRetrieveGeneratedKeys((autoGenKeyColNames != null) 
&& (autoGenKeyColNames.length > 0)); 

return pStmt; 
} 

我说为啥,传什么都可以运行的通,呵呵,API说的不是很明白!
2011年3月30日 18:25

3个答案按时间排序按投票排序

0 0

采纳的答案

finallygo 写道
ms在联合主键的时候用

jdbc规范里,insert时,获取自动添加的keys用的。 
但是翻了下mysql 5.1.13 驱动的实现 
第二个参数传 什么都可以,只要length > 0就可以。 

/** 
* @see Connection#prepareStatement(String, String[]) 
*/ 
public java.sql.PreparedStatement prepareStatement(String sql, 
String[] autoGenKeyColNames) throws SQLException { 
java.sql.PreparedStatement pStmt = prepareStatement(sql); 

((com.mysql.jdbc.PreparedStatement) pStmt) 
.setRetrieveGeneratedKeys((autoGenKeyColNames != null) 
&& (autoGenKeyColNames.length > 0)); 

return pStmt; 
} 

2011年3月30日 18:25
0 0

ms在联合主键的时候用

2011年3月30日 18:25
0 0

/** 
     * Creates a default <code>PreparedStatement</code> object capable 
     * of returning the auto-generated keys designated by the given array. 
     * This array contains the names of the columns in the target 
     * table that contain the auto-generated keys that should be returned. 
     * This array is ignored if the SQL 
     * statement is not an <code>INSERT</code> statement. 
     * <P> 
     * An SQL statement with or without IN parameters can be 
     * pre-compiled and stored in a <code>PreparedStatement</code> object. This 
     * object can then be used to efficiently execute this statement 
     * multiple times. 
     * <P> 
     * <B>Note:</B> This method is optimized for handling 
     * parametric SQL statements that benefit from precompilation. If 
     * the driver supports precompilation, 
     * the method <code>prepareStatement</code> will send 
     * the statement to the database for precompilation. Some drivers 
     * may not support precompilation. In this case, the statement may 
     * not be sent to the database until the <code>PreparedStatement</code> 
     * object is executed.  This has no direct effect on users; however, it does 
     * affect which methods throw certain SQLExceptions. 
     * <P> 
     * Result sets created using the returned <code>PreparedStatement</code> 
     * object will by default be type <code>TYPE_FORWARD_ONLY</code> 
     * and have a concurrency level of <code>CONCUR_READ_ONLY</code>. 
     * 
     * @param sql an SQL statement that may contain one or more '?' IN 
     *        parameter placeholders 
     * @param columnNames an array of column names indicating the columns 
     *        that should be returned from the inserted row or rows 
     * @return a new <code>PreparedStatement</code> object, containing the 
     *         pre-compiled statement, that is capable of returning the 
     *         auto-generated keys designated by the given array of column 
     *         names 
     * @exception SQLException if a database access error occurs 
     * 
     * @since 1.4 
     */ 
    PreparedStatement prepareStatement(String sql, String columnNames[]) 
throws SQLException; 

YOLOv11 改进 - 注意力机制 | LS-YOLO MSFE 多尺度特征提取模块:并行分支结构增强多尺度感知,优化遥感与小目标检测 本文介绍了一种用于滑坡检测的模型LS-YOLO及其在YOLOv11中的结合应用。LS-YOLO首先构建多尺度滑坡数据集MSLD,为模型训练提供丰富数据。设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块MSFE,充分提取滑坡特征信息。在解耦头中采用膨胀卷积增加模型感受野。我们将MSFE模块集成进YOLOv11,替换部分原有模块。实验表明,改进后的YOLOv11在数据集中表现出色 。 阅读详情

相关推荐

zemax显微镜设计

光学显微镜(Optical Microscope,简写OM)是利用光学原理,把人眼所不能分辨的微小物体放大成像,以供人们提取微细结构信息的。我这里是插入进来之后才反转,如果之前已经在目镜的单独文件夹反转过了就不用了。将目镜的焦距设定为25mm,通过缩放,然后将镜头调转过来。镜头数据中的曲率半径、物距像距都设置为变量。将镜头的焦距整体变为16.25mm。将孔径类型设置为按照光阑尺寸浮动。打开物镜的文件,选择插入镜头。由英国物理学家虎克制作。2、像空间孔径0.25。3、像面大小-0.9。

fendoudecheng的博客 8545

“java.sql.Connection.prepareStatement(String)“because “this.conn“ is null

解决Cannot invoke “java.sql.Connection.prepareStatement(String)“because “this.conn“ is null

qq_29820687的博客 2353

求助:有没有基于pscad的锂电池仿真模型

求助:有没有基于pscad的锂电池仿真模型 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变没有 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写...

qq_38922523的博客 1222

解决Cannot invoke “java.sql.Connection.prepareStatement(String)“because “this.conn“ is null

Cannot invoke “java.sql.Connection.prepareStatement(String)“because “this.conn“ is null 在进行数据库连接时,我们可能会出现这样的报错情况,如果代码没有问题的话,一般是你的connector jar包太老了,需要重新导入8以上的版本。 如果发现自己的connector jar包已经是8以上版本也要检查一下,我之前在做一个小程序的时候也遇到了这个“this.conn“ is null问题,自己的connector jar是

holyMMoo的博客 4万+

告别Keil手动分区!用CubeMX+VS Code一键生成带Bootloader的STM32 OTA工程

本文详细介绍了如何利用STM32CubeMX和VS Code实现STM32 OTA工程的自动化构建,告别传统Keil手动分区的繁琐流程。通过图形化配置Flash分区、自动生成链接脚本以及实现Bootloader跳转逻辑,开发者可以高效完成远程升级功能开发,显著提升嵌入式开发效率。

weixin_33720956的博客 389

Apache-Plc4x-Modbus-Tcp学习记录(一)

Apache-Plc4x-Modbus-Tcp学习记录(一)

weixin_45325423的博客 6988

用prepareStatement(String sql, String[] columnNames)获取自动生成的id

/**   * 先增加一个部门,再给此部门增加一个员工.   * 要点:增加部门后如何获得生成的部门ID.   */  @Test  public void test2(){   //假设页面传入的部门数据是   String dname="软件部";   String loc="北京";   //假设传入的员工数据是   String ename="八戒";   Strin

lyq18235187358的博客 3962

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 427

Connection 对象简介 方法解读 JDBC简介(四)

Connection 对象简介 方法解读 JDBC简介(四) 通过驱动管理器DriverManager的getConnection方法,可以创建到指定URL的连接 Connection conn = DriverManager.getConnection(url, user, password); 看得出来,在JDBC中连接被...

noteless的博客 3627

【以太网硬件十二】以太网端口自协商过程解密之二

简述以太网端口自协商的过程

highman110的博客 2488

基于STM32+华为云IOT设计的云平台监控系统_102

本次设计结合现代生活的具体需求,设计出一套基于华为云IOT设计的云平台监控系统,可以远程实时查看家里光照强度、温湿度等信息,支持在云端控制家里的电器设备,实现远程控制。

7643

12_02.【Java】JDBC中常用的类和接口

JDBC中常用的类和接口 java.sql包中提供了丰富的接口、类,还有一些Enum枚举对象和Exception常见异常用于数据库编程。利用这些类和接口可以放拜年的访问并处理存储在数据库中的数据。本节将介绍一些常用的JDBC接口和类,这些接口和类都在java.sql包中。 一、DriverManager类 DriverManager类是JDBC的管理层,用来管理数据库中的驱动程序。在使用Java操作数据库之前,必须使用Class类的静态方法forName(String className)加载能够连接数据库

changchuanlai 1010

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1105

java语言sql接口_java.sql包中的类和接口及其使用

java.sql包提供使用Java编程语言访问并处理存储在数据源中数据的API,可以动态地安装不同驱动程序来访问不同数据源。下面,详解java.sql包中包含的常用的接口和类1、DriverManager类负责管理JDBC驱动程序,使用JDBC驱动程序之前,必须先将驱动程序加载并向DriverManager注册后才可以使用,同时提供方法来建立与数据库的连接。常用方法Class.forName(St...

weixin_35434041的博客 4548

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

几个重要的java数据库访问类和接口

编写访问数据库的Java程序还需要几个重要的类和接口。 DriverManager类 DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:     stat

a54654132的博客 1028

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java连接mysql需要接口吗_Java程序连接数据库的常用的类和接口介绍

编写访问数据库的Java程序还需要几个重要的类和接口。DriverManager类DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:static Connectio...

weixin_32842805的博客 510

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JAVA自学笔记,JDBC中常用的类和接口

在Java语言中提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地进行数据访问和处理。我们来看一下JDBC中常用的类和接口,它们都在java.sql包中。 DriverManger类 DriverManager类用来管理数据库中的所有驱动程序,它是JDBC的管理层,用于用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。这里提到的数据库驱动程序,在使用Java操作...

Lxxx_H的博客 516

java接口和数据库_几个重要的java数据库访问类和接口

编写访问数据库的Java程序还需要几个重要的类和接口。DriverManager类DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:static Connectio...

weixin_28728031的博客 640

JDBC类,对象,方法总结

1.properties类 Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。 static { Properties properties = new Properties(); InputStr

hadet的博客 246

java数据库访问类和接口

编写访问数据库的Java程序还需要几个重要的类和接口。 DriverManager类 DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象: stat...

weixin_30828379的博客 160

java sql package_求大神给填个注释~~ package com.mypro.dao; import java.sql.Connection; import java...

求大神给填个注释~~packagecom.mypro.dao;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statem...求大神给填个注释~~package com.mypro.dao;impor...

weixin_31556767的博客 266

数据库操作包——java.sql(来自JDK文档)

包 java.sql 接口索引 CallableStatementConnectionDatabaseMetaDataDriverPreparedStatementResultSetResultSetMetaDataStatement类索引 DateDriverManagerDriverPropertyInfoTimeTimestampTypes异常索引 DataTrunc

靠天靠地不如靠自己 2477

java里数据库有几个类_Java知多少(107)几个重要的java数据库访问类和接口

编写访问数据库的Java程序还需要几个重要的类和接口。DriverManager类DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:static Connectio...

weixin_39992199的博客 172

java 数据库访问类_几个重要的java数据库访问类和接口

编写访问数据库的Java程序还需要几个重要的类和接口。DriverManager类DriverManager类处理驱动程序的加载和建立新数据库连接。DriverManager是java.sql包中用于管理数据库驱动程序的类。通常,应用程序只使用类DriverManager的getConnection()静态方法,用来建立与数据库的连接,返回Connection对象:static Connectio...

weixin_42097369的博客 410

JDBC核心API详解之Connection类和Statement类

Connection(类):获取数据库连接对象 功能:类中的方法 1.获取执行Sql对象Statement Statement createStatement(); Statement prepareStatement(String sql); 2.管理事务 开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务 提交事务:void commit() 回滚事务:void rollback() Statement:执行Sql语句

weixin_47267628的博客 3290
上一篇: javax.sql.DataSource接口
下一篇: java.sql.Connection类中有个方法
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值