小宅

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