2、防范 SQL 注入,需要采用PreparedStatement取代Statement。
PreparedStatement
PreperedStatement是Statement的孩子,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:
PreperedStatement可以避免SQL注入的问题。
Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。PreparedStatement 可对SQL进行预编译,从而提高数据库的执行效率。
并且PreperedStatement对于sql中的参数,允许使用占位符的形式进行替换,简化sql语句的编写。
字段名 |
说明 |
类型 |
Id |
编号 |
varchar(20) |
name |
客户姓名 |
varchar(20) |
sex |
性名 |
varchar(4) |
birthday |
生日 |
date |
cellphone |
手机 |
varchar(20) |
|
电子邮件 |
varchar(40) |
preference |
客户爱好 |
varchar(100) |
type |
客户类型 |
varchar(40) |
Description |
备注 |
varchar(255) |
数据库分页
MySQL分页的实现:
• Select * from table limit M,N
• M:记录开始索引位置
• N:取多少条记录。
完成WEB页面的分页显示
• 先获得需分页显示的记录总数,然后在web页面中显示页码。
• 根据页码,从数据库中查询相应的记录显示在web页面中。
• 以上两项操作通常使用Page对象进行封装。