原文:

在顶目中无意中碰到PreparedStatement 在存DB时出现乱码,困扰了好久终于解决问题
  

  问题代码如下

     ps = con.prepareStatement(INSERT_SQL);

    ps.setString(1, username);

    ps.setLong(2, messageID);

    ps.setString(3, new java.util.Date());

    ps.setInt(4, msgXML.Length());

    ps.setString(5, “中文内容”);

    ps.executeUpdate();    

  debug时可以看到在 ps.executeUpdate(); 行 ps 中的 “中文内容” 变成 ????

  原因是设置Datasource 的Driver 时Jdbc.Url=Jdbc:mysql://192.168.12.22:3306/Ts 没有指定编码

  可以按如下修改

  Jdbc.Url=Jdbc:mysql://192.168.12.22:3306/Ts?characterEncoding=utf8

  问题解决

原文完。

  当然,jdbc中也可以:

jdbc提供如下方法:  

 conn = DriverManager.getConnection(url, username, password);

显然url其实是一个就是资源定位符,所以也可以像HTTP协议那样传递参数。

所以jdbc提供了如下方法:

 String url = "jdbc:mysql://host/dbname?username=ding&password=ding&characterEncoding=utf8";
conn = DriverManager.getConnection(url);

其实大部分的同学协议都可以向http协议传递参数,这里的叫jdbc协议。jdbc协议主要靠TCP协议实现。

既然URL表示一个资源地址,那么我们就可以使用jdk的URL,URLConnection,URI等类获取资源。

PreparedStatement/Statement处理insert update等操作时乱码,以及URL的更多相关文章

  1. LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作

    我们继续讲解LINQ to SQL语句,这篇我们来讨论Insert/Update/Delete操作.这个在我们的程序中最为常用了.我们直接看例子. Insert/Update/Delete操作 插入( ...

  2. 基于SQL Server日志链查看数据库insert/update/delete操作(一)

    在MSSQLServer2008下的语句 不同版本可能语句会有微小差别 SELECT [Slot ID], [Transaction ID], Operation, AllocUnitName, [C ...

  3. [转]NHibernate之旅(5):探索Insert, Update, Delete操作

    本节内容 操作数据概述 1.新建对象 2.删除对象 3.更新对象 4.保存更新对象 结语 操作数据概述 我们常常所说的一个工作单元,通常是执行1个或多个操作,对这些操作要么提交要么放弃/回滚.想想使用 ...

  4. 《oracle每天一练》Merge Into 语句代替Insert/Update在Oracle中的应用实战

    转载自窃破天道 动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也 ...

  5. 使用Merge Into 语句实现 Insert/Update

    网址: http://www.eygle.com/digest/2009/01/merge_into_insertupdate.html 动机: 想在Oracle中用一条SQL语句直接进行Insert ...

  6. Merge Into 语句代替Insert/Update在Oracle中的应用实战

    动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录 ...

  7. Oracle Merge Into Insert/Update

    出自:http://blog.csdn.net/yuzhic/article/details/1896878 动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明 ...

  8. 关于SubSonic3.0插件使用实体进行更新操作时(执行T.Update()或T.Save()),某些列无法进行修改操作的问题处理

    SubSonic3.0插件在创建实体后,对实体进行赋值操作时,为了去除一些不必要更新的字段,减少更新的内容,会将更新内容与默认值进行比较,如果默认值与当前更新的内容相等时,则不提交更新本列,这主要是为 ...

  9. JDBC基础篇(MYSQL)——使用statement执行DML语句(insert/update/delete)

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day02_statement; import java.sql.Connection; import java.s ...

随机推荐

  1. juddi学习一

    一.下载juddi 地址:https://mirrors.tuna.tsinghua.edu.cn/apache/juddi/juddi/3.3.4/ 二. 解压下载文件打开目录下的 进入bin目录, ...

  2. linux 压缩与解压

    tar -cvf test.tar test  ----将test文件夹打包成test.tar. # tar -xvf test.tar     ----将test.tar 进行拆解,从中抽取文件 # ...

  3. Windows入门基础:1.关于CreateWindow()函数使用中遇到的问题

    我在实现显示窗口的程序中,遇到一个问题:首先程序没有任何语法错误,编译能够通过,但是就是不能弹出窗口. 后来在MSDN中查询CreateWindow()函数,发现了下面这句话: "If lp ...

  4. oralce set

    1         SET TIMING ON 说明:显示SQL语句的运行时间.默认值为OFF. 在SQLPLUS中使用,时间精确到0.01秒.也就是10毫秒. 在PL/SQL DEVELOPER 中 ...

  5. Python学习_ConfigParse (转)

    1.基本的读取配置文件   -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该se ...

  6. 学习MVC之租房网站(三)-编写实体类并创建数据库

    在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...

  7. Xamarin.Forms+Prism(1)—— 开发准备

    本次随笔连载,主要用于记录本人在项目中,用Xamarin.Forms开发APP中所使用的第三方技术或一些技巧. 准备: 1.VS2017(推荐)或VS2015: 2.JDK 1.8以上: 3.Xama ...

  8. 【PAT_Basic日记】1001. 害死人不偿命的(3n+1)猜想

    还是觉得代码放这靠谱,会定期的看看和优化代码 #include <stdio.h> #include <stdlib.h> int main() { int n; int co ...

  9. 在c++中,标准输入string时cin 与getline两个函数之间的区别

    cin: cin函数是标准库的输入函数,在读取string时遵循以下规则: 1)读取并忽略开头所有的空白符(包括空格.换行符.制表符). 2)读取字符直到遇到空白符,读取终止. 例如: 当输入的是“  ...

  10. iOS·官方文档译文框架源码注解

    导语