JDBC操作MySQL时注意的一些细节
程序员文章站
2022-06-07 22:46:43
...
我写出了mysql的查询sql语句,在mysql的数据库客户端上运行一切顺利。注意sql中有含有中文的条件。有一句是 tempTable.type =di
今天我做了一个java接口程序,实现从mysql数据库中取值插入到一个Oracle数据库中。我觉得挺简单的操作,mysql的查询sql写出来了,就没有什么难的了。java中JDBC操作数据库的代码没有太大的变化。但因为一些操作细节没有注意到,浪费了我一下午的时间才搞定。
我的做法是这样的,首先我写出了mysql的查询sql语句,在mysql的数据库客户端上运行一切顺利。注意sql中有含有中文的条件。有一句是 tempTable.type =dinary '利息',查询出来5条记录,mysql的中文查询需要有一个mysql内置的二进制的转换符号。 调试通过,我把sql语句复制到了java的代码中,利用JDBC执行的结果却是0条。我的第一直觉是mysql数据库连接错了吗,但很快我发现,数据库连接是对的,java代码中的sql语句和mysql客户端执行的sql没有任何差别。但客户端和java代码中执行的结果却不一致。
最后问题定位在sql语句中的中文上,java中中文的编码和mysql数据库执行sql时中文编码不一致导致的。
推荐阅读