查网站开发语言,杭州建设信息港,跨境电商网站 建设要求,网站框架模板本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
#x1f92d;#x1f92d;#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念
前言 我们学习数据库的两个重点且 热门的考题——索引和事务
熟悉了索引的 查询优势 和 底层数据结构并了解了事务的 概念 和 四大基本特性
而本篇文章是另一个小小的开端试问小伙伴们有没有用 Java代码 来操作 MySQL数据库 的
而在本篇文章中小编将带着小伙伴掌握用Java代码对数据库进行基础的CRUD 操作
目录 JDBC的初识 准备工作 增加数据 修改数据 删除数据 查询数据
一. JDBC 的初识
1. API 的简介
在谈及 JDBC 前小伙伴们是否听说过 API 这个 概念
API 的全称 application program interface ;
API 简单来说就是 像我们平常在 Java 或者 数据库 中接触的一些 库方法 函数 等等… 这些一系列的 规则和协议 。
鱼式疯言
比如我们Java就有
Random
Scnner
Map
Set
list …
这些我们都可以称为 Java标准库 的 API 。
JDBC 的简介 像我们 Java 有 Java 的自己的 API 数据库下也有不同的 API MySQL 有自己的 独立的API Oracle 有自己 独立的API 等… 居然不一样那么我们该怎么通过 Java的API 来 操控数据库 呢 其实在 Java 就用了一组 API 来兼容对于 所有数据库的操作 使这组 API 成为了 Java 操作数据库 的一组 标准的体系。 而要利用这组 API 来操作我们需要引入一个 第三方的API , 而这第三方的库就是小伙伴们今天要学习的 JDBC 。 了解完 JDBC 小伙伴们一定很疑惑 JDBC 怎么安装怎么操作
下面让来指引着小伙伴来操作吧
二. 准备工作
1. 安装JDBC
1. 找到JDBC安装的链接
安装JDBC的链接 2. 使用经典版找到对应版本下载 如果你MySQL是 5.7 的就找 5开头的 任意版即可 如果你MySQL是 8.3 的就找 8开头的任意版即可 以此类推MySQL是几点多 的就找到对应 几点对 的版本安装即可以免出现 版本问题 。 小编这里是5.7的MySQL 就随机点了一个5点多的JDBC的第三方库给小伙伴演示安装流程 2. 在IDEA中配置环境 这样就算导入我们的 第三方库 可以在 IDEA 上正常使用咯 小伙伴学废了吗 3. 连接 数据库MySQL
// 创建数据源对象DataSource dataSource new MysqlDataSource();// 登入本地IP((MysqlDataSource)dataSource).setURL(jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse);// 登入用户((MysqlDataSource)dataSource).setUser(root);// 登入密码((MysqlDataSource)dataSource).setPassword(q20031229);// 进行服务器网络连接Connection connection dataSource.getConnection();1. 创建数据源对象并登入 本地IP
// 创建数据源对象DataSource dataSource new MysqlDataSource();// 登入本地IP((MysqlDataSource)dataSource).setURL(jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse);这是固定的 连接方式小伙伴按照这样写即可
鱼式疯言 // 创建数据源对象DataSource dataSource new MysqlDataSource();Database 是一个 接口 MySQLDatabase 是一个 类 这里 创建数据源 时我们用到了 向上转型 。 ((MysqlDataSource)dataSource).setURL(jdbc:mysql://127.0.0.1:3306/java112?
characterEncodingutf8useSSLfalse); 这里 小括号 的就是 向下转型 在 Database 这个 接口 中是不存在这个 setURL 这个方法的。我们就需要 向下转型 , 用到 MySQLDataBase 这个 方法 。 jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse注意这里的Java112 指的是小伙伴自己 创建的数据库 而小编的数据库就是 Java112 所以小伙伴们要根据 自己的数据库 来 指定 哦。 2. 用户 // 登入用户((MysqlDataSource)dataSource).setUser(root);root用户 为 最高管理员权限 我们使用这个 用户权限 即可 。
3. 密码 // 登入密码((MysqlDataSource)dataSource).setPassword(q20031229);这个密码是自己当初 设置登入MySQL 的 密码 。
鱼式疯言 注意这里的连接的内容都是需要带上 双引号 哦 4 . 网络连接 // 进行服务器网络连接Connection connection dataSource.getConnection();这个也是固定小伙伴 照着写 就可以 三. 增加数据
1. Java代码
package JDBCTest;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class TestInsert {public static void main(String[] args) throws SQLException {// 创建数据源对象DataSource dataSource new MysqlDataSource();/*** 以下这三种方法是子类特有, 接口并没有* 需要向下转型*/// 找到服务器在哪((MysqlDataSource)dataSource).setURL(jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse);// 确定用户权限((MysqlDataSource)dataSource).setUser(root);// 确定密码((MysqlDataSource)dataSource).setPassword(q20031229);/*** 准备工作做完之后开始对服务器进行网络连接**/Connection connection dataSource.getConnection();// 输入增加数据Scanner scanner new Scanner(System.in);String name scanner.nextLine();int id scanner.nextInt();// 创建 SQL语句String sql insert into test values ( id , name );// 进行预编译PreparedStatement statement connection.prepareStatement(sql);// 执行SQL语句到服务器上int num statement.executeUpdate();System.out.println(num);// 释放资源statement.close();connection.close();}
}实现步骤
1. 创建SQL语句并指定输入
// 输入增加数据
Scanner scanner new Scanner(System.in);String name scanner.nextLine();int id scanner.nextInt();// 创建 SQL语句String sql insert into test values ( id , name );2. 预编译 // 进行预编译PreparedStatement statement connection.prepareStatement(sql);3. 执行SQL到服务器上
sql// 执行SQL语句到服务器上int num statement.executeUpdate();System.out.println(num);鱼式疯言 关于我们 修改删除插入 操作都是用 executeUpdate 这个方法来执行我们的 SQL 语句,并且他会 返回插入 多少行的一个整数 。 4. 释放资源
// 释放资源statement.close();connection.close();鱼式疯言
注意细节
import javax.sql.DataSource;
DataSourceimport java.sql.Connection;
Connectionimport java.sql.PreparedStatement;
PreparedStatementimport java.sql.SQLException;
SQLException因为有 同名的类在 不同包 的情况 小伙伴们一定要注意这些类 所对应的包 否则就会 出错。 四. 修改数据
1. Java代码
package JDBCTest;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class TestUpdate {public static void main(String[] args) throws SQLException {// 创建数据源对象MysqlDataSource MysqldataSource new MysqlDataSource();// 进行准备工作// 确认服务器地址MysqldataSource.setURL(jdbc:mysql://127.0.0.1:3306/java112?
characterEncodingutf8useSSLfalse);// 确认用户MysqldataSource.setUser(root);// 确认密码MysqldataSource.setPassword(q20031229);// 和服务器进行网络连接Connection connection MysqldataSource.getConnection();// 创建 SQL 语句String sql new String(update test set id10 where name 张三 );// 进行预编译PreparedStatement preparedStatement connection.prepareStatement(sql);// 执行到服务器上int num preparedStatement.executeUpdate();System.out.println(num);// 关闭资源preparedStatement.close();connection.close();}
}鱼式疯言 这里和上面大体都是一样一样的只是我们在 创建SQL语句 这一行 代码不一致 而已 我只需改成我们 本身SQL语句 的 修改 然后直接放入 预编译的方法 中即可 (无须像上面一样进行 输入 )。 五. 删除数据
1. Java 代码
package JDBCTest;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class TestDelete {public static void main(String[] args) throws SQLException {// 创建数据源对象MysqlDataSource mysqlDataSource new MysqlDataSource();// 进行准备工作// 确实服务器地址mysqlDataSource.setURL(jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse);mysqlDataSource.setUser(root);mysqlDataSource.setPassword(q20031229);// 进行网络连接Connection connection mysqlDataSource.getConnection();// 创建SQL语句String sql delete from test where id 19 ;// 进行预编译PreparedStatement preparedStatement connection.prepareStatement(sql);// 执行到服务器preparedStatement.executeUpdate();// 释放资源preparedStatement.close();connection.close();}
}和上面代码 雷同 只是在 创建SQL 时的SQL语句不同小编在这里就 不赘述 了。 六. 查询数据
1. Java代码
package JDBCTest;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class TestSelect {public static void main(String[] args) throws SQLException {// 创建数据源对象DataSource dataSource new MysqlDataSource();// 登入本地IP((MysqlDataSource)dataSource).setURL(jdbc:mysql://127.0.0.1:3306/java112?characterEncodingutf8useSSLfalse);// 登入用户((MysqlDataSource)dataSource).setUser(root);// 登入密码((MysqlDataSource)dataSource).setPassword(q20031229);// 进行服务器网络连接Connection connection dataSource.getConnection();// 创建 SQL 语句String sql select * from test;// 预编译PreparedStatement preparedStatement connection.prepareStatement(sql);/**** 执行SQL到服务器上* 执行后返回一个结果集* 我们只需要遍历这个结果集* 就能输出对应表数据**/ResultSet resultSet preparedStatement.executeQuery();// 遍历结果集输出while (resultSet.next()) {System.out.println(resultSet.getInt(1) resultSet.getString(2));}// 释放资源resultSet.close();preparedStatement.close();connection.close();}
}2. 实现细节
雷同的小编在这里就不过 多赘述 了说说主要的 变化的哪些代码吧
1. 得到结果集
/**** 执行SQL到服务器上* 执行后返回一个结果集* 我们只需要遍历这个结果集* 就能输出对应表数据**/ResultSet resultSet preparedStatement.executeQuery();当我们需要 查询操作 时 就需要用到 executeQuery 这个 方法 而这个 方法 还有一个特殊的要点 就是会返回一个 结果集 。 这里的结果集就相当于这里的 Set 把 所有的行 对应的 列数据 都放在这里的 Set 中 2. 输出结果集 // 遍历结果集输出while (resultSet.next()) {System.out.println(resultSet.getInt(1) resultSet.getString(2));}我们得到一个 结果集 之后就可以对其中的 每一行 进行循环遍历进行 输出打印 。 这里的 resultSet.next() 就是用来判断 是否存在下一个元素 如果存在就返回true不存在就返回 false 总结
在 本篇文章 中 . JDBC的初识 认识了API 以及JDBC的第三方库的概念 . 准备工作 熟悉了如何安装JDBC的第三方库和版本问题并且配置好相对应的环境如 创建数据源本地IP连接用户权限密码网络连接。 . 增加数据 通过Java代码来增加并详细每一步的操作解释了每一步所对应的作用和原理如创建SQL语句 预编译SQL 执行SQL释放资源。 . 修改数据 通过Java代码来增加并详细每一步的操作解释了每一步所对应的作用和原理如创建SQL语句 预编译SQL 执行SQL释放资源。 . 删除数据 通过Java代码来增加并详细每一步的操作解释了每一步所对应的作用和原理如创建SQL语句 预编译SQL 执行SQL释放资源。 . 查询数据 通过Java代码来查询并引入结果集的概念来接收数据库的数据并遍历打印如创建SQL语句预编译SQL 执行SQL并放入结果集 遍历结果集释放资源。 如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正 希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力