目录
一.数据库连接
1.1之前如何操作数据库
1.2.实际开发中如何操作数据库?
二.JDBC(Java Database Connectinity)(重要)
2.1.JDBC的概念
2.2 JDBC核心思想
2.2.1 MySQL数据库驱动
2.2.2 JDBC API
2.3JDBC 环境搭建
2.4准备一张表
2.4.1 创建student表
2.4.2.向表中插入数据
三. JDBC的开发步骤(非常重要)
3.1. 注册驱动
3.2 获取连接对象
3.3 获取发送SQL语句的对象
3.4 编写SQL语句
3.5执行SQL语句
3.6 处理结果
3.7 释放资源
👌 棒棒有言:生活不可能一帆风顺,总会有波折,总会有险阻。生活是个爱开玩笑的孩子,也许今天给你所有,明天又会让你一无所有,无需烦恼,该来的总会来,再黑的夜晚也会有黎明到来的那一刻。不管生活有多么曲折,只要拥有幸福的态度就能挺过漫漫长夜,就能迎来美好的明天。
👌 本章简介:JDBC(Java Data Base Connectivity,java数据库连接),是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。
👍 作者:get棒棒给个关注呗
👍 重要:请给个关注哦!
一.数据库连接
1.1之前如何操作数据库
(1)使用DOS命令窗口,输入“mysql -hlocalhost -u数据库用户名 -p数据库密码”命令连接数据
库,编写SQL语句(SQL语句以分号;或者\g结尾),回车运行,查看操作结果(受影响行数或结
果集)
(2)使用MySQL数据库自带的命令窗口,输入数据库密码连接数据库,编写SQL语句(SQL语句
以分号;或者\g结尾),回车运行,查看操作结果(受影响行数或结果集)
(3)使用数据库连接软件(SQLyog)连接数据库,通过图形化界面或者在查询编辑器中编写
SQL语句,运行SQL语句查看操作结果(受影响行数或结果集)
1.2.实际开发中如何操作数据库?
在实际开发中,当用户的数据发生变化时,不会也不可能通过客户端连接数据库去操作SQL语句,
因为在实际开发中,数据的操作量很大,如果使用客户端操作数据库,无法保证SQL语句的正确性
和执行效率。
二.JDBC(Java Database Connectinity)(重要)
2.1.JDBC的概念
(1)JDBC(Java DataBase Connectivity)Java连接数据库的规范(标准),可以使用Java语
言连接数据库,从而对数据进行增删改查(CURD)操作。
2.2 JDBC核心思想
Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提
供驱动实现类(Driver数据库驱动)。
2.2.1 MySQL数据库驱动
mysql-connector-java-5.1.x 适用于5.x版本
mysql-connector-java-8.1.x 适用于8.x版本
http://本文链接:https://blog.csdn.net/keyboard_/article/details/114337739
2.2.2 JDBC API
JDBC是由多个接口和类进行功能实现的。
类型 | 权限定名 | 功能 |
---|---|---|
class | java.sql.DriverManager | 管理多个数据库驱动类,提供了获取数据库连接的方法 |
interface | java.sql.Connection | 代表一个数据库连接(当connection不为null时,表示已连接数据库) |
interface | java.sql.Statement | 发送SQL语句到数据库工具 |
interface | java.sql.PreparedStatement | 发送SQL语句到数据库工具 |
interface | java.sql.ResultSet | 保存SQL查询语句的结果数据(结果集) |
class | java.sql.SQLException | 处理数据库应用程序时所发生的异常 |
2.3JDBC 环境搭建
(1)在项目下创建lib文件夹,用于存放jar文件。
(2)将mysql驱动mysql-connector-java-5.1.x复制到项目的lib文件夹中。
(3)将选中lib文件中的jar文件配置到项目中。
2.4准备一张表
创建数据库jdbcdatabase,专门用来存储学习jdbc要用的表
2.4.1 创建student表
CREATE TABLE IF NOT EXISTS `student`(
`tid` INT(10) AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(20) NOT NULL COMMENT '姓名',
`age` INT(2) NOT NULL COMMENT '年龄',
`gender` VARCHAR(5) NOT NULL COMMENT '性别',
`phone` VARCHAR(11) UNIQUE NOT NULL COMMENT '手机号码',
`identitycard` VARCHAR(18) UNIQUE NOT NULL COMMENT '身份证号码',
`address` VARCHAR(20) NOT NULL COMMENT '住址',
PRIMARY KEY (`tid`)
);
2.4.2.向表中插入数据
INSERT INTO `student`(`tid`,`name`,`age`,`gender`,`phone`,`identitycard`,`address`) VALUES (1001,'张三',20,'男','13112345678','340825200212241936','安徽合肥蜀山区');
INSERT INTO `student`(`tid`,`name`,`age`,`gender`,`phone`,`identitycard`,`address`) VALUES (1002,'李红',18,'女','13111223344','340825200408151936','安徽合肥庐阳区');
三. JDBC的开发步骤(非常重要)
3.1. 注册驱动
使用Class.forName("包含完整路径的驱动类");//手动加载字节码文件到JVM中。
// 1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
3.2 获取连接对象
通过DriverManager.getConnection(url,user,password)获取数据库连接对象
url:mysql数据库的路径
user:mysql数据库用户名
password:mysql数据库密码
// 2 、获取数据库连接对象
String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";
String user = "root";
String password = "123456";
Connection connection = DriverManager.getConnection(url, user, password);
3.3 获取发送SQL语句的对象
通过Connection对象获取Statement对象,用于发送SQL语句,实现对数据库进行访问。
//3、获取发送SQL语句的对象
Statement statement = connection.createStatement();
3.4 编写SQL语句
// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误,这里sid是自增长,所以不需要写
String sql = "INSERT INTO `student`(`name`,`age`,`gender`,`phone`,`identitycard`,`address`)
VALUES ('王五',21,'男','13825869876','340825200109151928','安徽合肥包河区');";
3.5执行SQL语句
// 5、执行SQL语句
//DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)
//DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)
int result = statement.executeUpdate(sql);
3.6 处理结果
处理第5步返回的数据。对返回的受影响行数结果进行逻辑判断
// 6、处理结果,如果返回的受影响行数不为0,说明数据插入成功
if (result != 0) {
System.out.println("数据插入成功");
} else {
System.out.println("数据插入失败");
}
3.7 释放资源
释放(关闭)所使用到的所有资源对象,遵循”先开的后关,后开的先关“原则。
// 7、释放资源,遵循“先开后关,后开先关”的原则
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//查询操作中多一个关闭resultSet
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}