细数那些奇葩的问题

   

    这些天,真神奇,遇到了很多特别让我无语的问题,旁边的同学就笑我了,说我经常遇到奇葩的问题。哎,重整旗鼓,理理那些那些让我无语的问题。


1.都是空格惹得祸。

(1)因为项目要从一个页面跳转到另一个页面,传递了两个参数,但是在跳转的时候,出错:


很明显,没有找到对应的路径。和可以运行的程序对照了一下,路径是一样的,我以为传递的参数不正确,又更换了参数,还是不对。

后来就将路径复制到文本中,对照看那里出了问题,一对照傻眼了。

         

 再回去看代码中,原来这些地方都是多了一个空格,删除,成功跳转。

原因:URl对空格,特殊字符(%,#,[ ]等)和中文进行了编码处理。例如这里的空格,变成了%20。解决方法(1)使用replaceAll("%20",' ')替换后,只能够解决空格问题,但是路径中包含%和中文就不行了。解决方法(2)使用URLDecoder.decode(str,"UTF-8")解码,但是只能够解决一部分问题,如果路径含有+,那么也是不能够解决的。方法(3)可以解决所有问题,用TestURl().class. getResource(" ").toRUI( ) .getPath(),但是需要URISyntaxException异常,比较麻烦。其实最容易解决的办法,是自己小心点认真点,删除不必要的空格。

无独有偶,在sql语句中也碰到了这样的问题,在拼接sql的时候,因为clas.classno 后面多一个空格,所以达不到自己想要的结果。以后一定要注意。


小结:除了以后再C# 中庸trim消除空格外,在浏览器的路径和拼接sql的时候,也要十分注意,可能一个小空格,就会让你换乱半天。

 

2.数据库又换了?

因为现在做的项目为了手机端和家校互联模块,使用的也是结构相同,但是不同的库。所以在这个过程中,也碰到了没有切换数据库,导致查询不对的情况。比如我在代码中,明明可以查询到数据,但是复制sql语句去数据库中查询,却怎么也查不出来数据。我的左右同桌都在这个问题上迷糊过,到后来才发现,查询的是不同的库,我也是醉了,对自己无语了。以后我就每次我就把不使用的数据库链接删除,然后一直做一个项目,这样就可以避免出现这样傻傻的问题了。


3.数据类型,该带引号,一定要注意。

在sql语句中,我传递了日期类型,但是查不出来数据来,复制到数据库中,才看到“ 2016 /  7/   6"中间带了很多空格,最后加上引号,才能够成功查询出来数据。这是因为在传递的时候,没有给参数加上双引号,所以就会出错,姑娘,以后办事一定要按照规矩来,专业一点,不能够有疏忽。


4.mysql 查询同一天的日期


需求是这样的,学生请假统计中要查询同一天请假的学生,如上图,请假的日期是 8月6日的上午11:00 ,结束时间是8月6日的22:00,我要查询这一天请假学号为1的学生,开始我是这样写的。a.starttime <= ' 2016/8/6 ' AND a.endtime >= '2016/8/6'   and a.studentid ='1' ,但是尝试了,这样是查不出来这条记录的。后来查了查资料,才发现2016/8/6默认是2016/8/6 00:00:00,所以我让让开始时间小于2016/8/6 ,相当于查询的时2016/8/5的,所以就查询不出来了。能够表示2016/8/6这一天的,应该是2016/8/6 00:00:00 到2016/8/6 23:59:59,所以日期应该这样写。

<span style="font-family:KaiTi_GB2312;font-size:18px;">a.starttime <= ' 2016/8/6 23:59:59 '
AND a.endtime >= '2016/8/6'
And a.studentid ='1'</span>
这样就成功地查出来了这条数据。


5.后台控制div显示

我们知道在前台经常使用js控制div的显示,但是小编遇到一个问题,需要在后台中根据逻辑判断控制div的显示,也是十分的简单。在div标签中添加 runnat = "server",如下面的代码。

<span style="font-family:KaiTi_GB2312;font-size:18px;"> <div id = "qingjiaTable" runat="server"  style="width:100%;float:left; text-align:center; margin-top:5px;"></span>
然后在后台写 qingjiaTable .visible= false;就可以轻松控制了。当然也可以在后台动态加载div,但这样应该是比较简单点的。


小结:

   以后细心点,办事严谨点,就不会出现这么多乱子了。话说,今天终于可以脱离了考勤统计这个模块了,经常拼sql,一点点的理理逻辑,感觉脑子真不够用。写好代码之后,就是不断的测试/优化,还不是碰到奇葩问题。最后的最后,发布系统,在手机上调试页面。写完了D层,然后调页面,但是看到自己做的模块在手机上比较完美的展示出来的时候,非常有成就感。这一段时间收获挺大的,还是很多东西需要总结。比如:sql语句的优化?div+CSS写页面的时候,适应多种手机,适应浏览器?如何写出严谨的代码?接下来小编会及时总结,颗粒归仓。

   最后用电视剧《杉杉来了》经典台词送给大家:杉杉是个小太阳,永远充满正能量。继续努力,明天又是新的开始。


评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值