码迷,mamicode.com
首页 > 数据库 > 详细

jdbc 模糊查询和prepareStatement中文乱码解决方案

时间:2015-06-13 09:52:54      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.最近因为写J2EE版本的书店管理系统,碰到了模糊查询的问题;因为我查询的关键字是中文,导致刚开始出现了很多问题;ResultSet rs-> 比如: select * from book where bookName = ‘操作系统‘;明明这条语句是可以在mysql数据库中查到的,但是 rs.next()却始终未false;这很奇怪,我唯一能想到的原因就是中文乱码问题;果然经过查阅资料;找到了解决方法;

就是你在写URL时要加上编码的格式: ->this.URL = "jdbc:mysql://localhost:3306/bookshopping?characterEncoding=utf8"; 这个URL就是 ct = DriverManager.getConnection(URL, USER, PASSWORD);相信不用我多说.这样就可以正常的使用中文查询语句了;

2.解决模糊查询的问题;

模糊查询语句一般为:select * from book where bookName like ‘%操作系统%‘;但是如果真的这样写的话,是绝对查不出来的,而且会报错(具体报错的内容我就不说明了);那么解决方式就是:使用通配符?

select * from book where bookName like ?;

然后使用prepareStatement 的setString方法;

比如:

String str = "操作系统";

 ps.setString(1,"%" + str +"%");就可以解决了

jdbc 模糊查询和prepareStatement中文乱码解决方案

标签:

原文地址:http://blog.csdn.net/u011257298/article/details/46476955

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!