国家摄影网站,网站的空间是什么意思,wordpress评论模块,网站开发模板专家数据库目录
一、数据库编程的必备条件
二、什么是JDBC#xff1f;
三、JDBC的使用
1. 准备工作
2. 建立数据库连接
2.1 加载驱动程序
2.2 数据库连接池技术
3. 正式操作
四、JDBC的局限性与MyBatis的优势 一、数据库编程的必备条件
编程语言#xff0c;如Java#xff0…目录
一、数据库编程的必备条件
二、什么是JDBC
三、JDBC的使用
1. 准备工作
2. 建立数据库连接
2.1 加载驱动程序
2.2 数据库连接池技术
3. 正式操作
四、JDBC的局限性与MyBatis的优势 一、数据库编程的必备条件
编程语言如JavaC、C、Python等 数据库如OracleMySQLSQL Server等 数据库驱动包不同的数据库对应不同的编程语言提供了不同的数据库驱动包如MySQL提 供了Java的驱动包mysql-connector-java需要基于Java操作MySQL即需要该驱动包。同样的 要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。 二、什么是JDBC JDBC即Java Database Connectivityjava数据库连接是 Java 提供的标准接口用于在 Java 程序中实现与数据库的连接和操作。通过 JDBC你可以使用 Java 代码来执行 SQL 语句、连接数据库、处理事务以及处理查询结果等。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成它为Java 开发人员操作数据库提供了一个标准的API可以为多种关系数据库提供统一访问。 三、JDBC的使用
1. 准备工作
准备数据库驱动包(中央仓库地址)并添加到项目的依赖中 在项目中创建文件夹lib并将依赖包mysql-connector-java-5.1.47.jar版本都可以复制到lib中。再配置该jar 包到本项目的依赖中右键点击项目Open Module Settings在Modules中点击项目配置 Dependencies点击JARS or Directories将该lib文件夹配置进依赖中表示该文件夹下的 jar包都引入作为依赖。 2. 建立数据库连接
这里有两种方式主要使用第二种
2.1 加载驱动程序
在使用 JDBC 之前需要加载特定数据库的驱动程序可以通过 Class.forName() 方法来加载数据库厂商提供的驱动程序类。这一步通常只需要执行一次。
// 加载JDBC驱动程序反射这样调用初始化com.mysql.jdbc.Driver类即将该类加载到JVM方法
//区并执行该类的静态方法块、静态属性。
Class.forName(com.mysql.jdbc.Driver);
// 创建数据库连接
Connection connection
DriverManager.getConnection(jdbc:mysql://localhost:3306/test?
userrootpasswordrootuseUnicodetruecharacterEncodingUTF-8); //MySQL 数据连接的 URL 参数格式如下 jdbc : mysql : // 服务器地址 : 端口 / 数据库名 ? 参数名 参数值 2.2 数据库连接池技术
通过创建 DataSource 对象来连接数据库而不是直接加载驱动程序来获取数据库连接。这种方式是使用数据库连接池技术相较于直接加载驱动程序连接数据库有以下区别 使用 DataSource 连接池 通过创建 DataSource 对象你可以配置数据库连接池的相关参数包括最大连接数、最小连接数、连接超时时间等。连接池能够管理数据库连接的复用和释放提高了数据库连接的效率和性能。 简化连接管理 使用 DataSource 连接池可以简化数据库连接的管理避免了手动管理数据库连接的繁琐操作。连接池会自动管理连接的获取和释放开发者只需从连接池中获取连接即可。 提高性能 连接池可以减少每次请求都重新建立数据库连接的开销重复利用已经建立的连接从而提高系统性能。 避免频繁创建连接 连接池会预先创建一定数量的数据库连接并保持在池中当需要连接时直接从连接池中获取可用连接避免了频繁创建和关闭连接的开销。 //1.创建数据源DataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/db01?characterEncodingutf8useSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(数据库密码); //ser Url 参数格式如下 jdbc : mysql : // 服务器地址 : 端口 / 数据库名 ? 参数名 参数值 这个直接复制粘贴就好了密码就是自己当初设置的数据库密码 3. 正式操作
使用 JDBC 进行数据库操作的一般步骤如下使用数据库连接池技术 创建并配置数据源使用连接池库提供的数据源对象如 BasicDataSource 或 HikariDataSource并设置相关的数据库连接信息包括数据库 URL、用户名、密码等。 建立数据库连接使用 java.sql.Connection 接口提供的方法例如 DriverManager.getConnection()来建立与数据库的连接。 创建 SQL 语句使用 SQL 语句来执行数据库操作例如查询数据、插入数据、更新数据等。可以使用 java.sql.Statement 或 java.sql.PreparedStatement 接口来创建 SQL 语句。区别PreparedStatement会预编译sql语句。 执行 SQL 语句通过调用 Statement 或 PreparedStatement 接口的方法例如 executeQuery()、executeUpdate()来执行 SQL 语句。executeQuery()方法用于查询操作executeUpdate()方法用于增删改操作 处理结果集对于查询操作可以通过 java.sql.ResultSet 接口获取查询结果并进行相应的数据处理。 关闭连接和资源使用完数据库连接、语句对象和结果集需要手动关闭以释放相关资源避免内存泄漏。
示例1 插入操作(删除和修改操作也几乎一致只有中间sql语句的区别)
import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class JDBCDemo1 {public static void main(String[] args) throws SQLException {//1.创建数据源DataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/db01?characterEncodingutf8useSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(060374);//2.和数据库服务器建立连接Connection connection dataSource.getConnection();//3.构造一个操作数据库的sql语句String sql insert into student values(4, 赵六);PreparedStatement preparedStatement connection.prepareStatement(sql);//4.执行sqlint n preparedStatement.executeUpdate();System.out.println(n n);//5.释放资源preparedStatement.close();connection.close();}
}
executeUpdate()方法用于增删改操作返回值表示影响到的行数。
示例二 查询操作
import com.mysql.cj.jdbc.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class JDBCDemo4 {public static void main(String[] args) throws SQLException {//1.创建数据源DataSource dataSource new MysqlDataSource();((MysqlDataSource) dataSource).setUrl(jdbc:mysql://127.0.0.1:3306/db01?characterEncodingutf8useSSLfalse);((MysqlDataSource) dataSource).setUser(root);((MysqlDataSource) dataSource).setPassword(060374);Connection connection dataSource.getConnection();String sql select * from student;PreparedStatement preparedStatement connection.prepareStatement(sql);ResultSet resultSet preparedStatement.executeQuery();while (resultSet.next()) {int id resultSet.getInt(id);String name resultSet.getString(name);System.out.println(id id , name name);}preparedStatement.close();connection.close();}
}
executeQuery()方法用于查询操作返回值表示一个数据集合。 四、JDBC的局限性与MyBatis的优势
虽然开发者可以直接使用 JDBC 来操作数据库不需要依赖额外的框架或工具。但是它同样有很多不足之处 繁琐的代码使用原生的 JDBC 进行数据库操作需要编写大量重复、繁琐的代码如加载驱动、建立连接、创建语句、处理结果集等使得开发效率低下。 SQL 与 Java 代码耦合度高在 JDBC 中SQL 语句通常直接硬编码在 Java 代码中导致 SQL 与 Java 代码耦合度较高一旦 SQL 发生变化需要修改 Java 代码不利于维护和扩展。 手动管理数据库资源需要手动管理数据库连接、事务、异常处理等资源容易出现连接泄露、资源未释放等问题对开发者要求较高。
为了解决 JDBC 存在的问题就出现了许多优化的框架。如MyBatis 这样的持久层框架这也是当下非常流行的持久层框架之一其优势主要体现在以下几个方面 简化 SQL 操作MyBatis 使用 XML 或注解配置 SQL 语句将 SQL 与 Java 代码分离降低了 SQL 与 Java 代码的耦合度提高了代码的可维护性。 提供对象关系映射ORMMyBatis 提供了对象关系映射的功能能够将查询结果映射为 Java 对象简化了数据操作的过程提高了开发效率。 自动化资源管理MyBatis 管理数据库资源、事务等方面更加自动化减轻了开发者的工作负担避免了连接泄露、资源未释放等问题。 灵活的动态 SQLMyBatis 提供了强大的动态 SQL 功能可以根据条件动态生成 SQL 语句满足灵活的查询需求。
MyBatis与JDBC的关系
MyBatis 使用 JDBC 来实现底层的数据库访问它不是替代 JDBC而是对 JDBC 的一种封装和简化。MyBatis 使用 JDBC 来建立数据库连接、执行 SQL 语句和处理结果集但相比直接使用 JDBCMyBatis 提供了更高层次的抽象简化了开发者对数据库的操作。
总的来说MyBatis 出现是为了简化数据库操作、降低 SQL 与 Java 代码的耦合度、提高开发效率并且提供更好的资源管理和灵活的动态 SQL 支持从而弥补了 JDBC 在这些方面的不足。因此在实际开发中开发者很少会直接使用JDBC而MyBatis 成为了许多 Java 开发者选择的持久层框架之一。