首页 > 数据库 >JDBC preparedStatement.executeQuery() 与 preparedStatement.executeQuery(sql)

JDBC preparedStatement.executeQuery() 与 preparedStatement.executeQuery(sql)

时间:2023-07-25 22:34:29浏览次数:57  
标签:preparedStatement executeQuery 编译 JDBC Statement sql

preparedStatement.executeQuery()

这个方法是执行带占位符、已经预编译的sql命令

而它---> preparedStatement.executeQuery(sql)

这个方法是执行未预编译、完整的sql命令,而不是预编译的sql命令

preparedStatement不是应该执行预编译的sql吗?

是这样的,但是preparedStatement还兼容statement,还可以直接执行未预编译、完整的sql

因为,PreparedStatement是Statement的子接口,

前者没有带参数的executeQuery(),而后者恰好有带参数的executeQuery(sql),

所以preparedStatement.executeQuery(sql)调用的实际上是继承来的Statement接口的方法。

带占位符?的sql,传到应该接收完整sql的Statement.executeQuery(sql),就会报sql语法错误。

由于继承,这么写编译器还不报错!!!

标签:preparedStatement,executeQuery,编译,JDBC,Statement,sql
From: https://www.cnblogs.com/lylhome/p/17581215.html

相关文章

  • ShardingSphere(sharding_jdbc)
     Sharding-jdbc读写分离概念 sharding-jdbc不做数据同步(数据同步还是由mysql处理)读写分离实现MySQL主从实现主库my.ini从库my.inisharding-jdbc读写分离......
  • 周六 jdbc练习 商品品牌数据增删改查
    先把练习用的表建立出来droptableifexiststb_brand;--创建tb_brand表createtabletb_brand(--id主键idintprimarykeyauto_increment,--品牌名称brand_namevarchar(20),--企业名称company_namevarchar(20),--......
  • 数据库学习复习随笔(JDBC没保存)
    数据库基础语法SQL常用语句总结-知乎(zhihu.com)链接table1JIONtable2ON链接条件--不加就是自然链接数据表的类型逆向查看语句SHOW逆向查看表的结构DESC数据库引擎--关于数据库引擎/*INNODBMYISM以前使用的*/ MYISAMINNODB事物支持不 数据行锁......
  • Could not get list of tables from database. Probably a JDBC driver problem.
     在用myeclipse8.5M1反向生成代码时报错: Aninternalerroroccurredduring:"GeneratingArtifacts".Couldnotgetlistoftablesfromdatabase.ProbablyaJDBCdriverproblem.  =============================  尝试了更换工作空间、重装myeclipse、更换oracle驱动......
  • JDBC记录
    JDBC连接配置使用JDBC:java数据库连接是一套操作所有关系型数据库的规则(接口)。各个数据库实现该接口,提供驱动jar包;使用JDBC编程,真正执行的代码是驱动jar包中的实现类。JDBC编程步骤:1.注册驱动2.获取连接3.获取数据库操作对象(专门执行sql语句的对象)4.执行sql语句5.处理查询......
  • 记jdbcTemplate使用的一个坑
    1、在使用jdbcTemplate时,语句不能使用select* ,不然可能就是这样的错误:Incorrectcolumncount:expected1,actual62、如果像这样的外层嵌套,应该去掉外层select*,语句:select*from(selectmater_score.mater_noasmaterNo,city,town,mater_score.avgasavgScor......
  • JDBC MYSQL too many connections 解决方法
    显示最大连接数showvariableslike"max_connections";设置最大连接数:setGLOBALmax_connections=1000;查看mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s也就是一个链接sleep八个小时后才会被mysql“清理”掉。showglobalvariableslike'wait_timeout......
  • SpringBoot + Sharding JDBC 分库分表
    Sharding-JDBC最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为ShardingSphere,2020年4⽉16日正式成为Apache软件基金会的顶级项目。ShardingSphere-Jdbc定位为轻量级Java框架,在Java的Jdbc层提......
  • jdbc-plus是一款基于JdbcTemplate增强工具包,基于JdbcTemplate已实现分页、多租户、动
    ......
  • jdbc为什么要破坏双亲委派机制
    首先需要注意一点,JDBC4.0之前使用Class.forName("")方式加载驱动是不会破坏双亲委派的。JDBC4.0之后使用spi机制才会破坏双亲委派机制。为什么要破坏双亲委派?使用双亲委派也存在一定的局限性,在正常情况下,用户代码是依赖核心类库的,所以按照正常的双亲委派加载流程是没问题的;......