Java 用问号替换字符
我在ormlite和Mysql中使用了以下查询:Java 用问号替换字符,java,mysql,ormlite,Java,Mysql,Ormlite,我在ormlite和Mysql中使用了以下查询: String _textSearch="%اعصاب%"; Where<QuestionEntity, Long> _where= getDao().queryBuilder()).where(); List<QuestionEntity> _lst= _where.or(_where.like("title",_textSearch ), _where.like("questiontext", _textSea
String _textSearch="%اعصاب%";
Where<QuestionEntity, Long> _where= getDao().queryBuilder()).where();
List<QuestionEntity> _lst= _where.or(_where.like("title",_textSearch ),
_where.like("questiontext", _textSearch)).query();
为什么?
人力资源经理,我不确定这里有什么问题。我已将添加到ormlite核心项目中,它通过得很好
Foo foo = new Foo();
foo.stringField = "اعصاب";
dao.create(foo);
List<Foo> results = dao.queryBuilder().where()
.like(Foo.STRING_COLUMN_NAME, foo.stringField).query();
assertEquals(foo.stringField, results.get(0).stringField);
这也适用于SelectArg,它是如何工作的?阿格斯
我最初认为这是MySQL的一个问题。也许你从服务器日志中得到了这些查询?如果你从本地日志中得到了“?????”,那么我不确定问题出在哪里。可能是应用程序的默认字符编码
测试使用H2,这是一个本机JavaDB,因此可以轻松处理Java的字符串。请查看以下MySQL问题/答案以获取帮助:
有人谈到MySQL connector的更高版本修复了检测数据库字符类型的问题。了解如何配置ormlite以使用utf8。您如何查看查询?在日志中?
SELECT * FROM `question`
WHERE (`title` LIKE '%?????%' OR `questiontext` LIKE '%?????%' )
Foo foo = new Foo();
foo.stringField = "اعصاب";
dao.create(foo);
List<Foo> results = dao.queryBuilder().where()
.like(Foo.STRING_COLUMN_NAME, foo.stringField).query();
assertEquals(foo.stringField, results.get(0).stringField);
SELECT * FROM `foo` WHERE `string` LIKE 'اعصاب'
statement arguments: [اعصاب]
SELECT * FROM `foo` WHERE `string` LIKE ?