现在中国人自己都不理解那些中国人的所作所为了

无证程序员 囧

win7下外置麦克不能使用解决方案

从装了win7开始就一直没有使用过麦克,多次尝试百度解决方案,各种方式都没能解决,看着那些评论,说的我们这些解决不了问题都是电脑盲一样,可是我是学软件的,接触电脑这么多年了,  电脑常识我是真的懂一些的

 

言归正传

 

我用的神舟hp650 D3 

声卡 瑞昱 ALC268 @ 英特尔 82801I(ICH9) 高保真音频

装的什么驱动忘记了, 只知道装完之后有一个 Realtek高清晰音频管理器 

 

问题解决   双击那个红色小喇叭弹出主界面

红框里面的东西是重点  点击设备高级设置

选择第二项,这样我们才能区分出笔记本内置麦克,和外界麦克,选好点击确定

多出一个麦克选项,这个才是我们外置的麦克,然后就能根据网上说的各种菜鸟级玩家需要会的设置选择这个麦克就能正常使用了

 

以上说的只是一种情况得解决方法

ssh实训总结

在算是3个星期的ssh实训中学到了不少东西,大大的填补了在学校的空白。

从最开始的jdbc+servlet+jsp开发简单的人力资源管理系统到最近用spring+struts2+hibernate完成的经审系统。这个阶段貌似很多东西想说,一下又缕不明白

先说下对学校课程体系的认识,经过实训在明白学校的课程课程体系是很好的,虽然都要忘记那些课的名字了,大一了解些基础的编程语言和一些基础课,大二开始一步步应用,貌似也是servlet->jsp->struts,jdbc->hibernate。这当中还穿插着一些应用的原理性的东西,数据库原理啊,计算机组成原理啊,人的求知欲会让人在完成表面的工作以后想知道,内部这些东西是怎么实现的,怎么实现好,这时候又开了设计模式了(貌似这门课的全称都记不全了,而且老师教的那些东西当时因为缺少应用也没有怎么认真的去听,没有发现用处,到现在引用的上了才后悔当初没好好学,考试也就是应付一下就过去了),了解了程序编写的基础之后,在大三开了些软件工程的课程,如何构建一个好的软件,以及介绍软件开发流程(可惜上课的时候的实践全是打酱油了,自己这组干了什么都不知道),这也是导致我们这次ssh最大败笔的原因。

总得来说就是课挺好,听课的学生不好

再说说这次实训的失败吧

从接到老师给的项目开始就埋下了不安的种子

老师在拷贝文件的时候弄混了,给了一份很不成熟的详细设计和数据库设计

而我们当时不知道这一点,为了赶进度,直接就用别人的数据库设计开始分模块做项目,在做的过程中一点点对数据库进行修改,直到忙活一下午才真正决定重新开始,数据库的设计已经错误百出了,在这之中又遇到小插曲影响我们的整个项目,当我们询问助理老师的数据库问题的时候,老师说在大型项目的开发中都会不适用外键约束,怕表太多形成环,做级联删除的时候不好解。而对应的使用用程序来实现级联。当时觉得很有道理,立马采用老师的意见,取消所有外键,但是数据库并没有重新设计(其实这时候连需求都还没有明确)只算是简单修改了下之前发现的错误,并取消了所有的外键。

然后真正开始了编码过程,在不了解需求的情况下编码就是个悲剧,只能看着老师给的静态界面来猜需求,当需求与底层数据库设计不一致的时候只能选择砍掉需求,或者是按自己的意愿去改造需求,这样做出来的东西还能正确吗,没办法,小组接受不了再一次返工了。

然后一步步的去实现那些所谓的需求

这之中又有个插曲,我觉得的要反思,但也不知道自己学到了什么

在开始知道neusoft的人开发要用cvs,心里一直很期待我们分组做项目的时候能用到,觉得那样特别酷,真正做项目的第一天我们就被这个小玩意弄的头都大了,动不动就出错,曾经一度想跟别的组一样放弃使用cvs自己完成自己的模块以后再手动整合,现在想想那时太心急而已,在组长的坚持下我们还是使用cvs了,在慢慢的使用中明白那些错误的出现都是小组有成员进行了错误的操作而已,解决方法其实也很简单,最后的答辩也证明在团队开发中有这样的工具还是方便多了,我们组最后的整合基本没有花什么时间,也没有出现太大问题,而别的没有使用cvs的组在最后整合的时候错误百出,最后能拿出来验收并不是各个模块完成最好的版本。   反思一下    还是那句话 存在即合理吧, 有些时候我们还是要相信前人的经验,虽然当时我们了解其中的原因。

 

再谈谈开发过程中遇到的一些问题

一共做了三个模块,其中在service层切入事物的时候都被忘记

第一次,当时对spring也不是很了解,出现了做DML操作的时候不发错sql语句,当时还不会用myeclipse调试web程序,所有调试都是用System.out来完成。查看了所有的语句执行过程,依然不理解为什么只能发出查询语句,别的操作都不发出sql语句,找来老师解决,很快发现是在service没有切入事务。所有的操作都是在内存中完成,并不会去修改数据库。

写到这想起每次在学校写的实验报告,每次都觉得没有东西可以写,都是cv操作,在学校就没怎么做个东西,自己完成的也都没有用心,真正自己做的好像都是小到不能再小的,自然无话可说。

第二次又出现同样错误不发出sql语句,自己马上意识可能是没有插入事务,查看果然是,问题解决

第三次出现距离第二次发现有几天时间,就有点好了伤疤忘了痛,又是一番痛苦调试,无解,找来老师,老师就说了句是不是没有切人事务,恍然大悟,问题解决。

 

以前在学校学习ssh的时候就听说ssh环境的搭建比较困难容易出错,比较幸运的是自己两次手动搭建都没有问题,好像有时候在启动服务器的时候报出异常,自己也能很快知道是怎么配置文件没有写

 

在接下来的开发中遇到的主要是一些jsp书写错误,都是写表单元素不会用啊,js错误啊什么的。以前在学校没听,基本都不会。好在在一次和同学的交流中知道www.w3school.com.cn/,去网上下了chm版的,改起错误来也省事多了,在项目间隙中也把html和js看了个大概

说起来这里面唯一值得记录就是表单元素数组了吧

在用js获取网页标签属性的时候,有两种方式getElementsByName()和getElementById()

两种方式我以前看的时候都并没有注意单复数,主要当时处于基本不会的状态,后面看了才知道html4的时候还有这两种方式,但在html5的时候基本就不推荐使用ByName了,而且标签也不建议设置name,而改使用Id

还有一点就是当使用js获取表单的时候如果本应该是数组的对象的长度变为1或者0的时候length是不存在的null,  在这些地方的表单验证都需要注意

 

在最后基本就是一些纠错的事情

遇到的错误最大的算是按条件查询的分页显示不正确,主要是在做查询操作的时候并没有考虑到会有按条件查询,所有的获取总数据条数都是直接使用select count(*) from xx,而并没有加入条件判断, 在查询总数据条数的时候加入条件判断就解决了

遇到第二个问题 按条件查询以后做再做翻页的操作,之前查找的条件丢失,这时候想到之前上课提到的context(有点慌不择路的感觉),但在运用的时候有因为别的错误无法运行而怀疑context的原理,结果又找来老师,经过老师老师的排错,和对context讲解,意识到context并不能算是解决问题,反而引来更多的错误,转而session,这段过程中对context和session印象更深刻,也理解了一点,,两个都是作为服务器与浏览器交换数据的载体,作用范围不一样而已,session是在一个会话范围内,而context是整个服务器运行过程中。

使用context将导致所有人用到的都是一样的数据而出现错误

在这里不得不提的就是action的多例,spring进行依赖注入的时候必须使用多例,不然一切就乱套了,所有人用的都是同一个action,action里面存储的数据也是被所有人共享,与使用context差不多了

 

在使用hibernate过程中遇下面问题,

class A a1 = session.get(A.class,id);

class A a2 = new A(); 

session.update(a2);//报错

会遇到这个问题的根本原因是数据库设计与需求的匹配,导致需要用程序做这个怪异的操作,现在觉得这也是个好事,我对session的认识也不会提高,在老师说持久化过程中的三个状态的时候都是一听一过,觉得没有什么意思,为了解决这个问题,自己找到hibernate_reference查看,理解了三个状态都是什么意思,和为什么程序会出错, session里面为每一个持久化的对象(说类好像更合适,同一类的不同对象也会是同一Id)都维护了一个id, 当在做持久化操作的时候遇到同一id的不同对象时就会报错。然后尝试去解绑消除id,百度代码,最后都因为原理的理解不透彻而失败,听过了老师的解释之后,只需要用session.clear()就能清楚掉session里面的所有缓存。就能做新的持久化操作了

 

最后为了给程序增彩,尝试用jquery给表格进行分类排序

从网上找来代码,但第一次找到的是实现代码,并没有完整的应用,但是对jquery算是一无所知,当时手头还没有别的资料,只能一边套用代码一边用alert测试。没有任何进展,第二天找到一份那个应用的完整版,有具体怎么实现,这样套用起来就方便多了,因为不是自己做的,原理也不懂,简单的cv并不能真正满足我们需求,只能在界面的超链接选择空链接来假装实现,最后的验收老师也没有细问,算是蒙混过关。

刚学完ssh,考虑要不要学css呢,来看看什么轻微博