在顶目中无意中碰到PreparedStatement 在存DB时出现乱码,困扰了好久终于解决问题
问题代码如下
pstmt = con.prepareStatement(INSERT_OFFLINE);
pstmt.setString(1, username);
pstmt.setLong(2, messageID);
pstmt.setString(3, StringUtils.dateToMillis(new java.util.Date()));
pstmt.setInt(4, msgXML.length());
pstmt.setString(5, “中文内容”);
pstmt.executeUpdate();
调试时可以看到在 pstmt.executeUpdate(); 行 pstmt 中的 “中文内容” 变成 ????
原因是设置datasource 的driver 时jdbc.url=jdbc:mysql://192.168.12.22:3306/ts 没有指定编码
可以按如下修改
jdbc.url=jdbc:mysql://192.168.12.22:3306/ts?characterEncoding=utf8
问题解决
分享到:
相关推荐
MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip
jdbc2.0版 PreparedStatement接口的用法
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...
PreparedStatement详细用法
关于PreparedStatement插入Date类型值的方法.txt
JDBC基础教程之PreparedStatement.doc )
Accessing Parameter Metadata from a PreparedStatement Object ?Catching Exceptions ?Debug Tracing with MySQL Connector/C++ ?For More Information ?About the author ?Appendix I: Installing MySQL ...
在java中向访问数据库的sql语句一般放到类PreparedStatement类构造函数中,这里遇到的问题就是向sql语句中用setDate()插入时间时不能用java.util.date,而应用java.sql.date,这里就讲述了解决方法,一种是插入...
Statement和PreparedStatement之间的区别
NULL 博文链接:https://huiminchen.iteye.com/blog/1097332
练习3:使用PreparedStatement插入宠物信息.zip
此实例意在解决预处理命令PreparedStatement的setString()方法,在sql2008数据库中写入数据时,会自动补足空格的问题, 同时此实例也解决了当存在自动补足空格的问题时,使用nvarchar可以使查找出来的数据与原输入...
NULL 博文链接:https://chaoyi.iteye.com/blog/2088080
以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了封装,只需要dao类继承DBTool几个...
java中PreparedStatement和Statement的区别
NULL 博文链接:https://stevenjohn.iteye.com/blog/968877
JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法
我们知道进行编码和转码工作都是集中在JDBC的两个接口PreparedStatement和ResultSet上进行的,主要涉及PreparedStatement的setString方法以及ResultSet的getString方法。前面我们讲过需要加入一个连接封装层来对...
可以了解PreparedStatemen的具体用法,使用与JSP初学者