这个星期主要是在写小学期的web程序。这一次的实践让我融会贯通了暑假学习的web开发知识。以下是完成项目后的一个实验总结。
艾妮运动会成绩管理系统经验总结
1,事务的sql语句查询
(1) 注意开事务,执行语句,结束事务后都要加分号“;”
Eg: start TRANSACTION;
insert into competitors values('20173533','高波','男','101');
insert into competitors values('20173233','李旭春','男','101');
COMMIT;
(2) 对list集合添加对象时每次都应该要创建一个新的,不能在外面创建一个添加对象,然后修改值存进去,你觉得是存了多个对象进去,当实际上只存了那个最后一次更新的对象。例子:
for(int i=0;i<name.length-1;i++) {
competitor competitor = new competitor();
competitor.set(name[i], sex[i], com[i], num[i]);
List.add(competitor);
}
2,不想让浏览器对输入文本自动进行提示可以在文本设置那添加该属性 autocomplete="off"
3,定时显示的jQuery语句
$(function(){
Time = serInterval(“show()”,2500);
});
function show(){
操作代码
clearInterval(Time);
}
4,多表连接的操作
左连接 SQL语句:select * from student left join score on student.Num=score.Stu_id;
右连接 SQL语句:select * from student right join score on student.Num=score.Stu_id;
完全连接 SQL语句:select * from student full join score on student.Num=score.Stu_id;
连接 SQL语句:select * from student inner join score on student.Num=score.Stu_id;
喜欢用的连接语句
select * from student,score where student.ID=course.ID;
5,对于从数据库读取出来与项目字段不同的字段进行封装 例子:
//获取当前页面的数据
public List<competitor> getDataList(int begin, int countPage) throws SQLException {
QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
String sql = "select com.id as number,aca.name as comtestant,com.name,sex from competitionacademy aca ,competitors com where aca.id = com.academy_id limit ?,?";
return runner.query(sql, new BeanListHandler<competitor>(competitor.class),begin,countPage);
}
6,boostrap-Validate 加载重新校验
$("#defaultForm").data('bootstrapValidator').destroy();
$('#defaultForm').data('bootstrapValidator', null);
fromValidator();
change校验
7,加外键,解外键,添加不可重复组
添加外键语句:alter table 从表 add (constraint 外键名称)【虽然这不是必要的但是最好加上因为到时候删除外键需要使用到】
foreign key (从表字段名) references 主表(主表的主键)
eg: alter table product add constraint category_id_fk foreign key (category_id) references category(cid)
删除外键语句:【外键名称】(必要,需在添加外键的时候声明一般以“_fk”结尾,不然无法删除);
alter table 从表 drop foreign key 外键名称
eg: alter table product drop foreign key category_id_fk;
设置非主键内容不可重复
ALTER TABLE dbname.table ADD UNIQUE (fieldname);
数据库名为dbname,表名table,字段名fieldname.
alter table sportcompetitors add unique(sport_id,competitor_id)
8,cookie创建,添加以及session的销毁
获取Cookie:Cookie[] cookies = request.getCookies();
Cookie.getName();
Cookie.getValue();
创建Cookie: new cookie(“”,data);
设置Cookie有效时间:cookie.setMaxAge(60*60*24*30) 设置有效时间为一个月
设置Cookie有效路径:cookie.setPath(request.getContextPath());
添加Cookie:response.addCookie(cookie);
销毁cookie:cookie.setValue(“”);
cookie.setPath(request.getContextPath());
cookie.setMaxAge(-1000);
response.addCookie(cookie);
获取session:HttpSession session = request.getSesssion();
销毁session:session.invalidate();
9,获取上一个请求的全路径(由于过滤器会是配置的插件改变所以只能试着用这个来实现自动登录)
String retUrl = request.getHeader("Referer");