回头探索JDBC及PreparedStatement防SQL注入原理

本文回顾了JDBC中的PreparedStatement如何防止SQL注入,通过对比Statement和PreparedStatement的效率,展示了PreparedStatement在批量处理时的优势。同时,探讨了Properties文件的读取以及预编译在数据库操作中的重要性。
摘要由CSDN通过智能技术生成

概述

JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下。再有就是我们在项目中有一些配置项是有时候要变动的,比如数据库的数据源,为了在修改配置时不改动编译的代码,我们把要变动的属性提取到一个配置文件中,比如properties,因为properties里面都是键值对的形式,所以非常便于阅读和维护。

一、首先说说读取properties文件,这个相对路径和绝对路径的问题:

package com.test.properties;

import java.io.File;
import java.io.IOException;

public class TestProperties {

	
	private static final String dataSourcePath = "resources/dataSource.properties";
	private static final String absoluteDataSourcePath = "D:\\Workspace\\Blogs\\TEST_Preparedstatement\\resources\\dataSource.properties";
	
	public static void main(String[] args) {
		
		try {
			// 1.getPath() 方法跟创建 File 对象时传入的路径参数有关,返回构造时传入的路径
			// 2.getAbsolutePath() 方法返回文件的绝对路径,如果构造的时候是全路径就直接返回全路径,
			//		如果构造时是相对路径,就返回当前目录的路径 + 构造 File 对象时的路径
			// 3.getCanonicalPath() 方法返回绝对路径,会把 ..\ 、.\ 这样的符号解析掉
			
			// 1.相对路径读取文件
			//user.dir为当前用户目录(即项目路径),java.io 包中的类总是根据当前用户目录来解析相对路径名,
			//当File对象入参不是以"/"开始的时候,则判断为相对路径方式构造,使用当前用户目录+相对路径的方式构造文件对象
			System.out.println("当前用户目录:" + System.getProperty("user.dir"));
			File file = new File(dataSourcePath);
			System.out.println("入参路径:" + file.getPath());//入参路径
			System.out.println("绝对路径:" + file.getAbsolutePath());//绝对路径
			System.out.println("绝对路径:" + file.getCanonicalPath());//绝对路径
			
			// 2.绝对路径读取文件
			//绝对路径名:是完整的路径名,从根目录定位文件位置,不需要参照其他文件路径,
			//windows中从某个分区磁盘如"c://"开始定位,linux表示从根目录"/"开始定位。
			File file2 = new File(absoluteDataSourcePath);
			System.out.println("");
			System.out.println("入参路径2:" + file2.getPath());//入参路径
			System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值