一起做网店网站官方,不允许网站建设协议,wordpress more标签使用教程,为什么wordpress不能更新文章#x1f4da;博客主页#xff1a;爱敲代码的小杨.
✨专栏#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》
❤️感谢大家点赞#x1f44d;#x1f3fb;收藏⭐评论✍#x1f3fb;#xff0c;您的三连就是我持续更…
博客主页爱敲代码的小杨.
✨专栏《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》
❤️感谢大家点赞收藏⭐评论✍您的三连就是我持续更新的动力❤️
小杨水平有限欢迎各位大佬指点相互学习进步 文章目录 1. JDBC 的概念1.1 JDBC 的概念1.2 JDBC 的本质1.3 JDBC 的好处 2. JDBC 的使用2.1 编写代码的步骤 3. JDBC 常用类和接口3.1 JDBC API3.2 Connection3.3 Statement 1. JDBC 的概念
1.1 JDBC 的概念
JDBC : 就是使用 Java 语言操作关系型数据库的一套 API JDBC 全称( Java DataBase Connectivity ) Java 数据库连接 我们开发的同一套Java代码是无法操作不同的关系型数据库因为每一个关系型数据库的底层实现细节都不一样。如果这样问题就很大了在公司中可以在开发阶段使用的是MySQL数据库而上线时公司最终选用oracle数据库我们就需要对代码进行大批量修改这显然并不是我们想看到的。我们要做到的是同一套Java代码操作不同的关系型数据库而此时sun公司就指定了一套标准接口JDBCJDBC中定义了所有操作关系型数据库的规则。众所周知接口是无法直接使用的我们需要使用接口的实现类而这套实现类称之为驱动就由各自的数据库厂商给出。
1.2 JDBC 的本质
官方sun公司定义的一套操作所有关系型数据库的规则即接口各个数据库厂商去实现这套接口提供数据库驱动 jar包我们可以使用这套接口JDBC编程真正执行的代码是驱动 jar 包中的实现类
1.3 JDBC 的好处
各数据库厂商使用相同的接口Java代码不需要针对不同数据库分别开发可随时替换底层数据库访问数据库的Java代码基本不变
以后编写操作数据库的代码只需要面向JDBC接口操作哪儿个关系型数据库就需要导入该数据库的驱动包如需要操作MySQL数据库就需要再项目中导入MySQL数据库的驱动包。(关注文末的公众号回复:MySQL即可获取驱动包)
2. JDBC 的使用
Java 操作数据库的流程
2.1 编写代码的步骤
创建工程, 导入驱动 jar 包 添加库
创建数据源(DataSource)
// 1. 创建数据源(DataSource)
DataSource dataSource new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/你的数据名?characterEncodingutf8useSSLfalse);
((MysqlDataSource) dataSource).setUser(你的用户名);
((MysqlDataSource) dataSource).setPassword(你的密码);连接数据库服务器
// 2. 连接数据库服务器
Connection connection dataSource.getConnection();构造操作数据库的 SQL 语句
System.out.println(请输入id);
int id input.nextInt();
System.out.println(请输入姓名);
String name input.next();;
String sql insert into 你的表名 values (?,?); // sql语句
PreparedStatement preparedStatement connection.prepareStatement(sql); // 构造 语句对象
preparedStatement.setInt(1, id);
preparedStatement.setString(2, name);执行 SQL 语句
int n preparedStatement.executeUpdate();
System.out.println(n n);释放资源
preparedStatement.close();
connection.close();案例
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 JDBCDemo {public static void main(String[] args) throws SQLException {Scanner input new Scanner(System.in);// 1. 创建数据源(DataSource)DataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/java111?characterEncodingutf8useSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(1234);// 2. 连接数据库服务器Connection connection dataSource.getConnection();// 3. 构造操作数据库的 SQL 语句System.out.println(请输入id);int id input.nextInt();System.out.println(请输入姓名);String name input.next();;String sql insert into test values (?,?);PreparedStatement preparedStatement connection.prepareStatement(sql); // 构造 语句对象preparedStatement.setInt(1, id);preparedStatement.setString(2, name);// 4. 执行 SQL语句int n preparedStatement.executeUpdate();System.out.println(n n);// 5. 释放资源preparedStatement.close();connection.close();}
}
运行结果:
3. JDBC 常用类和接口
3.1 JDBC API
在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理通常与特定数据库的驱动类是完全解耦的。所以掌握 Java JDBC API 位于 java.sql 包下 即可掌握 Java 数据库编程。
3.2 Connection
Connection接口实现类由数据库提供获取 Connection对象通常有两种方式
一种是通过 DriverManager驱动管理类的静态方法获取
// 加载 JDBC 驱动程序
Class.forName(com.mysql.jdbc.Driver);// 创建数据库连接
Connection connection DriverManager.getConnection(url);一种是通过 DataSource数据源对象获取。实际应用中会使用 DataSource对象。
DataSource dataSource new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/java111?characterEncodingutf8useSSLfalse);
((MysqlDataSource) dataSource).setUser(root);
((MysqlDataSource) dataSource).setPassword(1234);区别:
DriverManager类来获取的 Connection 连接是无法重复利用的每次使用完以后释放资源时通过 connection.close()都是关闭物理连接。DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接这些连接是可以复用的每次使用完数据库连接释放资源调用 connection.close()都是将 Conncetion连接对象回收。
3.3 Statement
Statement对象主要是将SQL语句发送到数据库中。JDBC API中主要提供了三种Statement对象。 实际开发中最常用的是 PreparedStatement对象 总结: 主要掌握两种执行 SQL 的方法
executeQuery() 方法执行后返回单个结果集的通常用于 select语句executeUpdate()方法返回值是一个整数指示受影响的行数通常用于update、insert、delete语句