JDBC
1. JDBC介绍
JDBC(Java Database Connectivity)是一种用于连接和操作数据库的 Java API。
通过Java操作数据库的流程
第一步:编写Java代码
第二步:Java代码将SQL发送到MySQL服务端
第三步:MySQL服务端接收到SQL语句并执行该SQL语句
第四步:将SQL语句执行的结果返回给Java代码
2. JDBC快速入门
JDBC快速入门
package src.com.itheima.jdbc;import com.mysql.jdbc.Driver;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;//jdbc快速入门
public class JDBCDemo {public static void main(String[] args) throws Exception {//1. 注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取连接String url = "jdbc:mysql://127.0.0.1:3306/db1";String usename = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, usename, password);//3.定义sqlString sql = "UPDATE account SET money=1500 WHERE id =2;";// 4.获取执行sql的对象statementStatement stmt = conn.createStatement();//5.执行sqlint count = stmt.executeUpdate(sql); //受影响的行//6.处理结果System.out.println(count);//7.释放资源stmt.close();conn.close();}
}
案例:
https://blog.csdn.net/meini32/article/details/131981238
案例2:查询数据库中的数据
案例3:查询数据库中账户表数据,并将其封装成Account对象,,存储到ArrayList集合当中
3 JDBC-API介绍
API | 介绍/方法 |
---|---|
DriverManager | 管理 JDBC 驱动程序的基本服务 |
. | getConnection(String url, String user, String password):获取一个与指定数据库的连接。 |
Connection | 代表一个与特定数据库的连接 |
. | createStatement():创建一个 Statement 对象,用于执行 SQL 语句。 |
Statement | 用于执行 SQL 语句并返回结果 |
. | executeUpdate(String sql):执行更新语句,返回受影响的行数。 |
ResultSet | 用于处理和操作结果集数据 |
. | next():将指针移到下一行,如果有下一行则返回 true |
. | getInt():获取指定列的整数值。 |
PreparedStatement | 用于执行预编译 SQL 语句的接口(可以预防sql注入) |
sql注入案例:https://blog.csdn.net/meini32/article/details/132046575
4 数据库连接池
概念
数据库连接池是一种用于管理和维护数据库连接的技术
- 在应用程序中,每次需要访问数据库时,都需要建立一个数据库连接,这个过程是比较耗时的。当并发访问量较大时,频繁地建立和关闭数据库连接会导致服务器资源的浪费和性能的降低。通过使用数据库连接池,可以将数据库连接预先建立好,并重复利用这些连接,从而减少数据库连接的建立和关闭次数,提高服务器资源的利用率和应用程序的性能。
组成
- 连接池管理器:
连接池管理器负责管理连接池的创建、初始化、销毁和连接的分配和回收。- 一组连接池:
连接池则负责维护一组已经建立好的数据库连接- 应用:
当应用程序需要访问数据库时,连接池管理器会从连接池中获取一个可用的连接,分配给应用程序使用。当应用程序不再需要连接时,连接池管理器会将连接回收到连接池中,以便下次重复利用。
优点
- 提高应用程序的性能:使用连接池可以减少数据库连接的建立和关闭次数,从而节省服务器资源和提高应用程序的性能。
- 提高系统的稳定性:连接池可以有效地控制数据库连接的数量,避免数据库连接过多导致服务器资源耗尽和系统崩溃的情况。
- 提高数据库的安全性:连接池可以对数据库连接进行统一管理和授权,避免应用程序直接访问数据库带来的安全风险。
数据库连接池接口:DataSource
DataSource 接口提供了一组标准的方法,用于获取和管理数据库连接,应用程序可以通过该接口来访问和使用数据库连接池。DataSource 接口的实现类可以通过第三方库或应用服务器提供,常见的实现类有DBCP、C3P0、BoneCP 等。这些实现类都实现了 DataSource 接口,并提供了一些自定义的配置选项和扩展功能。
使用步骤:
1.导入jar包 druid-1.1.12.jar
2.定义配置文件
3.加载配置文件
4.获取数据库连接池对象
5.获取连接
package src.com.itheima.jdbc.com.ithema.druid;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;public class DruidDemo {public static void main(String[] args) throws Exception {//1.导入jar包//2.定义配置文件//3.加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("D:\\jdbc-demo\\src\\com\\itheima\\jdbc\\druid.properties"));//4.获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5.获取数据库连接Connection connection = dataSource.getConnection();System.out.println(connection);System.out.println(System.getProperty("user.dir"));}
}