JDBC入门
客户端操作MySQL数据库的方式:
- 使用第三方客户端来访问 MySQL:SQLyog、Navicat、SQLWave、MyDB Studio、EMS SQL Manager for MySQL。
- 使用 MySQL 自带的命令行方式。
- 通过 Java 来访问 MySQL 数据库。
什么是JDBC
JDBC 规范定义 接口 ,具体的实现由各大数据库厂商来实现。
JDBC 是 Java 访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用 JDBC 接口中的方法即可,数据库驱动由数据库厂商提供。
使用 JDBC 的好处:
1.程序员如果要开发访问数据库的程序,只需要会调用 JDBC 接口中的方法即可,不用关注类是如何实现的。
2.使用同一套 Java 代码,进行少量的修改就可以访问其他 JDBC 支持的数据库
使用 JDBC 开发使用到的包:
会使用到的包 | 说明 |
---|---|
java.sql | 所有与 JDBC 访问数据库相关的接口和类 |
javax.sql | 数据库扩展包,提供数据库额外的功能。如:连接池 |
数据库的驱动 | 由各大数据库厂商提供,需要额外去下载,是对 JDBC 接口实现的类 |
JDBC 的核心 API
接口或类 | 作用 |
---|---|
DriverManager 类 | 管理和注册数据库驱动,得到数据库连接对象 |
Connection 接口 | 一个连接对象,可用于创建 Statement 和 PreparedStatement 对象 |
Statement 接口 | 一个 SQL 语句对象,用于将 SQL 语句发送给数据库服务器 |
PreparedStatemen | 一个 SQL 语句对象,是 Statement 的子接口 |
ResultSet 接口 | 用于封装数据库查询的结果集,返回给客户端 Java 程序 |
步骤
- 导入jar包
复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下,右键–>Add As Library。 - 注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
如果是本地服务器,端口号是 3306
则可以简写为jdbc:mysql:///数据库名
乱码问题
如果数据库出现乱码,可以指定参数: ?characterEncoding=utf8,表示让数据库以 UTF-8 编码来处理数据。
jdbc:mysql://localhost:3306/数据库?characterEncoding=utf8
**注意:**从 JDBC3 开始,目前已经普遍使用的版本。可以不用注册驱动而直接使用。Class.forName
这句话可以省略。
3. 获取数据库连接对象
通过连接字符串,用户名,密码来得到数据库的连接对象
Connection getConnection (String url, String user, String password)
Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/数据库名”, “root”, “密码”);
4. 定义sql语句
5. 获取执行sql的对象Statement
Statement stmt = conn.createStatement();
6. 执行sql
Statement 接口中的方法 | 描述 |
---|---|
int executeUpdate(String sql) | 用于发送 DML 语句,增删改的操作,insert、update、delete。参数:SQL 语句。返回值:返回对数据库影响的行数 |
ResultSet executeQuery(String sql) | 用于发送 DQL 语句,执行查询的操作。select。参数:SQL 语句。返回值:查询的结果集 |
stmt.executeUpdate(sql);
7. ResultSet处理执行结果
ResultSet接口中的方法:
ResultSet接口中的方法 | 描述 |
---|---|
boolean next() | 游标向下移动 1 行。返回 boolean 类型,如果还有下一条记录,返回 true,否则返回 false |
数据类型 getXxx() | 通过字段名,参数是 String 类型。返回不同的类型。通过列号,参数是整数,从 1 开始。返回不同的类型 |