JDBC
之前操作数据
①通过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