JDBC【自用】

1.简介

定义:JDBC是使用Java语言操作关系型数据库的一套API,同一套Java代码可以操作不同的关系数据库。

上图的驱动即:对于JDBC的实现类。

JDBC本质:官方(sun公司)定义的一套错做所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行代码的是驱动jar包中的实现类。

JDBC的好处:各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发。可随时替换底层数据库,访问数据库的Java代码基本不变。

2.JDBC API详解

(1)DriveManager

   DriveManager(注册驱动类)的作用: 

1.注册驱动 2.获取数据库连接

DriveManager是个工具类,里面都是静态方法(static),之后直接类名.方法名即可以调用

//1.注册驱动
        //Java5之后,下面这行可以注释掉,因为在5jar包里的META—INF的services文件里有个java.sql.Driver,程序run之后会自动加载
        Class.forName("com.mysql.jdbc.Driver");//加载驱动类   jar5的固定格式

        //2.获取连接
        //127.0.0.1 -- 本机IP地址    3306:端口号
        //如果连接的是本机的MySQL,且端口号默认为3306,则IP地址和端口号可以省略
        //配置useSSL=false参数,禁用安全连接方式,解决警告提示
        String url = "jdbc:mysql://127.0.0.1:3306/test111?useSSL=false&serverTimezone=Asia/Shanghai";

(2)Connection

Connection(数据库连接对象作用):

Connnection接口用于与特定数据库连接(会话),执行SQL语句并在连接的上下文中返回结果。

1.获取执行sql的对象     2.管理事务

(3) Statement

DDL:对数据库和表的增删改查操作。DDL语句执行成功后,也可能返回0(如删除数据库)

DML:对数据的增删改操作

DQL:对数据的查询操作

(4) ResultSet

               

 (5)PrepareStatement

继承自Statement。

 sql注入:

能实现SQL注入的本质是因为拼字符串,可以把密码截断改变sql语句本意

//接收用户输入的name和password
        String name  = "hadjlw";
        //sql注入核心在于用户密码,打印出sql语句是
        //select * from login where username = 'hadjlw' and password = ''or'1'='1'
        //密码变成空字符串或者判断1=1
        String pwd = "'or'1'='1 ";    //pwd = " '    or   '1'='1';

 PrepareStatement的预编译SQL语句并执行的步骤:

原理:

预编译sql(检查sql语法及编译sql)只一次(即sql语句只传入一次),执行 sql可多次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值