JDBC
目前大多数的程序(项目)都是依赖于数据库,很少见到脱离数据库而单独存在的项目,所以几乎所有的编程语言都为数据库的开发提供技术支持,java在起初就为数据库的开发提供了技术的支持–JDBC
什么是JDBC?
JDBC:java database connection (java数据库连接),它是由java编写一组的类和接口组成的,JDBC不是一门技术而是一种服务,具有且要遵守一定的流程,java就享受JDBC提供的服务。
JDBC如何实现与java程序的连接?
java为JDBC的开发提供了一个模块(java.sql)
JDBC关键的类和接口
- DriverMannager–类:驱动管理类,负责装载、创建与数据库连接的对象Connection
- Connection–接口:数据库连接对象
- Statement–接口:数据库操作对象,里边有许多对数据库数据操作的方法(查询、更新、插入)
- ResultSet–接口:结果集对象,经过查询后得到的结过就存放在这个结果集中,对于插入和更新操作的结果不需要用到该对象
测试java程序与数据库的连接
- 下载mysql数据库的驱动包
- 将驱动包放到项目的类路径下(选中该驱动包右键选择:Build Path --> Add to Build Path)
- 编写测试连接代码
public class TestConnection {
public static void main(String[] args) {
try {
// ①加载驱动程序:mysql 5.1.16和jdk1.6结合之后不需要手动加载
Class.forName("com.mysql.jdbc.Driver");
// ②获取数据库连接对象
/**
* url:连接的数据库ip 端口号 和数据库实例名
* user:数据库用户名
* password:数据库密码
*/
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest", "root", "root");
//能打印出连接地址说明连接成功
System.out.println(conn);//com.mysql.jdbc.Connection@27d6c5e0
} catch (Exception e) {
e.printStackTrace();
}
}
}
JDBC之查询
需求一:根据员工编号查询员工姓名
public static String queryEnameByEmpno() {
String name=null;
Connection conn=null;
Statement stat=null;
ResultSet rs=null;
try {
// ①加载驱动
Class.forName("com.mysql.jdbc.Driver");
// ②获取Connection数据库连接
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest", "root", "root");
// ③编写sql语句
String querysql="select ename name from emp where empno=7369";
// String querysql="select ename from emp where empno=7369";
// ④获取Statement操作对象
stat=conn.createStatement();
// ⑤执行查询并将结果返回给结果集对象 executeQuery--执行查询并返回结果集对象
rs=stat.executeQuery(querysql);
// ⑥从结果集对象中获取数据
if(rs.next()) {
//如果结果集中有数据那么从中获取,结果集中只有一行数据用if即可,如果多行使用while(后续会讲)
// rs.getString(columnIndex)//结果集中返回什么类型的数据就用什么类型的方法区获取
// name=rs.getString(1);//columnIndex--1:列索引,索引从1开始 一般通过列索引从结果集中获取数据
// name=rs.getString("ename");
name=rs.getString("name");//通过列名获取结果 注意:如果有列别名就要使用列别名
}
} catch (Exception e) {
e.