81,091
社区成员
发帖
与我相关
我的任务
分享
String sql = "select * from car where plateNumber = '"+?+"'";
/**
* 统计人数
* @return
*/
public int tongJiRenShu(String uid){
Session session = getSession();
String sql = "select count(*) from Gaokaochengji gk where gk.schoolid = '"+uid+"'";
Object obj = session.createSQLQuery(sql).uniqueResult();
int sum=0;
if(obj!=null){
sum = (Integer)obj;
}
session.close();
return sum;
}
//查询车辆信息 public List<Car> seekCar(String plateNumber) { List<Car> alist = new ArrayList<Car>(); Connection connection = JdbcUtil.getConnection(); PreparedStatement ps = null; ResultSet rs = null; String sql = "select * from car where plateNumber=?"; try { ps = connection.prepareStatement(sql); ps.setString(1, plateNumber); rs = ps.executeQuery(); System.out.println(rs = ps.executeQuery() ); while(rs.next()){ Car car=new Car(); System.out.println(rs.getString(1)); car.setPlateNumber(rs.getString(1)); car.setOwnerName(rs.getString(2)); car.setIdNumber(rs.getString(3)); car.setCellphoneNumber(rs.getString(4)); car.setUseDueTimeDate(rs.getDate(5)); car.setParkingSpace(rs.getString(6)); alist.add(car); System.out.println("为什么没???"); System.out.println(rs.getString(1)); System.out.println(rs.getString(2)); System.out.println(rs.getString(3)); System.out.println(rs.getString(4)); System.out.println(rs.getDate(5)); System.out.println(rs.getString(6)); System.out.println(car.getPlateNumber()); System.out.println(car.getOwnerName()); System.out.println(car.getIdNumber()); System.out.println(car.getCellphoneNumber()); System.out.println(car.getUseDueTimeDate()); System.out.println(car.getParkingSpace()); } }catch(NullPointerException n){n.printStackTrace();} catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return alist; } 举个例子:我是根据车牌号 查询车辆信息的 我现在的问题就是 如果我在jsp页面上输入的车牌号 不包含中文的话,会正常显示查询到的数据(数据包含其他对应的中文信息),控制台也会输出我让输出的所有数据,但是,如果我输入的车牌号包含中文的话,那么,即使数据库有数据,对应的jsp页面也没有内容输出,控制台此时只显示:com.mysql.jdbc.ResultSet@14c1096 while循环下面的内容都不会在控制台显示。 是数据库不识别中文的原因吗?我的数据库和jsp页面都是使用的utf-8的编码
我用的mysql的图形化界面,所以里面是可以看到中文显示的,我在删除和查询操作中需要通过包含中文的id进行操作,这个时候,我在jsp页面点击删除或者查询的时候,删除不了,不能显示查询结果。我的jsp和数据库都使用了utf-8编码,你们说的乱码问题。。。我貌似说不好,因为乱码问题有的时候是我在测试时,把一个操作或者一个页面操作多次时,偶尔好像会出现这个问题,但是我刷新下或者是重新启动下服务器就好了,所以我不太明白我遇到的问题,有人说是因为我的编码和数据库不匹配,但是我也不确定是不是,你们说是乱码问题的话,我就找找看是不是和我的问题相符,你们根据我的描述 再想想看,或者需要什么更加详细的信息给我说,我给你们参考内容,多谢帮忙
tomcat里面也要配置编码utf-8,不然传到后台的参数就是错的乱码,何谈SQL问题...此外预编译不用加引号,因为他会帮你加貌似,所以你之前预编译不加引号是对的...你在程序中设个断点,看看是不是参数传来的时候就已经错了,目测是这样
空指针异常 一般出现在这种情况:我专门输入错误的内容,它在数据库中查不到,所以出现了空指针的异常。。。其实不是我不想管它,是我不会解决啊 [quote=引用 25 楼 u010241813 的回复:] 妹纸你太强了,代码里面经常有空指针,加了个捕获异常继续执行。。 可你有没有想过你的数据没有拿到无法展示呢
记得。JDBC连mysql.好像本身默认设定是GBK?
空指针异常 一般出现在这种情况:我专门输入错误的内容,它在数据库中查不到,所以出现了空指针的异常。。。其实不是我不想管它,是我不会解决啊 妹纸你太强了,代码里面经常有空指针,加了个捕获异常继续执行。。 可你有没有想过你的数据没有拿到无法展示呢
妹纸你太强了,代码里面经常有空指针,加了个捕获异常继续执行。。 可你有没有想过你的数据没有拿到无法展示呢
这个方法现在只有中文乱码的问题了吧,空指针你看看是哪行出现的就知道了,把jsp的编码设置为utf-8,servlet开头加上request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8"); 实在不行,就直接在seekCar这个方法里的第一行加上一句 plateNumber = new String(plateNumber.getBytes("iso-8859-1"),"utf-8");