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对象进行封装。