JDBC_入门及注入问题
.JDBC基本概念: java database Connectivity java数据库连接,java语言操作数据库 本质: 官方定义的一套操作所有关系型数据库的规则,即接口。 各个数据库厂商实现这套接口,提供数据库驱动jar包。 我们是以这套接口编程,真正执行的代码是驱动jar包中的实现类 .快速入门: 步骤: .导入驱动jar包 .注册驱动 Class. .获取数据库连接对象 Connection .定义sql .获取执行sql语句的对象 Statement .执行sql,接收返回结果 .处理结果 .释放资源 .JDBC各个接口和类的详解: .DriverManager:驱动管理对象 功能: .注册驱动: Class.forName("com.mysql.jdbc.Driver"); mysql5之后驱动jar包可以省略注册驱动的步骤 .获取数据库连接 static Connection getConnection(String url, String user, String password) 参数: url:指定连接的路径 jdbc:mysql://ip地址(域名):端口号/数据库名称 user:用户名 password:密码 .connection: 数据库连接对象 .功能: .获取执行sql的对象 Statement createStatement() PreparedStatement prepareStatement(String sql) .管理事务: 开启事务:void setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开启事务 提交事务:void commit() 回滚事务:void rollback() .statement: 指定sql的对象 .boolean execute(String sql):可以执行任意sql 了解 .int executeUpdate(String sql):执行DML(insert update delete)语句、DDL(create alter drop)语句 .ResultSet executeQuery(String sql):执行DML(insert update delete)语句、DDL(create alter drop)语句 返回值:影响的行数 .ResultSet:结果集对象 .boolean next():游标向下移动一行 .getXxx():获取数据 Xxx:数据类型 .getXxx(参数): int:列的编号从1开始 String:列名称 注意: 使用步骤: .游标向下移动一行 .判断是否有数据 使用next的返回值判断 .获取数据 .PreparedStatement:执行sql的对象 .SQL注入问题:在拼接sql时有一些sql特殊关键字参与拼接回造成安全性问题 .输入用户名随意,输入密码:a' or 'a' = 'a .解决sql注入问题:使用PreparedStatement对象来解决 .预编译的sql:参数使用?作为占位符 .步骤: .写sql语句使用占位符 .Connection.prepareStatement(String sql) .给?赋值:.setXxx(参数1,参数2) 参数1:?的位置 参数2:?的值 .执行sql不需要参数 */ import java.sql.*; public class JDBC_Test01 { public static void main(String[] args) throws ClassNotFoundException, SQLException { .注册驱动 Class.forName("com.mysql.jdbc.Driver"); .获取数据库连接对象 Connection Connection connection /day01","root","ROOT"); .定义sql String sql = "show tables"; .获取执行sql语句的对象 Statement Statement statement = connection.createStatement(); .执行sql,接收返回结果 int count = statement.executeUpdate(sql); .处理结果 System.out.println(count); .释放资源 connection.close();
JDBC_入门及注入问题的更多相关文章
- 初级安全入门——XSS注入的原理与利用
XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...
- 初级安全入门——SQL注入的原理与利用
工具简介 SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器.它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文 ...
- 基础Web漏洞-SQL注入入门(手工注入篇)
一.什么是SQL注入 SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...
- Spring入门-----------------属性注入和对象注入
属性注入即通过setter方法注入bean的属性或依赖对象. 属性注入使用<property>元素,使用name属性指定bean的属性的名称,value属性或<value>子节 ...
- PHP代码审计入门(SQL注入漏洞挖掘基础)
SQL注入漏洞 SQL注入经常出现在登陆页面.和获取HTTP头(user-agent/client-ip等).订单处理等地方,因为这几个地方是业务相对复杂的,登陆页面的注入现在来说大多数是发生在HTT ...
- CTF SSTI(服务器模板注入)
目录 基础 一些姿势 1.config 2.self 3.[].() 3.url_for, g, request, namespace, lipsum, range, session, dict, g ...
- LDAP注入介绍
LDAP注入介绍 一. 前言 前些日子在看 OWASP TOP 10 时看到了对LDAP注入攻击的介绍,对此产生了兴趣,在网上经过一番搜索之后找到了构成本文主要来源的资料,整理出来分享给大家. 二. ...
- 紧跟时代步伐,让我们拥抱MVC 3
作为一个开发者,我们不希望技术很快的更新,这是因为我们还没有完全掌握原来技术的基础上,又要掌握新的技术,作为天天忙忙碌碌的程序员,我们不希望还要额外的时间来学习,尤其是当我们的年龄,逐渐的变大的时候, ...
- 4.JDBC编程
01.JDBC_Java程序和MySQL的关系: 1).Java程序跟其它MySQL客户端一样,就是一个"客户端",用于"封装SQL语句"并发送给MyS ...
随机推荐
- 【android】获取本机ip地址
方法是利用网址:http://pv.sohu.com/cityjson?ie=utf-8,返回String类型的ip地址: public static String getNetIp() { Stri ...
- java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy
问题:Error creating bean with name 'sqlSessionFactory' defined in class path resource [applicationCont ...
- python学习10—迭代器、三元表达式与生成器
python学习10—迭代器.三元表达式与生成器 1. 迭代器协议 定义:对象必须提供一个next方法,执行该方法或者返回迭代中的下一项,或者返回一个StopIteration异常,以终止迭代(只能往 ...
- windows平板软件开机自启动+霸屏的操作方法
转载(忘了地址) 很好很强大.成功亲测 使用你自己的账号(最好是管理员权限的账号)登录Windows,然后添加一个给其他人使用的账户(假设为other),注意一定要为other设置密码. 运行 ...
- SSD 坏了
系统盘是SSD,系统盘坏了. 桌面所有数据都拿不回来了. 真的无奈啊,来吧,统计一下,有多少东西要重装. VS2008.VS2010.VS2013.VS2015. GITHUB.SVN.VMWare. ...
- 结对编程UI
GitHub:https://github.com/zsl1996/UI/commits/master 一. 实验内容 这是交付给最终用户的软件,有一定的界面和必要的辅助功能.完 ...
- oracle运维(持续更新)
目录 简单命令使用 进入SQL*Plus 退出SQL*Plus 在sqlplus下得到帮助信息 显示表结构命令 DESCRIBE SQL*Plus 中的编辑命令 调用外部系统编辑器 运行命令文件 关于 ...
- C语言实现 冒泡排序 选择排序 希尔排序
// 冒泡排序 // 选择排序 // 希尔排序 // 快速排序 // 递归排序 // 堆排序 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h& ...
- 笔记44 Hibernate快速入门(一)
一.Hibernate简介 Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象. Hibernate 架构是分层的,作为数据访问层,你不 ...
- svg实现绘制路径动画
1,首先用svg绘制一条path路径,然后进行如下操作 ps: 下面是svg中两个属性及值的意义 stroke-dasharray是让你指定画出的线段每段的长度,第二个值是各段之间空隙的长度. str ...