从零双排java之JDBC

JDBC技术是JAVA提供的一套类和接口  是连接数据库的一套规范  每一个数据库产商都需要实现


 * JDBC操作数据库的步骤

 * 1.注册驱动    registerDriver(Driver driver)

 *  加载驱动类    Driver 是数据库厂商实现的  跟你没关系

 * 2.获取书数据库的连接对象

 * getConnection(url,user,password)

 * 这里相当于   连接上了数据库

 * 3.通过连接对象 获取可以sql语句的执行对象

 *  连接对象.createStatement() 就可以获取执行对象

 * 4.执行语句 通过Statement对象  来执行 sql语句    

 *  executeUPdate(sql) 返回值int

 *  执行的是DML和  DDL语句  

 *  executeQuery(sql) 返回ResultSet

 *  执行DQL语句  

 * 5.处理执行sql 语句后得到的结果集

 * 6.关闭资源  调用Close


注册驱动

DriverManager.registerDriver(new Driver());

如果这么注册相当于 注册了两遍驱动

Driver源码中有静态代码块 并且代码块中 已经注册了一次

该如何正确注册驱动  利用反射来注册驱动  Class.forName("com.mysql.jdbc.Driver");


获取连接对象

数据库连接地址  jdbc:mysql://主机的ip地址:数据库端口号/数据库的名

Connection connection = DriverManager.getConnection(url, user, password);


sql注入测试

 * 'wanglong' or 1=1

 * 在sql语句拼接的时候 可以加入一个恒等条件

 * 让这条sql语句 一定会成立

 * 可以通过这个方式 来改变你sql语句原来的意思


防止sql注入

Scanner scanner = new Scanner(System.in);
		System.out.println("请输入账号");
		String user = scanner.nextLine();
		System.out.println("请输入密码");
		String password = scanner.nextLine();
		// jdbc:mysql://localhost:3306/myjdbc01
		Class.forName("com.mysql.jdbc.Driver");
		Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc01", "root", "123456");
		//获取预编译sql语句的对象
		//使用占位符 
		String sql = "select * from  users where username=? and password=?";
		System.out.println(sql);
		PreparedStatement statement = connection.prepareStatement(sql);
		//设置占位符 的值
		//参数一  问号的索引 从1 开始
		//就是替换 ?  的值
		statement.setObject(1, user);
		statement.setObject(2, password);
		//执行sql语句
		ResultSet resultSet = statement.executeQuery();
		//处理结果集
		while(resultSet.next()) {
			System.out.println(resultSet.getString("username")+"  "+resultSet.getShort("password"));
		}
		connection.close();
		statement.close();
		resultSet.close();

如何获取bin文件下的配置文件路径并取出配置文件中的内容

// 获取bin文件夹的路径classpath
		// URL resource = JDBCUitl.class.getClassLoader().getResource("db.properties");
		// System.out.println(resource);
		// 保证bin文件下要有这个文件 需要把配置文件放到工程目录的src文件夹下
		// 这个文件会被系统编译到bin文件夹下
		InputStream inputStream = JDBCUitls.class.getClassLoader().getResourceAsStream("db.properties");
		properties.load(inputStream);
		System.out.println(properties.getProperty("driverClass"));
		System.out.println(properties.getProperty("url"));
		System.out.println(properties.getProperty("username"));
		System.out.println(properties.getProperty("paassword"));













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值