一JDBC
1、概念:JDBC是 Java 访问数据库的标准规范.是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范.
2、原理:JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需 要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。
3、JDBC的开发步骤:步骤1:搭建开发环境,引入数据库的驱动。
步骤2:在程序中加载数据库驱动。
步骤3:获得数据库连接。
步骤4:编写SQL.执行SQL。
步骤5:释放资源。
4、代码实现:
package www.lagou.app;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) throws Exception {
//1.注册驱动 (可以省略)
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接 connection连接对象
String url = "jdbc:mysql://localhost:3306/test01?characterEncoding=UTF-8";
Connection con = DriverManager.getConnection(url, "root", "root");
//3.获取语句执行平台 Statement
Statement statement = con.createStatement();
//4.执行SQL
String sql = "create table test(id int,name varchar(20),age int);";
int i = statement.executeUpdate(sql);
System.out.println(i);
//5.关闭流
statement.close();
con.close();
}
}
5、JDBC工具类
package www.lagou.utils;
import java.sql.*;
public class JDBCUtils {
//1. 将连接信息定义为 字符串常量
public static final String DRIVERNAME = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://localhost:3306/db4?characterEncoding=UTF-8";
public static final String USER = "root";
public static final String PASSWORD = "123456";
//2.静态代码块
static{
try {
//1.注册驱动
Class.forName(DRIVERNAME);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//3.获取连接的 静态方法
public static Connection getConnection(){
try {
//获取连接对象 并返回
Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
return connection;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
//4.关闭资源的方法
public static void close(Connection con, Statement statement){
if(con != null && statement != null){
try {
statement.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection con, Statement statement, ResultSet resultSet){
if(con != null && statement != null){
try {
resultSet.close();
statement.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
6、预处理对象
①、概念:PreparedStatement 是 Statement 接口的子接口,继承于父接口中所有的方法。它是一个预编译的 SQL 语句对象。
预编译: 是指SQL 语句被预编译,并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
②、特点:因为有预先编译的功能,提高 SQL 的执行效率。 可以有效的防止 SQL 注入的问题,安全性更高。
③、常用方法:
④、使用步骤:
步骤一:编写 SQL 语句,未知内容使用?占位
步骤二:获得 PreparedStatement 对象
步骤三:设置实际参数:setXxx( 占位符的位置, 真实的值)
步骤四:执行参数化 SQL 语句
步骤五:关闭资源
⑤、常用设置参数方法:
⑥、Statement 与 PreparedStatement的区别?
区别一: Statement用于执行静态SQL语句,在执行时,必须指定一个事先准备好的SQL语句。
区别二:PrepareStatement是预编译的SQL语句对象,语句中可以包含动态参数“?”,在执行时可以为“?”动态设置参数 值。
区别三:PrepareStatement可以减少编译次数提高数据库性能。
7、JDBC控制事务
①、事务相关API