JAVA与Mysql的链接:JDBC详解

1.JDBC的快速入门

步骤

1.创建工程,导入驱动jar包

2.注册驱动

Class.forname("com.mysql.jdbc.Driver");

3.获取链接

Connection conn = DriverManager.getConnection(url,username,password);

4.定义sql语句

String sql="update...";

5.获取执行sql对象

Statement stmt=conn.createStatement();

6.执行sql

stmt.executeUpdate(sql);

7.处理返回结果

8.释放资源

stmt.close();

conn.close();

2.JDBC API详解

2.1DriverManager

2.1.1注册驱动

Class.forname("com.mysql.jdbc.Driver");

·Driver类源码会调用DriverManager.registerDriver()方法注册驱动

注意

MySQL 5之后的驱动包可以省略注册驱动的步骤

2.1.2获取连接

DriverManager.getConnection(url,username,password);

url:链接路径

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

        细节:

                  如果链接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以省略ip地址:端口号

                  配置useSSL=false 参数,禁用安全连接方式,解决警告提示

2.2Connection

2.2.1获取执行SQL的对象

·普通执行SQL的对象

Statement        createStatement()

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

PreparedStatement        prepareStatement(sql)

·执行储存过程的对象

CallableStatement        prepareCall(sql)

2.2.2JDBC事务管理

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

提交事务:commit();

回滚事务:rollback();

2.3Statement

2.3.1执行SQL语句

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

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

ResultSet  executeQuery(sql) :执行DQL语句

返回值:为结果集对象;

2.4ResultSet

2.4.1ResultSet作用

封装了DQL查询的结果

ResultSet        stmt.executeQuery(sql)

获取查询结果

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

类似迭代器的写法进行操作

xxx        getXxx(参数):获取数据

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

                           ·String:列的名称

2.5PreparedStatement

2.5.1作用

预编译SQL语句并执行:预防SQL注入的问题

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

2.5.2使用方法

(1)获取PreparedStatement对象

        String sql="select * from user where usename=? and password =?";

        //用?代替sql中的参数值

        PreparedStatement pstmt = conn.preparedStatement(sql);

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

(2)设置参数值

        pstmt.setXxx(参数1,参数2);

        参数1:?的位置编号,从1开始

        参数2:?的值

(3)执行SQL

        executeUpdate();  或  executeQuery();

        不需要再传入sql

2.5.3原理

好处:(1)预编译SQL,性能更高

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

注意:预编译功能默认关闭,使用键值对开启 useServerPrepStmts=true

原理:(1)在获取PreparedStatement对象时,提前将sql语句发送给mysql服务器进行检查编译

           (2)如果sql模板一样,则只需要一次检查编译

      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值