PlayFramework 和在 MySQL 数据库中搜索波斯语单词
Posted
技术标签:
【中文标题】PlayFramework 和在 MySQL 数据库中搜索波斯语单词【英文标题】:PlayFramework and Search for a Farsi word in MySQL database 【发布时间】:2015-11-17 21:05:44 【问题描述】:我正在尝试在 mysql 数据库中搜索波斯语单词。该表已正确填写,我可以使用 MySQLWorkbench 查看和搜索其中的单词。我什至设置了JDBC-Performance-Logger并记录了生成的语句并将其粘贴到MySQLWorkbench中,并且可以成功找到记录。
我的问题只是在使用 EBean 的 PlayFramework 中找不到字符串,并且每次都返回一个空结果。
这是我的 application.conf:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8"
db.default.useUnicode=true
db.default.characterEncoding=UTF-8
这是返回空结果的函数:
final String cityName = "تهران";
final List<City> cities = City.find.where().like("name", "%" + cityName + "%").findList();
//final List<City> cities = City.find.select("name").where().eq("name", cityName).findList();
return ok(toJson(cities));
它生成这个 SQL 语句(使用 JDBC-Performance-Logger 找到):
select t0.id c0, t0.name c1, t0.province c2 from city t0 where t0.name like 'تهران' /*setString*/ escape''
是否可以在 Play Framework 中搜索波斯语字符?
【问题讨论】:
【参考方案1】:将连接字符串更改为此已解决问题:
db.default.url="jdbc:mysql://localhost:3306/myDatabase?characterEncoding=UTF-8"
【讨论】:
以上是关于PlayFramework 和在 MySQL 数据库中搜索波斯语单词的主要内容,如果未能解决你的问题,请参考以下文章
Mysql建立数据库如和在一个指定的位置建立数据库,如何指定数据库默认的存储位置
Mysql建立数据库如和在一个指定的位置建立数据库,如何指定数据库默认的存储位置
数据库“默认”需要进化!尝试使用 play framework 2.7.0 和 Ebean 连接到 MySQL 时
Play Framework 2.3 - 无法连接到远程数据库 Linux (Play) -> Win 7 (MySQL)