目录
一、查询结果集
1、创建查询结果集对象
PS: executeUpdate();方法只能跟进行增删改的SQL语句;实现查询使用executeQuery();方法
2、处理查询结果集
1、遍历结果集
结果集对象调用next();方法
2、取数据
· 利用循环取出数据;调用getString()方法,字段填写列名使程序健壮;
· 查询结果集的前提一定是executeQuery()方法中的sql语句为查询语句,即select.....from....(字段重命名之后必须写成新的字段名称,如name as n , String name = resultSet.getString("n");)
· 除了可以以String类型取出,还可以以特定类型取出查询结果;JDBC中,下标从1开始
二、PowerDesigner
· 建表时,name表示表名;code表示使用SQL语句时在代码中的表名
· 设计一个表时,一般使用PowerDesigner进行设计,设计案例如下
· 保存时,先保存表名.pdm文件--Ctrl + S;再保存表名.sql文件--双击表→Preview→保存
· SQL脚本过大时,使用source语句加载脚本
三、用户登录案例
1、用initUI()方法初始化一个用户登录界面,该方法需要一个返回值(map)接受用户的用户名和密码
2、编写login方法,判断是否登陆成功
PS:当用户名输入:fdsa;密码输入:'fdsa' or '1' = '1'时存在sql注入现象;产生原因是用户输入的信息中包含sql语句的关键字
解决sql注入:只要用户提供的信息不参与sql语句的编译过程即可解决;使用java.sql.PreparedStatement接口
其中,一个?表示一个占位符,将来接受一个值;占位符不能使用单引号括起来
解决sql注入的关键在于用户提供的信息中即使含有sql语句的关键字,但这些关键字并没有参与编译,不起作用
当业务需要sql注入的时候使用Statement
增删改同理,将需要传值的位置用?占位符代替,通过setString方法进行传值
四、JDBC事务机制
JDBC中事务是自动提交的,只要执行任意一条DML语句就自动提交一次