java通过jdbc访问mysql,update数据返回值的思考
java通过jdbc访问mysql,update数据返回值的思考
先不说那么多,把Java代码贴出来吧。

public static void main(String[] args) throws InterruptedException, IOException {
try {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC");
dataSource.setUsername("root");
dataSource.setPassword("zdsoft");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
int res= jdbcTemplate.update("update student set name='李四',age=12 where id=25");
System.out.println(res);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

我们知道。在mysql中,如果我们修改一条数据的原始值和修改后值是一致的,那么就会返回影响的行数为0

很好,那么执行上面java的代码,理论上就会返回0。但是经过多次执行、多次测试,返回的始终是1。这就让人很不解了,后来翻看了相关资料,原来jdbc默认返回的是匹配的行数(而不是影响的行数)。因此如果我们想要返回影响的行数,可以在url连接地址里面加上useAffectedRows=true就可以了。
url:jdbc:mysql://172.23.88.107:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useAffectedRows=true
ps:其实sqlserver和Oracle就没有匹配的行数和影响的行数的说法,返回的都是影响的行数,而影响的行数和mysql的匹配行数的值是一致的。所以为了保证三种数据库的一致性,一般还是不建议加useAffectedRows=true
java通过jdbc访问mysql,update数据返回值的思考的更多相关文章
- jdbc,mysql 数据库BLOB返回值 [B 的问题
当jdbc返回值类型对应的java类型是[B,那就表示返回值的类型比较模糊难以区分: BLOB类型是mysql数据库常用来存储,但是通过getBlob()方法获取值得时候会报错: 错误信息: java ...
- Java通过JDBC 进行MySQL数据库操作
转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...
- ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库
1.MySQL存储过程 1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if while)等等 的sql语句 1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...
- JAVA使用jdbc连接MYSQL简单示例
以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...
- java用JDBC连接MySQL数据库的详细知识点
想实现java用JDBC连接MySQL数据库.需要有几个准备工作: 1.下载Connector/J的库文件,下载Connector/J的官网地址:http://www.mysql.com/downlo ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- javaweb学习总结(三十四)——使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
- 在Eclipse中使用JDBC访问MySQL数据库的配置方法
在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...
- javaweb(三十四)——使用JDBC处理MySQL大数据
一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时 ...
随机推荐
- 高质量PHP代码的50个实用技巧:非常值得收藏
http://www.finalshares.com/read-497?qq-2488
- windows下安装mysql遇到的问题
windows下安装mysql5.6.41步骤:http://www.cnblogs.com/sjy18039225956/p/9203052.html 系统错误2详见MySQL安装过程net sta ...
- 验证码类validateCode
PHP验证码类,代码如下: <?php //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABCDEFGH ...
- mysql5.7.20完全卸载 win10
试了好多方法,搞了很久终于完全卸载干净,重装完成了! 1.关闭服务 以管理员身份运行cmd,执行以下命令: C:\WINDOWS\system32>net stop mysql MySQL 服务 ...
- 俄罗斯方块Ai AlphaTetris讲稿
相关下载地址: 链接: https://pan.baidu.com/s/1LqFWMoLzaKkuahwnZNIsZg 密码: 3ybi
- 安装pytorch0.4.0
参考了官网https://pytorch.org/previous-versions/中的说明 (jj1env) [ji@dev down_python0.4.0]$ pip install http ...
- Intellij IDEA使用Docker插件部署应用
1.安装Docker插件 配置Docker Api,在API URL中填入api的地址,记得Docker后台程序启动是要配置 -H tcp://0.0.0.0:2375 开放远程地址端口,注意这里的i ...
- 记一次AngularJs 路由 $stateChangeStart不起作用(细节决定成败)
var app= angular .module('app', [ 'ngAnimate', 'ngCookies', 'ngResource', 'ngSanitize', 'ngTouch', ' ...
- Windows平台下SVN安装配置及使用
原文链接:https://www.cnblogs.com/snake-hand/archive/2013/06/09/3130022.html,等有空了玩一玩吧,现在没空.
- TDG今日成立!
大家好我们是来自土1603-3的佟天宇.杨子浩.吴强.周泊辰(从左到右) 我们的团队名称是 TDG队 我们的口号是:“Legends Never Die!” 队员简介: 佟天宇 个性:儒雅随和 特长 ...