JDBC

JDBC

Defination:
Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database.

Introduction

JDBC本质:

JDBC好处:

Get Started

  1. 首先创建project ,module . import driver (jar file ) as library.
package com.jdbclearn.jdbc;

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.cj.jdbc.Driver");

    // 2.获取连接
    String url = "jdbc:mysql://127.0.0.1:3306/bjpowernode";
    String username = "root";
    String password = "20220711";
    Connection conn = DriverManager.getConnection(url, username, password);

    // 3.定义SQL
    String sql = "update emp set sal = 8000 where empno = 7369";

    // 4. 获取执行sql的对象 Statement
    Statement stmt = conn.createStatement();

    // 5. 执行SQL

    int count = stmt.executeUpdate(sql); // 返回受影响的行数

    // 6. 处理结果
    System.out.println(count);

    // 7. 释放资源
    stmt.close();
    conn.close();
  }
}

API Details

DriverManager

  1. 注册驱动

  2. 获取数据库连接:

static Connection
getconnection(string url,string user,string password)

参数

  1. url:连接路径
  1. user: 用户名
  2. password: 密码

Connection

Connection(数据库连接对象)作用:

  1. 获取执行SQL的对象
  1. 事务管理

Statement

Statement作用:

执行SQL语句

ResultSet

xxx getXxx(参数):获取数据

使用步骤:

  1. 游标向下移动一行,并判断该行否有数据:next()
  2. 获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
//获取数据
rs.getXxx(参数);
}

PreparedStatement

预编译SQL并执行SQL语句:

  1. 获取PreparedStatement对象
//SQL语句中的参数值,使用?占位符替代
String sql "select from user where username and password ?"
//通过Connection.对象获取,并传入对应的sgl语句
PreparedStatement pstmt conn.prepareStatement(sql);
  1. 设置参数值

PreparedStatement对象:setXxx(参数1,参数2):给?赋值

  1. 执行SQL

  1. 预编译SQL,性能更高
  2. 防止SQL注入:将敏感字符进行转义
log-output=FILE
general-log=1
setS
general_log_file="D:\mysql.log"
slow-query-log=1
slow_query_.log_file=“D\mysql_slow.log”
long_query_time=2