MYSQL的API简单的理解

DriverManager

DriverManager(驱动管理类)作用:

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

url:连接路径

语法:jdbc.mysql://IP地址(域名):端口号/数据库名称?参数键值对1&参数键值对2……

Eg;

Jdbc.mysql://127.0.0.1:3306/db1

如果连接的是本机的mysql,切端口号为为默认的。则可以改写成:jdbc.mysql///数据库名称?参数键值对……

Connection

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

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

获取SQL对象

普通获取对象

Statement     creatStatement()

预编译SQL的执行SQL对象:防止SQL注入

PreparedStatement    prepareStatement(sql)

执行存储过程的对象

CallableStatement     prepareCall(sql)

事务管理:

Mysql事务管理:

开启事务:begin/start transaction

提交事务:commit

回滚事务:rollback

Mysql默认自动提交事务

Jdbc事务管理:connection接口定义了三个对应的方法

开启事务:setAutoCommit(boolean autoCommit);true为自动提交,false为手动提交事务,即为开启事务

提交事务:commit()

回滚事务:rollback( )

Statement

Statement作用:

执行SQL语句

int executeUpdate(sql):执行DML,DDL语句

返回值:1.DML影响的行数   2.DDL语句执行后,执行成功也可能返回0

ResultSet

ResultSet  executeQuery(sql):执行DQL语句

返回值:ResultSet结果集对象

获取查询结果

bollean  next():(1)将光标从当前位置向前移动一行  (2)判断当前行是否为有效行

返回值:true:有效行,当前行有数据

        false:无效行,当前行没有数据

xxx  getXxx(参数):获取数据

xxx:数据类型,入int,String

参数int:列编号,从1开始

     String:列的名称

PreparedStatement

作用:预编译sql,预防SQL注入问题

SQL注入:是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击大方法。

获取PreparedStatement对象

//SQL语句中的参数值,使用?占位符来替代

String sql=“select * from 表名 where 条件1=?and 条件2=?……”;

//通过Connection对象获取,并传入对应的sql语句

PreparedStatement   pstmt=conn.preparedStatement(sql);

设置参数值

PreparedStatement对象:setXxx(参数值1,参数值2):给?赋值

Xxx:数据类型;

如setInt(参数1,参数2),setString(参数1,参数2)

参数:

参数1:?的位置编号

参数2:?的值

执行SQL

executeUpdate();/executeQuery()0;   //不需要在传递sql

PreparedStatement原理:

防止SQL注入:将敏感字符进行转义

如  ‘  会变成  /’  这样编译后的  ‘  依旧是我们所认为的  ’  。

其中检查SQL语法和编译SQl所花费的时间一般都大于执行SQL的时间。

PreparedStatement还有还会预编译SQL,从而提高性能

如:在执行SQL语句 select * from user where name=?;

setString(1,“come的喂”);

setString(1,“ABC”);

在执行setString(1,“come的喂”);这个的时候会进行sql预编译,但是预编译后再执行setString(1,“ABC”);这个语句的时候就不会再进行检查sql语法和编译sql语句,可以直接进行执行,从而节省时间,提高性能。

但是PreparedStatement预编译功能默认为关闭状态

开启预编译功能:把useServerPrepStmts=true加到url后参数键值对上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值