新手学习JAVA,连接连接通MYSQL,带WHERE条件的查询,不能查询到结果【实际上数据库里有】,不带where可以显示所有结果,同时带WHERE的语句直接在MYSQL中是可以查询到结果的,到底什么原因,新手郁闷中,请指教!
代码如下:两种方法都不能查询到
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stu","root","root");
String sql = "select * from student where xingming = '小王'";
//ps = cn.prepareStatement(sql);
//rs = ps.executeQuery();
sm = cn.createStatement();
rs = sm.executeQuery(sql);
注意:
1. 确定数据库里是有xingming=小王 的信息
2.String sql1 = "select * from student“ 是可以显示所有信息的
3. 数据库是MYSQL的
------解决方案--------------------
直接在数据库里执行查询:select * from student where xingming = '小王'看能不能找到结果。
八成是数据库编码有问题
------解决方案--------------------
看看你字段有没有写错
------解决方案--------------------
小王要加英文的引号
------解决方案--------------------
有没有报错?
------解决方案--------------------
很可能是数据库编码问题,你可以先进入到mysql,然后输入show variables like 'character%';查看数据编码,编码不是utf-8或者gbk的话,就容易出乱码
------解决方案--------------------
应该是数据库连接编码的问题吧,从这里是“小王”,到那里可能是乱码了……
jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8
连接的时候数据库编码没有设置的话试着设置一下。