javaweb笔记—04(预编译和泛型)
Posted StephenChowcai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb笔记—04(预编译和泛型)相关的知识,希望对你有一定的参考价值。
预编译:ps对象
1.ps可进行预编译,占位符传值,性能高于sta的(数据库驱动层有优化)
2.比较灵活,数据库将预编译的SQL缓存了,第二次访问,就不用预编译,直接执行。
3.较为安全,不会发生SQL注入。
4.简单,不用拼接SQL,少出错。
SQL注入; select * from user where name = ‘"+name+"‘ or 1=1
and pwd = ‘"+pwd+"‘ or 1=1;
5.把结果集中的数据放到list集合中的方法
while(rs.next()) {
Book book = new Book(rs.getInt("id"), rs.getString("name"), rs.getString("author"), rs.getFloat("price"));
list.add(book);
}
总结:当结果集是一个对象时,用if遍历,当结果集为多个对象时,用while
遍历。
6.分页笔记,分页时在后台有一个转换,npage;异常的话 npage = 1:跳转到第一页
,因为,有人可能在地址栏搞乱,比如给:nowPage = "搞乱字符串";
npage的赋值就会出现异常,而跳转到第一业,所以要有一个npage的转换
加npage的转换处理了两个问题:
第一个:在nowPage = 0时,会出现异常,它就能处理异常
第二个:就是上边说的,有人在地址栏的捣乱,输入字符串。
分页时后台要判断,如果当前页nowPage = 0;那么让当前页赋值等于1;
如果
7.
泛型类:具有一个或者多个类型(类形式)变量的类,Pager是具有一个类型变量的类。一个类在另一个类中做变量
* 类型变量可以指定方法的返回类型以及域和局部变量的类型。
* 方法返回:public T getPager() {}
* 域:Pager<T, U>:第一个域和第二个域使用不同的类型
* 局部变量类型: public void setPager(T t) {
* this.t = t;
* }
8.得到pageData的SQL
select top "+pageSize+" * from book where id not in (select top "+flag+" id from book)
以上是关于javaweb笔记—04(预编译和泛型)的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参
C++ Primer 5th笔记(chap 16 模板和泛型编程)定义
C++ Primer 5th笔记(chap 16 模板和泛型编程)实例化
C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断