JDBC

来源:互联网 发布:java 线程锁活锁 死锁 编辑:程序博客网 时间:2024/06/13 11:23

之前操作数据
①通过mysql的客户端,登录数据库服务器(mysql -u root -p 密码)
②编写sql语句
③发送sql语句到数据库服务器中执行

一、jdbc定义
使用Java代码(程序)发送sql语句的技术

二、使用jdbc执行sql的前提
登录数据库的服务器(连接数据库服务器)
【数据库的ip地址、端口、数据库用户名、密码】

三、在没有jdbc之前,需要开发人员不断维护驱动程序
这里写图片描述

四、jdbc接口核心的api
java.sql.* 和Javax.sql

            |- Driver接口: 表示java驱动程序接口。所有的具体的数据库厂商要来实现此接口。                |- connect(url, properties):  连接数据库的方法。                        url: 连接数据库的URL                             URL语法: jdbc协议:数据库子协议://主机:端口/数据库                            user: 数据库的用户名                            password: 数据库用户密码            |- DriverManager类: 驱动管理器类,用于管理所有注册的驱动程序                |-registerDriver(driver)  : 注册驱动类对象                |-Connection getConnection(url,user,password);  获取连接对象            |- Connection接口: 表示java程序和数据库的连接对象。                    |- Statement createStatement() : 创建Statement对象                    |- PreparedStatement prepareStatement(String sql)  创建PreparedStatement对象                    |- CallableStatement prepareCall(String sql) 创建CallableStatement对象            |- Statement接口: 用于执行静态的sql语句                    |- int executeUpdate(String sql)  : 执行静态的更新sql语句(DDL,DML)                    |- ResultSet executeQuery(String sql)  :执行的静态的查询sql语句(DQL)                |-PreparedStatement接口:用于执行预编译sql语句                        |- int executeUpdate() : 执行预编译的更新sql语句(DDL,DML)                        |-ResultSet executeQuery()  : 执行预编译的查询sql语句(DQL)                    |-CallableStatement接口:用于执行存储过程的sql语句(call xxx)                            |-ResultSet executeQuery()  : 调用存储过程的方法            |- ResultSet接口:用于封装查询出来的数据                    |- boolean next() : 将光标移动到下一行                    |-getXX() : 获取列的值

这里写图片描述

PreparedStatement与Statement区别
①语法不同:PreparedStatement可以使用预编译的sql,而Statement只能使用静态的sql
②效率不同:PreparedStatement可以使用sql缓冲区,效率比Statement高
③安全性不同:PreparedStatement可以有效防止sql注入,而Statement不能防止sql注入

推荐使用PreparedStatement