mysql-jdbc ececuteUpdate的一些疑问

问题描述

jdbc ececuteUpdate的一些疑问

首先我设置了取消默认提交,而且注释了connection.commit(),然后我执行
statement.executeUpdate ("insert into news values(88,'yui','uuu','2015-12-18')"); 语句发现数据库中没有变化,
但是我接着写ResultSet rs= statement.executeQuery("select * from news where id=88"); 语句却可以正常获得(88,'yui','uuu','2015-12-18')这一条数据
请问为什么,本人初学





解决方案

1.为什么强调在使用jdbc时,需要在使用的时候才打开连接(Connection),用完后立马关闭。如果我的连接(Connection)一开始就打开,在整个程序结束时才关闭,会带来什么后果呢?
2.为什么要使用连接池?而且在使用连接池的时候也要强调连接的打开和关闭?如果不使用连接池,会带来什么样的性能影响?

总之,总觉得自己照猫画虎会使用JDBC或c3p0写数据库访问程序了,但关于......
答案就在这里:关于jdbc的一些疑问

解决方案二:

多调试,解除备注等等。
着手那个插入语句修改

时间: 2024-12-05 19:32:18

mysql-jdbc ececuteUpdate的一些疑问的相关文章

MySQL JDBC的queryTimeout的一个坑

遇到一个MySQL JDBC执行execute方法时指定queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释: 现象: 用同一个Connection执行大批量SQL的时候,导致了OOM现象. 细节现象描述: 1.SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M. 2.每一批SQL执行会单独创建Statement对象,执行一批SQL后,会将这个Statement关闭掉. 3.SQL语句

浅析MySQL JDBC连接配置上的两个误区

相信使用MySQL的同学都配置过它的JDBC驱动,多数人会直接从哪里贴一段URL过来,然后稍作修改就上去了,对应的连接池配置也是一样的,很少有人会去细想这每一个参数都是什么含义.今天我们就来聊两个比较常见的配置--是否要开启autoReconnect和是否缓存PreparedStatement. 一.autoReconnect=true真的好用么? 笔者看到过很多MySQL的URL里都是这样写的,复制过来改改IP.端口和库名就能用了: jdbc:mysql://xxx.xxx.xxx.xxx:3

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决办法

09:00:30.307 [http-8080-6] ERROR org.hibernate.transaction.JDBCTransaction -JDBC begin failed com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 56,237,340 mi

mysql jdbc处理0日期格式蛋疼问题-也算是BUG

最近在写一个数据库访问的中间平台时,使用MySQL JDBC处理一些日期数据,遇到点变态的问题,给大家乐一乐! 首先来看看什么样的日期数据这么蛋疼呢? DATE            0000-00-00 DATETIME   0000-00-00 00:00:00 TIMESTAMP 0000-00-00 00:00:00 TIME               25:21:22 对于前3种情况,直接用JDBC读取,肯定会报错,报错信息类似这样: Value '0000-00-00' can n

sun.jdbc.odbc.JdbcOdbcDriver和com.mysql.jdbc.odbc.JdbcOdbcDriver的区别

问题描述 sun.jdbc.odbc.JdbcOdbcDriver用这个好像不需要驱动,用com.mysql.jdbc.odbc.JdbcOdbcDriver这个好像要下载什么驱动.我参考别人的的期刊管理系统中碰到这个问题,系统只有登录界面用不了就这一句.不明白,如果需要下载什么驱动,麻烦你给我一个下载地址,以及怎么安装,谢谢啦!! 解决方案

数据库-异常:com.mysql.jdbc.exceptions.jdbc4.communicatio

问题描述 异常:com.mysql.jdbc.exceptions.jdbc4.communicatio 异常:com.mysql.jdbc.exceptions.jdbc4.communicationException:communication link failure last packet sent to the server was 0 ms ago at sun.refect.nativecon.........等等 我用的是mysql数据库,Java文件可以编译,但是一运行就出现错

MySQL JDBC PrepareStatement基本的两种模式&客户端空间占用的源码分析

关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是"防止SQL注入",类似Oracle还有一种"软解析"的概念,它非常适合应用于OLTP类型的系统中. 在JDBC常见的操作框架中,例如ibatis.jdbcTemplate这些框架对JDBC操作时,默认会走预编译(jdbcTemplate如果没有传递参数,则会走createStatement),这貌似没有什么问题.不过在一个应用中发现了大量的预编译对象导致频繁GC,

MySQL JDBC 5.1.25的一个坑(应该算是BUG)

这是公司的一个重要项目中的真实案例(目前还未证实其它版本是否存在,不过刚看了最新版5.1 .26版本还是没有修复这个操作方式,不过用的小伙伴们要注意了哦): [该BUG,官方目前最新版本已经修复,详细请参考文章最后,大家注意使用的版本和原因即可] 什么样的情况呢,当在代码中使用connection.close()方法的时候,神奇般的StackOverflow了!没错,这就是JDBC自己导致的死递归,堆栈输出的内容如下所示: 这个堆栈信息可以这样反推程序:     ConnectionImpl.r

com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:

问题描述 WEB系统报以下的错,是为什么? Caused by: java.sql.BatchUpdateException: Duplicate entry '3592030993-2011-11-23 19:22:45' for key 'PRIMARY'at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)at com.mysql.jdbc.PreparedStatement