Driver 接口 java.sql.driver
Driver 类 com.mysql.jdbc.Driver
DriverManger类 registerDriver(Driver driver) 方法(注册驱动)
1. 加载注册驱动
class.forName("com.mysql.jdbc.Driver");
(1)在classpath加载com.mysql,jdbc.Driver,并初始化(执行静态代码块)
(2)由于这份字节码中的静态代码块有注册驱动的代码,因此当类被JVM加载时注册驱动的代码就执行了
2.获取连接对象(DriverManger)
Connection getConnection(String url, String user, String passwd)
参数:
url: jdbc:数据库://主机:端口/数据库名称 ->jdbc:mysql://localhost:3306/jdbcdemo?useSSL=false
user: 用户
passwd:密码
验证已经获取连接:可以在MySql控制台,使用命令:show processlist:查看MySql运行进程。
从java6(JDBC4.0)开始,可以不再加载注册驱动,可直接通过DriverManger获取连接对象
为啥不需要注册驱动呢?
从java6开始,规范要求每一个JDBC驱动的包都必须带有META-INF/services/java.sql.Driver文件
程序会自动去META-INF/services/java.sql.Driver下读取驱动的全限定名,此时程序员不需再去写class.Forname代码
开发建议:依然还是建议手动的加载注册驱动。因为在web中是必须的。
3. 创建语句对象(connection 接口)
表示与数据库的连接对象
Statement createStatement():创建一个执行静态SQL的语句对象
4.执行SQL(Statement接口)
执行静态SQL的语句
int executeUpdate(String sql);执行DDL或者DML语句,返回受影响的行数
注意: DDL操作返回0
DML操作返回受影响行数
5.释放资源
close
示例:
public class DDLTest()
{
public void testDDL() throws Exception{
String sql = "CREATE TABLE 't_student'('id' BIGINT PRIMARY KEY AUTO_INCREMENT, 'name' VARCHAR(255), 'age' INT)";
1.加载注册驱动
class.forname("com.mysql.jdbc.Driver");
2. 获取连接对象
Connection conn = DriverMangent.getConnection("jdbc:mysql://localhost:3306/jdbcdemo?useSSL=false", "root", "admin");
3.创建语句对象
Statement st = conn.createStatement();
4.执行SQL
st.executeUpdate(sql);
5.释放资源
st.close();
conn.close();
}
}