JDBC实现修改和删除操作
来源:互联网 发布:达芬奇 知乎 编辑:程序博客网 时间:2024/06/05 10:11
工具:Myeclipse(Eclipse):
知识点:如何防止SQL注入攻击和JDBC中的修改/删除操作
jar包:
commons-collections4-4.0.jar
commons-dbcp-1.4.jar
commons-pool-1.6.jar
Oracle 11g 11.2.0.1.0 JDBC_ojdbc6.jar
代码都是基于自己写的连接池技术,,已经分享过了
url:http://blog.csdn.net/coder_hello_world/article/details/78515974
修改操作:
好比现实生活中的一些修改密码操作
是让用户输入用户民和密码验证正确之后
就开始修改用户输入的修改信息
按照业务代码的思想,用户名是不能更改,一般作为表的主键唯一且不重复
删除操作:
用户输入的信息正确之后,就开始实现用户的删除操作
为何使用PreparedStatement对象防止注入工具?
1.保护用户的账号信息安全
是如何进行防止的?
PrepareStatement是采用的预编译.
在我们写好SQL语句的时候,数据库就已经产生了执行计划
PrepareStatement是直接对匿名的值进行复制,外界看不到输入什么
输入的东西都会作为字符串处理..不会进行拼接
main函数{
test1(i,j*5);//这里用户输入的时候可以进行值的修改.对数据产生危害
test2(?,?);//不知道输入什么..无法对数据进行修改...
}
public static void test1(int i ,int j){
}
public static void test2(?,?){
}
而传统的Statement并不是没有作用,如果不进行动态增删改查数据数,就可以使用Statement对象
知识点:如何防止SQL注入攻击和JDBC中的修改/删除操作
jar包:
commons-collections4-4.0.jar
commons-dbcp-1.4.jar
commons-pool-1.6.jar
Oracle 11g 11.2.0.1.0 JDBC_ojdbc6.jar
代码都是基于自己写的连接池技术,,已经分享过了
url:http://blog.csdn.net/coder_hello_world/article/details/78515974
修改操作:
好比现实生活中的一些修改密码操作
是让用户输入用户民和密码验证正确之后
就开始修改用户输入的修改信息
按照业务代码的思想,用户名是不能更改,一般作为表的主键唯一且不重复
删除操作:
用户输入的信息正确之后,就开始实现用户的删除操作
为何使用PreparedStatement对象防止注入工具?
1.保护用户的账号信息安全
是如何进行防止的?
PrepareStatement是采用的预编译.
在我们写好SQL语句的时候,数据库就已经产生了执行计划
PrepareStatement是直接对匿名的值进行复制,外界看不到输入什么
输入的东西都会作为字符串处理..不会进行拼接
main函数{
test1(i,j*5);//这里用户输入的时候可以进行值的修改.对数据产生危害
test2(?,?);//不知道输入什么..无法对数据进行修改...
}
public static void test1(int i ,int j){
}
public static void test2(?,?){
}
而传统的Statement并不是没有作用,如果不进行动态增删改查数据数,就可以使用Statement对象
比如查询一张表中所有的数据,,就可以使用Statement对象
package com.csdn.jdbcdemo.date2017_11_16;import java.sql.Connection;import java.sql.PreparedStatement;import java.util.Scanner;import com.csdn.jdbcdemo.date2017_11_12.BasicDataSourceDemo;/** * *实现修改...删除... --->操作 * * @author 89155 * */public class User_SELECT_UPDATE_DELETE_TRANSFER {public static void main(String[] args) {System.out.println("1.修改 2.删除 3.退出");System.out.println("请输入选项");Scanner scanner= new Scanner(System.in);String options= scanner.next();if(options.matches("[1-5]{1}".toLowerCase())){int options2 = Integer.parseInt(options);switch(options2){case 1://修改Updata(scanner);break;case 2://删除delete(scanner);break;default :System.out.println("结果操作.退出程序!");System.exit(-1);}}else{System.out.println("输入有误!请重新输入!");} }//删除操作private static void delete(Scanner scanner) {System.out.println("输入你的用户名:");String username = scanner.next();System.out.println("输入你的密码:");String password = scanner.next();try{//连接Connection connection= BasicDataSourceDemo.getConnection();String selectSql = "SELECT * FROM USER_INFODEMO"+ " WHERE"+ " LOWER(USERNAME) = LOWER(?)"+ " AND"+ " LOWER(PASSWORD) = LOWER(?)";//使用PreparedStatement对象PreparedStatement pstate= connection.prepareStatement(selectSql);pstate.setString(1, username);pstate.setString(2, password);//查看输入的信息是否正确if(pstate.executeQuery().next()){//确定是否删除System.out.println("确定删除此用户 (N/Y)");String next = scanner.next();if(next.equalsIgnoreCase("y")){//删除用户操作String deleteSql = "DELETE FROM USER_INFODEMO"+ " WHERE "+ "LOWER(USERNAME) = LOWER(?)";PreparedStatement pstate2= connection.prepareStatement(deleteSql);pstate2.setString(1, username);if(pstate2.executeUpdate()>0){System.out.println("删除成功!");
pstate.close()
}else{System.out.println("删除失败!");
sptate.close();}}else{System.out.println("取消用户的删除操作!");System.exit(-1);}}else{System.out.println("输入的用户名和密码不正确!"+ "无法进行删除操作.");}sptate.close();}catch(Exception e){e.printStackTrace();}}//修改private static void Updata(Scanner scanner) {System.out.println("输入你的用户名:");String username = scanner.next();System.out.println("输入你的密码:");String password = scanner.next();System.out.println("输入你要修改的密码:");String updatePassword = scanner.next();try{//连接Connection connection= BasicDataSourceDemo.getConnection();String selectSql = "SELECT * FROM USER_INFODEMO"+ " WHERE"+ " LOWER(USERNAME) = LOWER(?)"+ " AND"+ " LOWER(PASSWORD) = LOWER(?)";//使用preparedStatement对象防止SQL注入式攻击PreparedStatement pstate = connection.prepareStatement(selectSql);pstate.setString(1, username);pstate.setString(2, password);if(pstate.executeQuery().next()){String updateSql = "UPDATE USER_INFODEMO"+ " SET"+ " PASSWORD = ?"+ " WHERE"+ " LOWER(USERNAME) = LOWER(?)";PreparedStatement pstate2= connection.prepareStatement(updateSql);pstate2.setString(1, updatePassword);pstate2.setString(2, username);if(pstate2.executeUpdate()>0){System.out.println("修改成功!");sptate.close();}else{System.out.println("修改失败!");}}else{System.out.println("账号或者密码输入有误!");}sptate.close();}catch(Exception e){e.printStackTrace();}}}
阅读全文
0 0
- JDBC实现修改和删除操作
- JDBC java执行修改删除操作
- day3_spring04_jdbcTemplate实现crud操作(修改和删除操作)
- 游标修改和删除操作
- hibernate_day02_05_实现类操作(修改)和06_实现类操作(删除)
- JDBC操作数据库(同步:备份,修改,删除)笔记
- 连接数据库实现删除 添加 修改操作
- JDBC--Statement(删除操作)
- LitePal的修改和删除操作(三)
- LitePal的修改和删除操作
- jdbc使用 Statement 接口实现删除数据操作
- jdbc使用 PreparedStatement 接口实现删除数据操作
- 如何实现对XML文件的增加、删除和修改操作
- jquery easyui实现datagrid表格向数据库中进行增加,修改和删除操作
- 使用JDBC实现查询和转账操作
- JDBC添加、删除、修改、查询
- sql语句实现级联修改和删除
- Ajax实现添加、修改和删除提示
- OpenCV学习笔记2-读取图片
- 《the django book》part2 django的安装使用
- 通过MySQL自动同步刷新Redis
- 系统延时及定时任务
- 赫夫曼树编码解码实例(C)
- JDBC实现修改和删除操作
- 1.3 输出第二个整数
- Stars poj 2352 treap
- BZOJ3612 [Heoi2014]平衡 递推 整数划分
- NYOJ A : 绝望的riba2534
- PCI-E 1X金手指封装
- unity ugui 坐标位置总结
- volatile关键字
- 训练日记-39