GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告

dbebfe0c03314e09a3ab259789b5c785.jpg

一、引言

1.1MyBatis概念

MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO映射成数据库 。

MyBatis的主要特点包括:

  • 支持定制化SQL、存储过程以及高级映射。
  • 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
  • 可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO为数据库中的记录。

1.2.为什么要使用MyBatis

使用MyBatis的主要优点是:

1. 通过简单的XML或注解配置,可以方便地将Java对象与数据库记录进行映射,避免了繁琐的JDBC代码。

2. MyBatis支持高级映射和存储过程,使得数据库操作更加简单、高效。

3. MyBatis可以自动映射结果集到Java对象,减少了手动处理结果集的代码量。

4. MyBatis支持事务管理,可以确保数据的一致性和完整性。

5. MyBatis具有很好的扩展性,可以通过插件或自定义拦截器来实现更多的功能。

以一个简单的查询操作为例,不使用MyBatis时,我们需要编写如下JDBC代码:

String sql = "SELECT * FROM user WHERE id = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setInt(1, userId);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
    User user = new User();
    user.setId(rs.getInt("id"));
    user.setName(rs.getString("name"));
    // ...其他属性设置
}

而使用MyBatis时,我们只需要编写如下XML配置和Java对象:

<select id="getUserById" parameterType="int" resultType="User">
    SELECT * FROM user WHERE id = #{id}
</select>
User user = sqlSession.selectOne("getUserById", userId);

可以看到,使用MyBatis后,代码变得更加简洁明了。

二、搭建Mybatis环境

2.1.创建Maven项目

首先我们在学习mybatis之前先创建一个基础的maven项目

       右击项目名➡new➡module

        选择maven项目➡选择jdk版本➡选择webapp

        输入项目名

选择好maven项目的文件位置➡点击添加按钮➡配置好参数

2.2.导入相关pom依赖

①将<properties>与<dependencies>标签内容进行替换即可。

 <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencies>
        <!-- ********************** junit单元测试依赖 ********************** -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- ********************** Java Servlet API  ********************** -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- ********************** Mybatis依赖 ********************** -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!-- ********************** Mysql JDBC驱动 ********************** -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
        <!-- **********************  日志配置  ********************** -->
        <!--记得修改mybatis.cfg.xml添加如下内容-->
        <!--<setting name="logImpl" value="LOG4J2"/>-->
        <!--核心log4j2jar包-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.9.1</version>
        </dependency>
        <!--web工程需要包含log4j-web,非web工程不需要-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>2.9.1</version>
        </dependency>
    </dependencies>

②<build>标签内将<pluginManagement>标签删除(解除版本锁定),加入<resources>。

可以确保mybatis-generator-maven-plugin在运行时能够正确地将所需的文件复制到目标文件夹中,避免出现缺少文件或配置错误的问题。

   <resources>
            <!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题-->
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>jdbc.properties</include>
                    <include>*.xml</include>
                </includes>
            </resource>
        </resources>

③Maven插件的配置,用于使用MyBatis Generator插件

可以在Maven构建过程中使用MyBatis Generator插件来生成Java代码,包括Mapper接口和XML映射文件,以简化数据库操作的开发过程。

 <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <dependencies>
                    <!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.44</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>

2.3.导入相关配置文件

我们知道Mybatis是一款有关于数据库的框架,所以我们还需要导入关于数据库连接的配置文件

jdbc.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_ssm?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123456

修改web.xml文件

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1"></web-app>

2.4.Mybatis相关插件安装

一共需要安装四款插件

Free mybatis plugin

Mybatis generator

mybatis tools

maven helper

小贴士:

  1. Free MyBatis plugin:这个插件主要实现了mapper和xml的快速跳转,不用每次查找sql的时候全局搜索了。常用的就是第二个功能:快速从xml代码跳转到mapper文件和从mapper文件跳转到xml代码。
  2. Mybatis generator:这个插件可以根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件。这样可以大大减少开发人员的工作量,提高开发效率。
  3. Mybatis tools:这个插件提供了一些MyBatis相关的工具,比如代码生成器、代码分析器等等。
  4. Maven helper:这个插件主要用来解决maven冲突。安装完成后,打开pom.xml文件,会多出一个Dependency Analyzer选项卡。默认选中的是冲突项,左侧展示的是冲突列表,随便点一个,显示红色的右键排除即可。然后点击左上角Refresh UI按钮即可看到已经排除,pom中也会自动添加排除代码。

2.5.Mybatis.cfg.xml配置

众所周知,一款框架必定有自己的配置文件,Mybatis也是一样有配置文件

Mybatis.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 引入外部配置文件 -->
    <properties resource="jdbc.properties"/>
    <settings>
        <setting name="logImpl" value="LOG4J2"/>
    </settings>
    <!-- 别名 -->
    <typeAliases>
        <!--<typeAlias type="com.javaxl.model.Book" alias="Book"/>-->
    </typeAliases>
    <!-- 配置mybatis运行环境 -->
    <environments default="development">
        <environment id="development">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="jdbc"/>
            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <dataSource type="POOLED">
                <property name="driver"
                          value="${jdbc.driver}"/>
                <property name="url"
                          value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
      <!--  <mapper resource="com/javaxl/mapper/BookMapper.xml"/>-->
    </mappers>
</configuration>


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
人工智能 安全 测试技术
忘掉GPT-5!OpenAI推出全新AI模型系列o1,声称性能达到博士级
忘掉GPT-5!OpenAI推出全新AI模型系列o1,声称性能达到博士级
|
1月前
|
API
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
36 0
|
1月前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
53 0
|
3月前
|
人工智能 搜索推荐 机器人
OpenAI 将向企业开放 GPT-4o 模型定制版,国内怎么使用ChatGPT?
OpenAI新推功能让企业客户能定制GPT-4o模型,通过微调技术满足特定需求和业务场景,以前所未有的方式优化AI投资回报。企业上传自有数据后,可在一到两小时内完成模型定制,如滑板公司打造专业客服聊天机器人解答详细问题,大幅提升服务针对性与客户体验。目前定制限于文本数据,但仍显著增强了企业应用AI的灵活性与效率。
94 2
OpenAI 将向企业开放 GPT-4o 模型定制版,国内怎么使用ChatGPT?
|
2月前
|
测试技术 人机交互
没有等来OpenAI开源GPT-4o,等来了开源版VITA
【9月更文挑战第9天】近日,论文《Towards Open-Source Interactive Omni Multimodal LLM》介绍了VITA,一种基于Mixtral 8×7B的新型开源多模态大语言模型,能处理视频、图像、文本和音频等多模态数据,并提供先进的人机交互体验,填补了开源模型在多模态能力上的空白。经多任务学习及指令微调,VITA在多个基准测试中表现出色,但仍存在基础能力和嘈杂音频处理等方面的局限。更多详情见论文:https://arxiv.org/pdf/2408.05211
47 3
|
3月前
|
人工智能 API Python
Openai python调用gpt测试代码
这篇文章提供了使用OpenAI的Python库调用GPT-4模型进行聊天的测试代码示例,包括如何设置API密钥、发送消息并接收AI回复。
|
3月前
|
缓存 测试技术 C++
OpenAI GPT-4 Code Interpreter测试
本文分析了OpenAI GPT-4 Beta版本中的Code Interpreter功能,测试了其处理不同文件类型(如图表PNG、长文本PDF、短代码ipynb和长代码C++)的能力,并指出了在处理超出Token Limit内容时的局限性。
50 0
OpenAI GPT-4 Code Interpreter测试
|
3月前
|
人工智能 安全 搜索推荐
OpenAI宣布为企业和消费者提供可定制的GPT
OpenAI宣布为企业和消费者提供可定制的GPT
|
4月前
|
监控 搜索推荐 机器人
开发与运维数据问题之LangChain帮助提升GPT-4的实用性的如何解决
开发与运维数据问题之LangChain帮助提升GPT-4的实用性的如何解决
45 1
|
3月前
|
人工智能 机器人 API
OpenAI内斗对GPT是福是祸?对人类?对微软?
OpenAI内斗对GPT是福是祸?对人类?对微软?

热门文章

最新文章