//DB
Create table
create table staff(
NO varchar2(8) primary key not null,
name varchar2(32) not null,
username varchar2(32) not null,
sex varchar2(4) not null,
bdep varchar2(32) not null,
dep varchar2(32) not null,
marry varchar2(8),
bir varchar2(16),
edu varchar2(16),
interest varchar2(512),
skill varchar2(512),
introduce varchar2(1024));
Insert info
insert into staff values('TN1133','蘇月亮','Aaron', 'M', '管理處', '網通資訊部', 'N', '1980-03-01', '大專' , 'book', 'computer', 'I want love very much' );
insert into staff values('TN0642','黎永亮', 'Kevin', 'M', '管理處', '網通資訊部', 'N', '1976-09-09', '大專' , 'book', 'computer', 'I want love very much' );
commit;
Drop staff:
drop table staff;
Drop information:
delete from staff where no like '%'
update:
String update=" update staff "+
" set interest='"+interest+"', skill='"+skill+"', introduce='"+introduce+"' "+
" where username='"+userName+"' ";
一些主要的语句:
//设置session,第一次
request.setCharacterEncoding("big5");
HttpSession se=request.getSession();
String userName=request.getParameter("userName");
se.setAttribute("userName",userName);
//获得Session
HttpSession se=request.getSession();
String userName=(String)se.getAttribute("userName");
out.println(userName+",這是你想查詢的資料:");
//删除session
HttpSession se=request.getSession();
String userName=(String)se.getAttribute("userName");
se.removeAttribute("userName");
//比较讨厌传值:页面跳转到查询页面(设置Session的页面,必须带参数!!!)
<a href="update.jsp?no=<%=no1%>&name=<%=name%>">修改我的詳細資料</a>
<a href="query.jsp?userName=<%=userName%>">返回重新查詢</a>
程序心得:
1.当从一个页面返回到上一个页面的时候, Session 问题:
<a href="query.jsp?userName=<%=userName%>">返回上一頁面進行查詢</a>
2.写到快末尾的时候,发现登陆用户名和数据库里面的用户名问题,一般登录名为英文,而数据库里的真实姓名为中文!又需要加一个栏位,是系统开始写的时候没有考虑周到,
3.写到后面修改资料的时候,说什么都不能提交处修改的数据,我想了一下,这是对<a href=””></a>的理解和对<input type=”submit” />的理解不够透彻,我既然想传修改的资料,又要传键值(no),用于sql语句的where,但是submit 没有参数啊,怎么办???
这时候我想到了Session,也不只是从语句理解Session了, 从Session抓出Username,进行sql语句的修改,结果成功了,可是,我面临的问题是,如果有两个userName就不可以了,因为修改的时候这两个username的资料都要修改!但是又想到一般系统好像没有两个相同的登录名,所以,我侥幸成功了!
还要仔细想一想, Session到底可以放什么?建立table的时候的合理选择PK,是为了系统,而不是为了应用!这句话理解起来比较费事,也就是说
username varchar2(32) not null,
NO varchar2(8) primary key not null,
应该设置username 为primary key, 但是,现实中NO 也是不可以重复的,我如何控制卡号也不重复呢?还是应该好好再读一遍数据库,是用那些完整性约束吗?
每做一个小系统,都有不同的收获,有的时候还经常犯过去犯过的错误.但是这样一次有一次的调试修改真的很累,可是我一直在进步,包括对HTML, JDBC, Oracle的理解,想到Oralce ,我还没有把数据库事务写进去,不知道如果不用数据库事务,更改的资料会放到哪里?
boolean autoCommit=conn.getAutoCommit();
finally{
conn.setAutoCommit(autoCommit);
conn.close();
}
我把这些 加到代码里面,竟然出现了java.lang.NullPointerException
不知道为什么,今天实在不想费力气研究了.
这周写了一个小系统,学习应用了Session,还有JDBC数据源连接,有点自满,哈哈.
明天就要坐车回家了,有点高兴,一直在很用心,很辛苦地投入写一个个小系统,前前后后,数据库的table 就改了三遍,程序里的修改更不知道改了多少个地方,看来做好系统分析是非常重要,更少走很多弯路!这样辛苦着,很累,也很快乐.
本文地址:http://com.8s8s.com/it/it11483.htm