insert 注入逻辑

现在的孩子,分手专挑情人节,告白专挑愚人


情人节表白,人家不听。愚人节表白,人家不信。清明节表白,人家不应。
在这里插入图片描述


什么是DML?

DML:数据操作语言
功能:主要是对表,视图等对象进行查询,插入,更新和删除操作
包括:
select查询
insert插入
update更新
delete删除

INSERT语句基本使用

INSERT INTO users(uid,uname,password,isadmin)
Values(1,‘hxf’,‘hxf123’,1)

INSERT INTO users(uid,uname,password,isadmin)
SELECT 1,‘hxf’,‘hxf123’,1;

insert into users set uid=2,uname=‘hxf2’;

INSERT语句报错逻辑

在这里插入图片描述

INSERT留后门逻辑

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
####Statement和PreparedStatement - PreparedStatement预编译的SQL执行对象 1. 可以避免SQL注入 因为在编译的时候已经把SQL的逻辑固定,不会因为替换进去的内容改变逻辑 2. 如果SQL中涉及变量 相比Statement的字符串拼接的方式,代码可读性提高,并且不容易出错。 3. 如果涉及批量执行多条SQL时 使用PreparedStatement执行效率较高 - 如果SQL中没有变量用Statement 有变量用PreparedStatement ###批量操作 - Statement批量操作: statement.addBatch(sql1); statement.addBatch(sql2); statement.addBatch(sql3); //执行批量操作 statement.executeBatch(); - PreparedStatement批量操作: statement = connection.prepareStatement(sql); for (int i = 0; i < 100; i++) { statement.setString(1, "name"+i); statement.setString(2, "admin"+i); //添加到批量操作 statement.addBatch(); if(i ==0){ //执行批量操作 statement.executeBatch(); //清空执行过的SQL statement.clearBatch(); } } ####事务 1. 开启和关闭自动提交 connection.setAutoCommit(false/true); 2. 提交事务 connection.commit(); 3. 回滚 connection.rollback(); - 实现转账: 超人 500 蝙蝠侠 5000 蝙蝠侠给超人转2000 执行第一次成功 执行第二次成功 执行第三次失败 提示余额不足 并且回滚 create table jdbc_person(id int,name varchar(10),money int); insert into jdbc_person values(1,'超人',500),(2,'蝙蝠侠',5000); - 代码参见Demo08.java ###获取自增主键的值 create table team(id int primary key auto_increment,name varchar(10)); create table player(id int primary key auto_increment,name varchar(10),tid int); - 代码参见 Demo09.java ###元数据 - 元数据指 数据库和表的相关信息 - 代码参见 Demo10.java

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值