改善 jdbc和tomcat对中文的支持

只需做两件事
1、 连接数据库时url加上“characterEncoding=UTF-8”
形如
url="jdbc:mysql://localhost:3306/drivingschool?&characterEncoding=UTF-8";
2、在tomcat安装目录下,找到conf文件夹下的server.xml,修改你用到端口里的参数,加上URIEncoding=”UTF-8”,如

   <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> 

注意:时间紧迫的人按照上边改就是了,较悠闲者可继续往下看。

Part1

  • 想干啥:试试原生JDBC
  • 关键词:statement
  • 问题:对数据进行增删改查时,一旦数据库中的数据是中文时,就要出问题。比如,user表name字段下存了一个“王二”,用select * form user where name="王二" 查不到任何结果。

上网查询方案,得知中文需要改造一下,用来拼接字符串,于是乎。。。

Part2

  • 关键词:中文改造
  • 示例:
    String finalname="\""+name+"\"";
    String sql1="select * from student_info where sname = "+finalname+" ";
  • 结果:依然查不出任何数据,转义符后边我还换了单引号,还加过分号,各种奇葩的,没道理的,有道理的招我都试了,还是查不出数据

询问其他队友之后,得知preparedstatement可以做到,于是乎。。。

Part3

  • 关键词:preparedstatement
  • 结果:依旧

心得:除了文章开头的两点,还有
1、拼接字符串时,一定要给中文加上引号。
2、preparedstatement中,给占位符“?”添加数据时,此时的中文不需再加双引号(体现出是个字符串的那个双引号还是得加的哈!

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-29 21:14
疯犬丨哈士奇:喜欢你的人会主动表白,对你有想法的人会很主动,所以要你的公司不会吊着你所以懂了吧
点赞 评论 收藏
分享
StephenZ_:我9月份找的第一段实习也是遇到这种骗子公司了,问他后端有多少人和我说7个正职,进去一看只有一个后端剩下的都是产品前端算法(没错甚至还有算法)。还是某制造业中大厂,我离职的时候还阴阳怪气我
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务