1 什么是 JDBC
JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。
JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。
1.1使用 JDBC 的好处:
1)程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2)使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库。
2 使用JDBC步骤
1)导入驱动
复制jar包到lib文件夹下
右键----add as library
2)注册加载驱动(可省略)
Class.forName(“com.mysql.jdbc.Driver”);
3)获取连接对象
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/db1901”,“root”,“root”);
4)获取语句执行者
Statement statement=conn.createStatement();
5)执行sql语句
statement.execute("");执行所有的sql语句
statement.executeUpdate("");执行增删改的sql语句
statement.executeQuery(""); 执行查询的sql语句
6)获取操作返回的结果,处理结果
ResultSet rs = statement.executeQuery(“select * from student”);
7).释放资源
3 PreparedStatement 接口
PreparedStatement 是 Statement 接口的子接口,继承于父接口中所有的方法。它是一个预编译的 SQL 语句
与statement相比好处:
1) 因为有预先编译的功能,提高 SQL 的执行效率。
prepareStatement()会先将 SQL 语句发送给数据库预编译。PreparedStatement 会引用着预编译后的结果。
可以多次传入不同的参数给 PreparedStatement 对象并执行。减少 SQL 编译次数,提高效率。
2)安全性更高,没有 SQL 注入的隐患。
3)提高了程序的可读性
格式:
String sql = "select * from user where name=? and password=?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2,password);
方法:
int executeUpdate() 执行 DML,增删改的操作,返回影响的行数。
ResultSet executeQuery() 执行 DQL,查询的操作,返回结果集