小
小宅
V1
2023/04/23阅读:21主题:默认主题
JBDC
JBDC
概念
JDBC(Java数据库连接)是Java语言的一个标准数据库连接接口,用于操作关系型数据库。 通过JDBC,Java程序员可以使用SQL语句来操作数据库,而无需考虑底层的数据库驱动实现细节。JDBC接口由一组用Java语言编写的类与接口组成,包括Java数据库连接、SQL语句解析、执行和关闭数据库连接等方法。
快速入门


demo

package com.itheima01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCDemo01 {
public static void main(String[] args) throws Exception {
// 2. 注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3. 获取连接
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2", "用户名", "密码");
//4. 获取执行对象
Statement stat = con.createStatement();
//5。执行sql 语句, 并接收结果
String sql = "SELECT * FROM account";
ResultSet rs = stat.executeQuery(sql);
// 6。 处理结果
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));
}
//7。 释放资源
con.close();
stat.close();
con.close();
}
}
DriverManager 详解


Connection 详解

statement 详解

resultset 详解

preparedStatement 详解

如何解决sql 注入

demo

原理

jdbc 工具类

数据连接池


Driud使用步骤

package example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.itheima01.pojo.Brand;
import org.junit.Test;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
public class BrandTest {
@Test
public void testSelectAll() throws Exception {
// 加载配置文件
Properties prop = new Properties();
prop.load(new FileInputStream("src/druid.properties"));
// 4。 获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
// 5。 获取数据库连接connection
Connection connection = dataSource.getConnection();
String sql = "select * from tb_brand";
PreparedStatement pstmt = connection.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
Brand brand = null;
List<Brand> brands = new ArrayList<>();
while (rs.next()) {
int id = rs.getInt("id");
String brandName = rs.getString("brand_name");
String company = rs.getString("company");
int ordered = rs.getInt("ordered");
String description = rs.getString("description");
int status = rs.getInt("status");
brand = new Brand();
brand.setId(id);
brand.setCompany(company);
brand.setOrdered(ordered);
brand.setDescription(description);
brand.setStatus(status);
brands.add(brand);
}
System.out.println(brands);
rs.close();
pstmt.close();
pstmt.close();
}
/**
* 添加数据
* @throws Exception
*/
@Test
public void testAdd() throws Exception {
// 接受页面数据
String brandName = "香飘飘";
String company = "香飘飘有限公司";
int ordered = 1;
String description = "绕地球一圈";
int status = 1;
// 加载配置文件
Properties prop = new Properties();
prop.load(new FileInputStream("src/druid.properties"));
// 4。 获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
// 5。 获取数据库连接connection
Connection connection = dataSource.getConnection();
String sql = "insert into tb_brand(brand_name, company, ordered, description,status) values(?,?,?,?,?);";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, brandName);
pstmt.setString(2, company);
pstmt.setInt(3, ordered);
pstmt.setString(4, description);
pstmt.setInt(5, status);
int count = pstmt.executeUpdate();
if (count > 0) {
System.out.println(true);
}
pstmt.close();
pstmt.close();
}
/**
* 修改数据
* @throws Exception
*/
}
作者介绍
小
小宅
V1