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

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中文乱码解决方案

相关文章:

你感兴趣的文章:

标签云: