欢迎光临散文网 会员登陆 & 注册

Java学习笔记:防注入,预处理的实现步骤,字节流,获取,读取配置文件【诗书画唱】

2020-07-08 22:31 作者:诗书画唱  | 我要投稿


SQL_PreparedStatement:

什么是防注入?

直接输入字符串,拼接后,用户再输入一个or 1=1的时候,那么这个条件是肯定成立的,所以用户输入不输入用户名都没有多大的关系了,会把数据都打印出来等等。为了解决这个问题,就要使用preparedstatement解决,它默认将sql语句编译成函数,每次只要传入相应的参数就可以了,就可以防止用户sql注入。

预处理:我们每次对于数据库操作数据库都要将sql语句编译成函数

如果我们使用预处理的时候,数据库就默认生成了一个函数,以后

传入相同的内容的时候,只需要调用这个函数就可以了,这个就可以提升sql执行的效率


预处理的实现步骤:

//1.导入数据包

//2.加载数据包

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//3.创建连接数据库的对象(Connection)

Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=fuxi","qqq","11111");

//4.创建执行sql语句的对象,是用statement,防注入,预处理是用preparedStatement

String sql="select * from denglu where uid=? and uname=?";//1

PreparedStatement ps=con.prepareStatement(sql);//编译sql语句

ps.setObject(1, 1);

ps.setObject(2, "qwe");

//5.写并且执行sql语句,ResultSet的对象

ResultSet res=ps.executeQuery();//使用这个方法去执行sql语句

//6.遍历这个对象

while(res.next()){

System.out.println(res.getObject(1)+"  "+res.getObject(2));

}


为什么要读取配置文件:

//将一些常用的配置信息保存在配置文件里,

//java类一旦编译,虽然我们不能直接修改编译后的文件,但是我们

//可以修改配置文件,写的代码对于配置都是去配置文件里读的,万一

//数据库用户名或者密码修改之后,我直接修改配置文件即可。

//读取配置文件:

//1.建立一个文件,src目录下,文件名称可以随便,但是后缀名必须为.properties

//2..properties中添加几个内容

//3.在main中添加一下代码


将这个配置文件转化为字节流

//使用类加载器转化文件

InputStream is=qqq.class.getResourceAsStream ("../zz.properties");

Properties p=new Properties();

p.load(is);

System.out.println(p);

//获取指定的单个内容

System.out.println(p.getProperty("qq"));




配置文件就是XXX.properties格式的文件

之后点“New”“Other”“File”,之后就命名XXX.properties格式。

每次写好Java文件,点击执行的时候,都会自动编译生成和Java文件相同名字的class文件,之后发给别的公司class文件和配置文件,别的公司把这个文件从桌面等处拖到Java等的编译器中时,可以运行,并且用配置文件更改处理class中的数据库名,用户名,用户密码等。但看到的都是”0101“之类的二进制,但可以通过“反编译”生成源码等。

Java学习笔记:防注入,预处理的实现步骤,字节流,获取,读取配置文件【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律