JavaWeb学习笔记(14)__ JDBC
发布日期:2021-04-30 21:06:10 浏览次数:98 分类:精选文章

本文共 4063 字,大约阅读时间需要 13 分钟。

JDBC???????

1. ????

JDBC?Java DataBase Connectivity??Java????????????????????????????????????????????JDBC?Java??????? JDBC ???????????MySQL?Oracle?PostgreSQL??

JDBC?????

JDBC ?????????

  • ????????????????API??????????
  • ???????????????????????????????
  • JDBC ???????????????????????

    2. JDBC ?????

    ?? JDBC ?????????????????

  • ???????????????Java????????
  • ?????????? Connection ????????????
  • ?????SQL???
    • ?? Statement ??????SQL???
    • ?? PreparedStatement ????????????SQL?????
  • ???????? ResultSet ????????????
  • 3. ?????????

    ????? JDBC ????????????

    1. MySQL??????

    • ?????????MySQL???????? mysql-connector-java-8.0.16.jar ?????? lib ???????????????
      Class.forName("com.mysql.cj.jdbc.Driver");

    2. ????

    • ??????????? URL ??????? &serverTimezone=UTC????
      String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";

    3. SQL????

    • ??????? PreparedStatement ?? Statement??????? SQL ???
      PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM table WHERE username=? AND password=?");
      preparedStatement.setString(1, username);
      preparedStatement.setString(2, password);

    4. JDBC????

    ???????? JDBC ????????

    package com.lut.test;
    import java.sql.*;
    public class Test {
    public static void main(String[] args) {
    try {
    // ????
    Class.forName("com.mysql.cj.jdbc.Driver");
    // ???????
    String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
    String username = "root";
    String password = "123456";
    // ????
    Connection connection = DriverManager.getConnection(url, username, password);
    // ????
    String sql = "SELECT * FROM table";
    Statement statement = connection.createStatement();
    ResultSet resultSet = statement.executeQuery(sql);
    while (resultSet.next()) {
    String name = resultSet.getString("name");
    System.out.println(name + " - " + resultSet.getInt("id"));
    }
    System.out.println("????");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

    ????

  • ????? URL???? jdbc:mysql://host:port/databaseName??????? useUnicode=true??? UTF-8 ???? serverTimezone=UTC???????
  • ResultSet ????????????????? getString?getInt?getDouble ???????????????
  • 5. PreparedStatement ???

  • ?? SQL ????????????????????????? SQL ????
  • ????????????????
  • ???????????????????
  • ??????? PreparedStatement ????????

    package com.lut.test;
    import java.sql.*;
    public class Login {
    public static void main(String[] args) {
    try {
    // ????
    Class.forName("com.mysql.cj.jdbc.Driver");
    // ???????
    String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
    String username = "lisi";
    String password = "222";
    // ????
    Connection connection = DriverManager.getConnection(url, username, password);
    // ????
    String sql = "SELECT * FROM user WHERE username=? AND password=?";
    PreparedStatement preparedStatement = connection.prepareStatement(sql);
    // ????
    preparedStatement.setString(1, username);
    preparedStatement.setString(2, password);
    ResultSet resultSet = preparedStatement.executeQuery();
    if (resultSet.next()) {
    System.out.println("????");
    } else {
    System.out.println("????");
    }
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }

    6. ??

    JDBC ? Java ???????????????????????????????????????????????????? PreparedStatement ??????????????????????????????????????

    上一篇:插件化框架解读之android系统服务实现原理,算法太TM重要了
    下一篇:java IO流之辅助流式部分 File类

    发表评论

    最新留言

    很好
    [***.229.124.182]2026年06月07日 09时31分41秒