JDBC概述
JDBC(Java DataBase Connection)就是java数据库连接,用java语言来操作数据库
JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法与数据库进行连接
JDBC核心类(接口)介绍(四个)
DriverManager
作用:知道JDBC使用的是哪个驱动;
Connection
如果DriverManager可以获得到Connection,说明已经与数据库进行连接了
DriverManager.getConnection(url, username, password);
Connection最为重要的一个方法是用来获取Statement对象
Statement
Statement是用来向数据库发送sql语句的,使数据库去执行发送过来的sql语句
executeUpdate();执行更新操作(insert, update, delete)
executeQuery();执行查询操作,执行查询后的结果就是ResultSet;
ResultSet
对象查询结果集,执行查询操作后都会有结果集的产生,结果集是一个二维的表格,有行有列 ,通过next()来决定每一行,
通过get类型(getString())来获取每一列的值,该列数是从1开始。
JDBC使用
①导入驱动Jar包:
在工程中新建folder→取名为libs→将mysql-connector-java-5.1.41-bin.jar拷贝到libs里→对该包进行右键→build path→
add to build path
②加载驱动:
不同数据库注册驱动不同,mysql注册驱动:
static {
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
③获取连接(这里的前提就是数据库,表,约束,已经创建好)
通过DriverManager来获得Connection对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/goodsdb", "root", "root");
注:获得本机数据库连接的端口,数据库,用户名,密码
"jdbc:mysql://localhost:3306/goodsdb?useUnicode=true&characterEncoding=utf8"
注:有时候使用字节集unicode ,避出现乱码
④创建sql语句,并获得statement对象
String sql = "select * from goods";
PreparedStatement ps = conn.prepareStatement(sql);
注:这里使用PreparedStatement,而不是使用Statement。
⑤执行语句,并处理结果集
ResultSet rs = ps.executeQuery();//执行查询操作
// 处理结果
while (rs.next()) {
System.out.print(rs.getInt("id") + "\t");
System.out.print(rs.getString("name") + "\t");
System.out.print(rs.getDouble("price") + "\t");
System.out.println();
}
⑥释放资源(使用后的东西,都需要关闭)
rs.close();
ps.close();
conn.close();
注:关闭的顺序是先得到的后关闭,后得到的先关闭。