您的位置:首页 > 编程语言 > Java开发

关于Java实现一个简单水果订购管理系统的几点问题

2019-05-26 21:17 260 查看

这个周用java写了一个简单的水果订购系统。其中遇上了几个问题
、在编写过程中,我试图输入订购数量,然后计算机进行读取再存入数据库。当我输入1时,编译器显示我输入的 数量为49。

经过排查我发现问题出在我使用的输入类上。

在这个题目中,我第一次使用的是BufferedReader类和InputStreamReader类。其中包含方法bf.read(),和bf.readLine()。
当使用bf.read()时,输入的是int型,返回的是字符的char型码,而1的char码正好是49。
当使用bf.realLine(),输入的是int型,返回的是String型,如果需要使用Int型,则还需要转型。
Java中br.readLine与 br.read的用法区别
如下:
所以,在需要读取键盘输入的值时,最好使用scanner类,不用进行转码。

、在完成第一次购买后,我试图输入“买”或“不买”,来判断是否继续买水果。
但当我在控制台准备输入“买”时,却无法输入。

经过查询,我发现是我使用的sc.nextLine()已经关闭。这主要是由于sc.next()和sc.nextInt()连续使用造成的。

当用nextInt()读取缓冲区数据时,遇到回车或者空格,数据就会被读取走,但是回车符或者空格会被留下。当再调用nextLine()时,因为nextLine()是以回车符结束,当被调用后,刚好缓冲区还有被nextInt()“吃”剩下的回车符,所以还没等接着输入第二个参数,nextLine()就已经结束。因为只读取到一个回车符,所以pile的参数自然为空,从而导致后序程序出现异常。

ava中nextInt()之后的nextLine()读取不到键盘输入的情况
nextLine()不要和其他next方法一起用!!!尤其nextLine()不要放在它们后面!!!


、当完成购买的数量和交易额的确认后,我准备将其存入数据库,编译未报错,运行时报出了SQL语句语法错误。

经过查询,发现是我的insert语句中没有写入插入的列名。

由于所跟教材的数据库版本问题,导致出现此错误。又因为是String语句,导致编译通过而不报错。

今后在向数据库插入数据时,一定不要忘了指定列名。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐