1、JDBC概述
Java DataBase Connectivity,JDBC是Java访问数据库(关系型数据库)的一种技术,JDBC提供了一套标准的API,我们使用这套API就可以实现对各种数据库的访问操作,并且访问的方式是统一的,也就是实现了与具体数据库无关的Java操作数据库的技术
2、基本操作步骤
① 注册驱动 (只做一次)
② 建立连接(Connection)
③ 创建语句对象(Statement)
④ 执行语句
⑤ 处理执行结果集(ResultSet)
⑥ 释放资源
2.1、注册驱动
需要在项目中添加对应的架包(jar包),至于什么架包这就和你所用的数据库和数据库版本有关(可在对应官网下载),这边以mysql5数据库为列子,需要添加架包:mysql-connector-java-5.1.45.jar(在官网下载:https://downloads.mysql.com/archives/c-j/)注意自己数据库版本。
下载后在项目目录建立一个lib文件夹放入jar包,右击lib文件夹。随后点击Add as Library…确定即可
随后找到驱动类位置,来注册驱动;
Class.forName("com.mysql.jdbc.Driver");
2.2、建立连接
//第一个参数:数据库连接字符串,不同数据库的连接字符串有区别
//MySQL为例:jdbc:mysql://IP地址:端口号/数据库的名字
//第二个参数:访问数据库时候的用户名
//第三个参数:访问数据库时候的密码
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/db2",
"root",
"root");
2.3、创建语句对象
Statement stmt = con.createStatement();
或者(两者区别很大)
PreparedStatement ps= con.preparedStatement();
2.4、执行语句
假如已经在mysql建立好emp表
//4.执行语句
//4-1:执行DML语句
// int rows = stmt.executeUpdate("delete from emp where deptno=55");
// System.out.println("受影响的行数:" + rows);
// if (rows > 0) {
// System.out.println("删除成功");
// } else {
// System.out.println("删除失败");
// }
//4-2:执行DQL语句
ResultSet rs = stmt.executeQuery("select empno,ename name,hiredate from emp");
//对结果集进行遍历操作
//两个作用:(1)移动指向数据的指针(2)判断有无更多数据
while (rs.next()) {
//通过ResultSet提供各种数据类型对应的getxxx方法来获取数据
//(1)getxxx(int columnIndex):使用列索引作为参数,从1开始
//注意:索引范围要在合理范围中:[1,最大列数]
//System.out.println("员工编号:" + rs.getInt(1) + ",员工姓名:" + rs.getString(2));
//(2)getxxx(String columnLabel):使用显示列名作为参数
//注意:
// A.此处的列名如果在当前数据库中不区分大小写,则无论如何书写都可以
// B.如果列添加了别名,则此处的列名即列的别名
// C.根据列名获取的方式会比根据索引获取的方式更加灵活,因为列的顺序和索引没有那种固定的一一对应的关系
System.out.println("员工编号:" + rs.getInt("empno") + ",员工姓名:" + rs.getString("Name") + ",入职时间:" + rs.getDate("hireDate"));
}
2.5 关闭资源
//5.关闭资源
if (null != rs) {
rs.close();
}
if (null != stmt) {
stmt.close();
}
if (null != con) {
con.close();
}
常见数据库的连接URL参考: