Java Web技术栈

image.png

JDBC

简介

  1. jdbc就是使用java语言操作关系型数据库的一套API

    1. // 1.注册驱动
    2. Class.forName("com.mysql.jdbc.Driver");
    3. // 2.获取连接对象
    4. String url="jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";
    5. String username="root";
    6. String password="1234";
    7. Connection coon = DriverManager.getConnection(url,username,password);
    8. // 3.定义SQL
    9. String sql = "update account set money = 2000 where id = 1";
    10. // 4.获取执行sql的对象
    11. Statement stmt = conn.createStatement();
    12. // 5.执行SQL
    13. int count = stmt.executeUpdate(sql);
    14. // 6.处理结果
    15. System.out.println(count);
    16. // 7.释放资源
    17. stmt.close();
    18. conn.close();
  2. java database connectivity,java数据库连接

image.png

快速入门

image.png

package com.gritworld.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

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/practice?useSSL=false";
        String username = "root";
        String password = "root";
        Connection connection = DriverManager.getConnection(url, username, password);
        // 3.定义sql
        String sql = "select * from account;";
        // 4.获取执行sql的对象
        Statement statement = connection.createStatement();
        // 5.执行sql
        ResultSet resultSet = statement.executeQuery(sql);
        // 6.处理结果 以下两种方式都可以
        /*while (resultSet.next()) {
            int id = resultSet.getInt(1);
            String name = resultSet.getString(2);
            Double money = resultSet.getDouble(3);
            System.out.println(id + "=>" + name + "=>" + money);
        }*/

        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            double money = resultSet.getDouble("money");
            System.out.println(id + "=>" + name + "=>" + money);
        }
        statement.close();
        connection.close();
    }
}

image.png
image.pngimage.png
image.png

执行删除语句,即使删除成功,返回结果也是0

image.png
image.png

Maven

简介

  1. https://maven.apache.org/
  2. 本地仓库其实就是本地电脑上的一个目录

优点

image.png
Maven提供了一套标准化的项目结构,所有idea使用maven构建的项目目录结构完全一样,所有idea创建的maven项目可以通用。
image.pngimage.png

坐标

  1. 项目的唯一标识

image.png
image.png
image.png

maven模型

image.png

仓库

  1. 本地仓库就是本地电脑上的一个目录
  2. 对于maven来说,如果不配置本地仓库,其实默认是有一个本地仓库的,C:\用户.m2\repository
  3. 可以在maven的安装目录下面新建一个 mvn_resp 目录作为新的本地仓库

image.pngimage.png

maven安装配置

image.png

maven命令

  1. mvn -version
  2. mvn compile,编译maven 项目,会生成target目录,存放.class字节码文件的
  3. mvn clean,删除target目录
  4. mvn package,将生成的字节码文件打包成jar包
  5. mvn test,执行maven项目目录结构下面的test目录下的代码
  6. mvn install

maven生命周期

image.png

idea配置maven环境

image.png
image.png
image.png

依赖管理

  1. 搜索:demo:mysql maven
  2. alt+insert,快速导入本地仓库已有的依赖

image.png

依赖范围

image.png

Mybatis

  1. 持久层框架,简化jdbc开发
  2. 所谓的持久层指的是将数据保存到数据库的那一层
  3. 本来是Apache,叫ibatis,2010年改叫mybatis
  4. https://mybatis.org/mybatis-3/zh/index.html
  5. mybatis几乎免除了所有jdbc代码,包括设置参数和获取结果集
  6. 同行竞品:hibernate、spring data jpa、mybatis plus

MySQL

  1. https://downloads.mysql.com/archives/community

    java ee三层架构

  2. 表现层

  3. 业务层
  4. 持久层

jdbc缺点

image.png