JDBC基础知识(二)

目录

一、查询结果集

1、创建查询结果集对象

2、处理查询结果集

二、PowerDesigner

三、用户登录案例

四、JDBC事务机制

将自动提交机制禁用


一、查询结果集

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语句就自动提交一次

将自动提交机制禁用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值