sql查询问题

Red_Flag_ 2019-06-11 09:26:16
用xml方式配置了两个方法,A“ select * from user” B:“ select * from user where username= '张三'”,
AB的在navicat中运行都有结果,但是在Java里运行就只有A有返回值,B返回null。
...全文
248 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你在xml文件里面配一个mapperScan(挺长的一个类名,你找一下)扫描一下你的dao层所在的包就好了
Red_Flag_ 2019-06-12
  • 打赏
  • 举报
回复
引用 13 楼 JINGBIN_CHEN 的回复:
设置数据库编码格式,在navcat上选定数据库,右键数据库属性,在字符集上选择utf8mb4--UTF-8 Unicode。
引用
url配置中需要把&字符转义为&才不会报错。

问下大佬另一个问题,我用xml文件配置了sql语句,现在Dao只是一个接口,那我怎么将Dao注册到工厂里面?直接用@Autowire写在Dao上,会报错,实现有是用配置文件来配置的,只能通过单独写bean配置文件方式吗?
Red_Flag_ 2019-06-12
  • 打赏
  • 举报
回复
<property name="url" value="jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC&characterEncoding=UTF-8"/>
xml文件不能写 分号; ,需要用别的字符进行替换
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
嗯嗯,大佬们,还是中文乱码问题,我新加一条英文数据,能够查询到,但是 还是说数据库不知道在哪设置u8编码啦。
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 9 楼 kliu001 的回复:
我打个字的功夫,这么多人回复了啊。
大佬们都太热心啦,
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 8 楼 kliu001 的回复:
你看看你的jdbc在连接数据库的时候,有没有设置编码。有时候jdbc不设置编码为中文的话,在jdbc驱动传递数据的时候中文会变成乱码。也就是说,控制台打印出来的执行的语句看上去是'张三'。但是实际执行的时候可能就是乱码了。你试试把jdbc连接加上useUnicode=true&characterEncoding=UTF-8。例如jdbc.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8
我想起来了,我一开始想在数据库设置中加utf-,但是连个关键字之间的& 报错。然后我就没加,
kliu001 2019-06-11
  • 打赏
  • 举报
回复
我打个字的功夫,这么多人回复了啊。
kliu001 2019-06-11
  • 打赏
  • 举报
回复
你看看你的jdbc在连接数据库的时候,有没有设置编码。有时候jdbc不设置编码为中文的话,在jdbc驱动传递数据的时候中文会变成乱码。也就是说,控制台打印出来的执行的语句看上去是'张三'。但是实际执行的时候可能就是乱码了。你试试把jdbc连接加上useUnicode=true&characterEncoding=UTF-8。例如jdbc.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 6 楼 Red_Flag_ 的回复:
引用 4 楼 a_b_a_b_a_b_a_b 的回复:
xml编码格式是什么格式,是不是‘张三’中文乱码了?
控制台能正常打印
我去换成字母试下
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 4 楼 a_b_a_b_a_b_a_b 的回复:
xml编码格式是什么格式,是不是‘张三’中文乱码了?
控制台能正常打印
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 3 楼 getdate 的回复:
你的mysql是安装在windows上 还是Linux上? 把username 改成 userName 试试.怀疑程序区分了大小写.
补一张数据库截图,我理解的第一个username 是数据库中列的对应值。不知道对不对,我现在去改改试试
a_b_a_b_a_b_a_b 2019-06-11
  • 打赏
  • 举报
回复
xml编码格式是什么格式,是不是‘张三’中文乱码了?
getdate 2019-06-11
  • 打赏
  • 举报
回复
你的mysql是安装在windows上 还是Linux上? 把username 改成 userName 试试.怀疑程序区分了大小写.
Red_Flag_ 2019-06-11
  • 打赏
  • 举报
回复
引用 1 楼 Gemini_Kanon 的回复:
报错吗~~~

不报错,只是返回空值,但是我把控台中的sql放到navicat里面运行就有结果。
Gemini_Kanon 2019-06-11
  • 打赏
  • 举报
回复
报错吗~~~
JINGBIN_CHEN 2019-06-11
  • 打赏
  • 举报
回复
设置数据库编码格式,在navcat上选定数据库,右键数据库属性,在字符集上选择utf8mb4--UTF-8 Unicode。
引用
url配置中需要把&字符转义为&才不会报错。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧