.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_入门及注入问题的更多相关文章

  1. 初级安全入门——XSS注入的原理与利用

    XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...

  2. 初级安全入门——SQL注入的原理与利用

    工具简介 SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器.它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文 ...

  3. 基础Web漏洞-SQL注入入门(手工注入篇)

    一.什么是SQL注入  SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...

  4. Spring入门-----------------属性注入和对象注入

    属性注入即通过setter方法注入bean的属性或依赖对象. 属性注入使用<property>元素,使用name属性指定bean的属性的名称,value属性或<value>子节 ...

  5. PHP代码审计入门(SQL注入漏洞挖掘基础)

    SQL注入漏洞 SQL注入经常出现在登陆页面.和获取HTTP头(user-agent/client-ip等).订单处理等地方,因为这几个地方是业务相对复杂的,登陆页面的注入现在来说大多数是发生在HTT ...

  6. CTF SSTI(服务器模板注入)

    目录 基础 一些姿势 1.config 2.self 3.[].() 3.url_for, g, request, namespace, lipsum, range, session, dict, g ...

  7. LDAP注入介绍

    LDAP注入介绍 一. 前言 前些日子在看 OWASP TOP 10 时看到了对LDAP注入攻击的介绍,对此产生了兴趣,在网上经过一番搜索之后找到了构成本文主要来源的资料,整理出来分享给大家. 二. ...

  8. 紧跟时代步伐,让我们拥抱MVC 3

    作为一个开发者,我们不希望技术很快的更新,这是因为我们还没有完全掌握原来技术的基础上,又要掌握新的技术,作为天天忙忙碌碌的程序员,我们不希望还要额外的时间来学习,尤其是当我们的年龄,逐渐的变大的时候, ...

  9. 4.JDBC编程

    01.JDBC_Java程序和MySQL的关系:     1).Java程序跟其它MySQL客户端一样,就是一个"客户端",用于"封装SQL语句"并发送给MyS ...

随机推荐

  1. python:异常处理及程序调试

    1.异常概述 在程序运行过程中,经常会遇到各种各样的错误.这些错误统称为“异常”,在这些一场中有的是由于开发者将关键词写错导致,这类错误产生的是SyntaxError.invalid syntax(无 ...

  2. testNG官方文档翻译-3 testng.xml

    你可以通过以下几种不同的方法触发TestNG: 用一个testng.xml文件 使用ant 从命令行触发 这个章节将会介绍testng.xml的格式(你也可以在下面找到关于ant和命令行的内容). 关 ...

  3. JUC源码分析-线程池篇(三)ScheduledThreadPoolExecutor

    JUC源码分析-线程池篇(三)ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor 继承自 ThreadPoolExecutor.它主要用来在 ...

  4. 36-Ubuntu-用户管理-01-新建用户useradd

    创建用户/设置密码/删除用户/确认用户信息 序号 命令 作用 说明 01 sudo useradd -m -g 组名 新建用户名 添加新用户 -m 自动建立用户家目录 -g 指定用户所在的组,否则会建 ...

  5. android webview 输入法键盘遮挡输入框的问题

    新建一个工具类: /** * 解决webView键盘遮挡问题的类 * Created by zqy on 2016/11/14. */ public class KeyBoardListener { ...

  6. Spring mvc Hello World

    Spring mvc Hello World 添加依赖 <dependency> <groupId>org.springframework</groupId> &l ...

  7. python 编写暴力破解mysql用户名密码

    本文摘自别人的,自己运行调试了一下#!/user/bin/env python#-*- coding:utf-8 -*- import pymysql#导入连接数据库的模块import sys cla ...

  8. Java中的接口是怎么实现的

    接口 使用关键字interface来定义一个接口,和类的定义方法很相似分为接口声明和接口体. interface  Printable { final int MAX = 100; void add( ...

  9. leetcood学习笔记-172-阶乘后的0

    题目描述: 方法:不断除以 5, 是因为每间隔 5 个数有一个数可以被 5 整除, 然后在这些可被 5 整除的数中, 每间隔 5 个数又有一个可以被 25 整除, 故要再除一次, ... 直到结果为 ...

  10. Spring - <bean parent="xxx" 属性>

    总结 必要条件: 1.子bean必须与父bean保持兼容,也就是说子bean中必须有父bean定义的所有属性. 2.父bean必须是抽象bean或者定义lazy-init=true也就是不让bean工 ...