技术随记录

JDBC(Java Database Connectivity)

JDBC是Java数据库连接的缩写,它是一个Java API(应用程序编程接口),为Java程序与数据库之间提供了一种标准的交互方式。JDBC允许Java应用程序连接到数据库,执行SQL语句,检索和操作数据,并管理数据库事务。

以下是与JDBC相关的一些关键概念:

  1. 驱动程序(Driver):JDBC驱动程序是一种软件组件,使Java应用程序能够连接到特定的数据库管理系统(DBMS)。每个DBMS通常需要特定的驱动程序。针对大多数常见的数据库,如MySQL、Oracle、PostgreSQL和SQL Server,都有相应的JDBC驱动程序可用。

  2. 连接(Connection):连接表示Java应用程序与数据库之间的会话。它允许应用程序发送SQL语句并接收结果。要建立连接,通常需要提供数据库的URL、用户名和密码。

  3. 语句(Statement):语句对象用于执行SQL语句并检索结果。在JDBC中有两种类型的语句:Statement用于一般的SQL语句,PreparedStatement用于带有参数的预编译SQL语句。

  4. 结果集(ResultSet):结果集表示SQL查询的结果。它提供了用于导航行和检索数据的方法。通过使用基于数据类型的适当的getter方法,可以访问行的列数据。

  5. 事务(Transaction):事务表示一个逻辑工作单元,可以由一个或多个SQL语句组成。JDBC通过Connection对象支持事务。您可以开始一个事务,通过提交使更改永久化,或者通过回滚来放弃更改。

下面是一个简单的示例,演示如何使用JDBC连接到数据库并执行查询:

import java.sql.*;

public class JDBCDemo {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "myuser";
        String password = "mypassword";

        try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
             Statement statement = connection.createStatement()) {
            
            String sqlQuery = "SELECT * FROM employees";
            ResultSet resultSet = statement.executeQuery(sqlQuery);

            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                // 处理检索到的数据
                System.out.println("员工ID:" + id + ",姓名:" + name);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

MyBatis、MyBatis-Plus和JDBC的关系

MyBatis、MyBatis-Plus和JDBC之间存在以下关系:

  1. JDBC(Java Database Connectivity)是Java标准库中提供的一组API,用于与数据库进行交互。JDBC提供了连接数据库、执行SQL语句、处理结果集等功能,是底层与数据库交互的基础。

  2. MyBatis是一个基于Java的持久层框架,它简化了使用JDBC的过程,提供了更高层次的抽象和便利。MyBatis通过将SQL语句与Java代码解耦,提供了一种将SQL语句映射到Java方法的方式。它允许开发人员使用XML或注解来定义SQL映射,并提供了一组API来执行SQL查询、更新等操作。

  3. MyBatis-Plus是基于MyBatis的增强工具包,提供了一系列增强功能和便利的API,简化了开发过程。MyBatis-Plus在MyBatis的基础上提供了更多的特性,如代码生成器、分页插件、逻辑删除等,帮助开发人员更高效地进行数据库操作。

因此,可以说MyBatis和MyBatis-Plus都是基于JDBC的框架,用于简化和增强与数据库的交互过程。它们提供了更高级别的抽象和便利的API,使开发人员能够更轻松地处理SQL操作,减少手动编写和管理SQL语句的工作量。在使用MyBatis或MyBatis-Plus时,仍然会依赖JDBC来进行底层的数据库连接和执行操作。

JDK JRE java标准库的关系

关系:JDK是Java开发工具包,它是用于开发、编译和运行Java应用程序的核心工具集。JDK包括了Java编译器(javac)用于将Java源代码编译为字节码文件,Java运行时环境(JRE)用于执行已编译的Java程序,以及其他开发工具如调试器、性能分析器等。JDK还包含了Java标准库(Java Standard Library)和开发文档,提供了丰富的功能和API供开发人员使用。

java标准库

Java标准库(Java Standard Library)是指Java开发平台提供的一组核心类和接口库,它包含了丰富的功能和工具,用于开发各种类型的Java应用程序。Java标准库是Java开发的基础,为开发人员提供了许多常用的功能和工具,可以大大简化和加速Java应用程序的开发过程。

Java标准库包括以下几个主要的模块和功能:

  1. java.lang:包含Java语言的核心类,如基本数据类型的包装类、字符串类、异常类等。

  2. java.util:提供了集合框架(Collection Framework)和其他常用的实用工具类,如集合类(List、Set、Map等)、日期和时间类、随机数生成器等。

  3. java.io:提供了用于进行输入和输出操作的类和接口,包括文件操作、流操作、对象序列化等。

  4. java.net:用于网络编程的类和接口,支持网络通信、URL操作、套接字编程等。

  5. java.awt:抽象窗口工具包(Abstract Window Toolkit,AWT),提供了创建图形用户界面(GUI)的基本组件和功能。

  6. javax.swing:Swing库,提供了更丰富和灵活的GUI组件,用于创建现代化的跨平台应用程序。

  7. java.sql:用于数据库访问和操作的API,支持与关系型数据库的连接、执行SQL语句等。

除了上述模块外,Java标准库还包括许多其他模块,涵盖了各种领域的功能和工具,如多线程、反射、安全、XML处理、国际化支持等。

使用Java标准库可以方便地编写各种类型的Java应用程序,因为它提供了广泛的功能和工具,覆盖了许多常见的开发需求。同时,Java标准库也是其他第三方库和框架的基础,许多开发工具和框架都是构建在Java标准库之上。

Controller层 Service层 Mapper层

  1. Controller: Controller层通常位于应用程序的用户界面层(Presentation Layer),它负责处理用户请求和响应,并协调其他层的工作。其主要职责包括:

    • 接收和解析用户请求。
    • 根据请求调用相应的服务(Service)方法。
    • 处理服务返回的结果,并生成适当的响应给用户。
    • 控制视图的展示逻辑(如果有)。

    Controller层主要关注用户界面和用户请求的处理,它不应该包含业务逻辑的实现,而是将业务逻辑的处理委托给下一层的Service层。

  2. Service: Service层通常位于应用程序的业务逻辑层(Business Logic Layer),它包含了应用程序的核心业务逻辑和功能。其主要职责包括:

    • 实现业务逻辑的处理和决策。
    • 协调和组织多个数据访问操作。
    • 提供对外的服务接口供Controller层调用。
    • 可能包含事务管理、缓存处理、安全验证等辅助功能。

    Service层主要关注业务逻辑的处理和组织,它不直接与用户界面进行交互,而是通过Controller层来接收和处理用户请求。

  3. Mapper: Mapper层通常位于应用程序的数据访问层(Data Access Layer),它负责与数据存储介质(如数据库)进行交互,实现数据的读取、写入和持久化。其主要职责包括:

    • 定义与数据存储相关的操作接口。
    • 实现数据访问操作,如查询、插入、更新、删除等。
    • 处理与数据存储相关的异常和错误。

    Mapper层使用特定的数据访问技术(如ORM框架、SQL语句等)来实现与数据存储的交互,将数据的读写操作封装起来,屏蔽了底层数据存储的细节。通常,Mapper层与持久化对象(如数据库表、文档等)之间进行映射。

总体而言,Controller层负责用户界面和请求的处理,Service层负责业务逻辑的处理和协调,Mapper层负责数据访问和持久化的操作。它们各自承担着不同的职责,相互配合以实现应用程序的功能。

MAVEN

Maven坐标(Maven Coordinates)是用于唯一标识Maven构建工具中的项目依赖项的一种标识方式。Maven坐标通常由三个主要部分组成:groupId、artifactId和version。

groupId:artifactId:version

解释每个部分的含义:

  • groupId(组织ID):表示项目所属的组织或团队的唯一标识符。一般使用反向域名的方式进行命名,例如:"com.example"。
  • artifactId(项目ID):表示项目的唯一标识符,通常代表一个特定的项目或模块。例如:"myproject"。
  • version(版本):表示项目或模块的特定版本号,可以使用数字、字母和符号进行标识。例如:"1.0.0"。

除了这三个主要部分外,还可以包含一些可选的部分,如packaging(打包方式)和classifier(分类器)。打包方式指定项目生成的输出文件类型,例如jar、war等。分类器用于进一步细分构件,通常用于区分具有相同坐标的不同构件(如源码、测试用例等)。

使用Maven坐标,可以精确定位和管理项目的依赖关系,以及在Maven仓库中找到所需的依赖项。Maven坐标是开发Java项目时常用的一种标识方式,能够方便地引入和管理项目依赖。

Controller Service Mapper

  • Controller(控制器):负责接收外部请求并处理请求的验证、解析和转发。它通常处理路由和请求参数的校验、转换等任务,并将请求转发给适当的服务进行处理。

  • Service(服务):实现业务逻辑的核心组件。服务接收控制器传递的请求,执行具体的业务操作,包括数据访问、业务计算、事务处理等。服务层通常封装了复杂的业务逻辑,并提供高层次的业务接口供控制器调用。

  • Mapper(数据访问层):负责与数据库或其他持久化存储进行交互的组件。它提供对数据库的访问和操作方法,用于执行数据的读取、写入和查询。Mapper通常与服务层配合使用,帮助服务层从数据库中获取数据或将数据持久化到数据库中。

库和依赖项

在软件开发中,"libs"和"deps"是两个常见的术语,用于描述软件项目中的依赖关系。

  1. "libs"(或"libraries"): "libs"是指库(libraries)的缩写,表示软件项目中使用的可重用代码模块或库文件。库是已经编译好的代码集合,通常包含一组函数、类、数据结构或其他可供程序使用的代码片段。使用库可以避免重复编写代码,并提供了一种模块化的方式来组织和管理代码。库可以作为外部依赖项被软件项目引用,以提供特定的功能或实现特定的算法。通常,库被开发者手动添加到项目中,并在编译时链接到项目中,以便在运行时使用。

  2. "deps"(或"dependencies"): "deps"是指依赖项(dependencies)的缩写,表示软件项目所依赖的外部组件或模块。依赖项是指在项目开发过程中需要引入的外部资源,如库、框架、工具等。这些依赖项提供了额外的功能或服务,使开发者能够更高效地构建应用程序。依赖项通常以某种依赖管理系统(如包管理器)的配置文件或清单中进行声明,以确保项目能够正确地获取并使用这些外部资源。在构建或部署项目时,依赖管理系统会自动下载、安装或编译这些依赖项,并将其集成到项目中。

总结来说,"libs"指的是项目中使用的可重用代码库,而"deps"指的是项目所依赖的外部组件或模块。"libs"通常是以库文件的形式存在并手动添加到项目中,而"deps"通常是以声明的方式在依赖管理系统中进行配置,并在构建过程中被自动处理。

MVC

在MVC(Model-View-Controller)架构中,业务流程通常是由视图层、控制层和模型层共同协作完成的。这三个组件相互配合,实现了应用程序的不同功能和业务流程。

  1. 视图层(View):视图层负责展示数据给用户并处理用户的交互操作。它通常是用户界面的一部分,用于呈现数据、接收用户输入和显示应用程序的状态。

  2. 控制层(Controller):控制层接收用户的请求,协调视图层和模型层之间的交互。它处理用户的输入,更新模型的状态,并将最终的结果返回给视图层。

  3. 模型层(Model):模型层负责封装数据和业务逻辑。它表示应用程序的数据模型,包括数据的获取、处理和存储,以及业务规则的实现。

在业务流程中,视图层负责展示数据给用户,用户通过视图层进行操作和发送请求。控制层接收用户的请求,并根据请求的内容和用户的操作调用适当的模型层方法进行业务处理。模型层负责处理具体的业务逻辑,包括数据的增删改查、数据验证和业务规则的执行。最终,模型层将处理结果返回给控制层,控制层再将结果传递给视图层进行展示。

通过这种分层结构,MVC架构将应用程序的不同职责分离开来,提高了代码的可维护性和可扩展性。视图层负责展示和交互,控制层负责协调和处理用户请求,模型层负责封装数据和业务逻辑。它们共同协作,完成应用程序的业务流程。

你可能感兴趣的:(数据库,java,sql)