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; 

基于ANSYS的电磁兼容仿真教程 最近,在做某系统的EMC仿真,使用ANSYS套件,对仿真学习做简要记录。本书简介与目录如下:本书配套有:视频教程+工程源文件+彩色仿真图片,下载链接如下:(审核中)第1章 基础知识1.1 电磁兼容基础​​​MS2、EMC三要素:3、 国际无线电干扰特别委员会标准:CISPR标准4、电磁兼容测试认证:传导发射(CE)、传导敏感度(CS)、辐射发射(RE)和辐射敏感度(RS)测试。 阅读详情

相关推荐

AD9026芯片开发实战:从Example Code到API调用的关键步骤解析

本文详细解析了AD9026芯片开发的核心流程,重点阐述了如何从官方提供的Example Code入手,逐步理解硬件平台发现、HAL层初始化、配置加载、芯片复位、固件启动、JESD链路建立等关键API调用序列。通过剖析示例工程的结构与核心文件,为开发者在自定义硬件平台上移植和调试AD9026驱动提供了清晰的实战指南。

java5的博客 788

“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

使用MID360在室内快速定位

在预构建的点云地图中实现实时3D全球定位。通过融合FAST-LIO的低频全局定位(约0.5~0.2Hz)和高频里程计,整个系统的计算效率很高。消除里程计的累计误差初始定位可以通过RVIZ的粗略手动估计或来自另一个传感器/算法的姿势来提供。

CTwinkle的博客 1162

解决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万+

PX4笔记系列(二)vtol_att_control中的tiltrotor解析

update_vtol_state() 注释:采用两段切换的简单逻辑来进行过渡 当切换过渡开关后,飞机将会开始倾转动力,逐渐加速,当飞机获得足够速度后动力将会完全打到向前的位置。对于过渡返回阶段动力则是简单地倾转回来。 如果(不在向前过渡指令下): 当前vtol飞行模式: 1、旋翼模式 无操作 2、固定翼模式 令vtol飞行模式切换到过渡返回模式 3、P1过渡模式 进入过渡失败安全返回至旋翼模式 4、P2过渡模式 进入过渡失败安全返回至旋翼模式 5、过渡返回模式 记录过渡返回时间=当前时间-过渡开始

hypersonicss的博客 1878

Unity2D像素刀光实现:粒子方向控制与像素级渲染规范

像素风游戏中的刀光特效并非普通粒子动画,而是需严格遵循像素艺术原理的视觉暂留模拟。其核心在于将‘瞬时切割感’转化为程序可执行的渲染逻辑:通过禁用纹理滤波保障1:1像素锐度,绑定刀锋向量控制粒子运动方向,限定≤0.15秒生命周期匹配人眼暂留阈值,并采用Stretched Billboard实现动态拉伸拖影。该方案兼顾美术语义(如直劈、横扫、突刺)与工程约束(Sorting Layer分层、对象池复用、单粒子GPU优化),广泛适用于Unity2D平台的动作反馈系统,尤其适配《空洞骑士》《死亡细胞》类高节奏像素R

weixin_32390647的博客 281

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

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

lyq18235187358的博客 3962

6、业务影响分析(BIA)的数据收集与关键指标评估

本文全面解析了业务影响分析(BIA)的核心内容,包括数据收集、业务流程分析、信息系统与资产清单、人员与供应商依赖、影响声明、关键指标评估(如MTD、RTO、RPO)、威胁建模与风险分析等。通过详细的介绍和图表展示,帮助组织系统性地制定灾难恢复计划,以应对各种潜在风险,确保关键业务流程在灾难发生后能够快速恢复并持续运营。

moss5的博客 374

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

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

noteless的博客 3627

这20个网络工程项目经验,帮我跳槽加薪不止一次

嘿,大家好,我是圈圈,一个在网络工程圈子里混了十多年的老鸟。从国企的网管起步,到现在给大厂做顾问,我见过太多简历:有的光鲜亮丽,证书一堆,但一聊项目,就露怯;有的简历朴实,但列出的项目经验让人眼前一亮,直接拿offer。为什么?因为招聘官最看重实战。理论谁都会背,项目经验才是你的“硬通货”。尤其在网络工程这行,项目不光证明你的技能,还展示你解决问题的能力。今天,我就分享20个我亲身经历或见过的网络工程项目经验。每个都值得写进简历,不是吹牛,这些项目帮我跳槽加薪不止一次。

网络技术联盟站 431

LeRobot 入门教程(一)软件环境、部署流程及摄像头配置

🤖 LeRobot:开源机器人学习平台 摘要:LeRobot是一个基于PyTorch的开源机器人学习平台,提供模型、数据集和工具,旨在降低机器人技术门槛。平台包含经过验证的模仿学习和强化学习方法,并提供预训练模型、人类演示数据集及模拟环境。安装需从源码获取,支持Python 3.10环境,可选扩展包括仿真环境(如gym-aloha)、电机控制(Dynamixel/Feetech SDK)和实验跟踪(Weights & Biases)。该平台托管在HuggingFace,并设有社区Discord频道

2506_90492529的博客 3417

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

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

weixin_35434041的博客 4548

Open3D (C++)球旋转算法(BPA)三维建模

球旋转算法用于点云三维建模的C++代码实现。

点云侠的博客 1771

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

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

a54654132的博客 1028

怀旧版电脑GBC模拟器

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

Lxxx_H的博客 516

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

weixin_32842805的博客 510

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

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

changchuanlai 1010

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
上一篇: java.sql.Connection类中有个方法
下一篇: java.sql.* 和javax.sql.*
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值