JDBC:由一组使用JAVA语言编写的类和接口组成,可以为多种关系数据库提供统一访问;充当了各种不同数据库对话之间的媒介,可以吧数据持久化保存。
持久化:持久化是将程序中的瞬时数据在瞬时状态和持久状态的转换机制。
JDBC工作原理:
JDBC API:
DriverManager类 :装载驱动,并担任数据库连接服务;
Connection接口 :负责连接数据库并担任传送数据的任务
Statement接口 :由 Connection 产生、负责执行SQL语句
PreparedStatement接口 :Statement 的子接口,也是由Connection 产生,同样负责执行SQL语句,与Statement 相比更具由高安全性、高性能、高可读性和高可维护性。
ResultSet接口:负责保存Statement执行后所产生的查询结果
JDBC访问数据库步骤:
5.添加信息
1.加载JDBC驱动
Class.forName("JDBC驱动类名称");
2.与数据库建立连接
Connection conn = DriverManager.getConnection(数据连接字符串,数据库名,密码);
6.插入已添加信息
3.发送SQL语句,并得到返回结果
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT `id` ,`name` FROM `master`");
4.处理返回结果
where (rs.next()){
int id = rs.getInt("id")
}
7.更新信息("UPDATE `表名` SET `输入要更新的信息`")
8.查询信息(
stmt = conn.cerateStatement();
rs = stmt.excuteQuery("SELECT 查询的字段 FROM 表名");
System.out.println(“输入提示”);
)
Statement接口常用方法
Resultset接口常用方法
注:在不需要Statement和Resultset和Connection时显式关闭
语法:public void close() throws SQLException
要先按Resultset结果集,后Statement,最后Connection的顺序关闭资源
如不关闭Resultset,当Statement关闭,重新执行时,该Resultset自动关闭
PreparedStatement接口:
Statement 的子接口,也是由Connection 产生,同样负责执行SQL语句,与Statement 相比更具由高安全性、高性能、高可读性和高可维护性。
1.创建:
PreparedStatement pstmt = con.preparedStatement("UPDATE `dog` SET `health` = ?,`love` = ? WHERE `id` = ?");
2.设置参数的值
pstmt.setInt(1,18);
3.执行SQL语句
pstmt.excuteUpdate();
PreparedStatement的好处:
提高代码的可读性和可维护性,提高SQL语句执行能力,提高了代码安全性
JDBC常见错误:
1.JDBC驱动类名称错误,出现异常
2.数据库连接错误
3.数据库操作结束之后,没有关闭数据库
4.关闭数据库语句没有放到finally语句块中
5.字符编码错误(?useUnicode=true&characterEncoding=utf-8)