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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
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>


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4月前
|
数据可视化 API Swift
全模态图像模型Nexus-Gen对齐GPT-4o!同时搞定,数据、训练框架、模型全面开源
OpenAI GPT-4o发布强大图片生成能力后,业界对大模型生图能力的探索向全模态方向倾斜,训练全模态模型成研发重点。
245 17
|
5月前
|
机器学习/深度学习 人工智能 算法
GPT-4.5 竟成小丑!OpenAI 推出 GPT-4.1:百万级上下文多模态语言模型,性价比远超 GPT-4o mini
OpenAI最新发布的GPT-4.1系列语言模型通过混合专家架构与上下文优化,实现百万级token处理能力,在编码任务中准确率提升21.4%,推理成本降低83%,支持多模态内容理解与低延迟响应。
215 27
GPT-4.5 竟成小丑!OpenAI 推出 GPT-4.1:百万级上下文多模态语言模型,性价比远超 GPT-4o mini
|
7月前
|
Web App开发 人工智能
UC伯克利:给大模型测MBTI,Llama更敢说但GPT-4像理工男
UC伯克利研究团队推出VibeCheck系统,自动比较大型语言模型(LLM)的输出特征,如语调、格式和写作风格。该系统通过迭代挖掘特征并利用LLM法官量化其实用性,验证结果显示其能有效捕捉模型的独特“vibes”。VibeCheck应用于对话、摘要、数学和字幕生成等任务,揭示了不同模型的行为差异,并在预测模型身份和用户偏好方面表现出色。尽管存在主观性和测试范围有限的局限性,VibeCheck为改进LLM评估提供了新视角。论文地址:https://arxiv.org/abs/2410.12851
195 98
|
5月前
|
人工智能 搜索推荐 开发者
GPT-4o测评准确率竟不到1%!BrowseComp:OpenAI开源AI代理评测新基准,1266道高难度网络检索问题
OpenAI最新开源的BrowseComp基准包含1266个高难度网络检索问题,覆盖影视、科技、艺术等九大领域,其最新Deep Research模型以51.5%准确率展现复杂信息整合能力,为AI代理的浏览能力评估建立新标准。
265 4
GPT-4o测评准确率竟不到1%!BrowseComp:OpenAI开源AI代理评测新基准,1266道高难度网络检索问题
|
6月前
|
机器学习/深度学习 人工智能 开发者
GPT-4o-mini-transcribe:OpenAI 推出实时语音秒转文本模型!高性价比每分钟0.003美元
GPT-4o-mini-transcribe 是 OpenAI 推出的语音转文本模型,基于 GPT-4o-mini 架构,采用知识蒸馏技术,适合在资源受限的设备上运行,具有高效、实时和高性价比的特点。
271 2
GPT-4o-mini-transcribe:OpenAI 推出实时语音秒转文本模型!高性价比每分钟0.003美元
|
6月前
|
人工智能 自然语言处理 语音技术
GPT-4o mini TTS:OpenAI 推出轻量级文本转语音模型!情感操控+白菜价冲击配音圈
GPT-4o mini TTS 是 OpenAI 推出的轻量级文本转语音模型,支持多语言、多情感控制,适用于智能客服、教育学习、智能助手等多种场景。
277 2
GPT-4o mini TTS:OpenAI 推出轻量级文本转语音模型!情感操控+白菜价冲击配音圈
|
6月前
|
机器学习/深度学习 人工智能 API
GPT-4o-Transcribe:OpenAI 推出高性能语音转文本模型!错误率暴降90%+方言通杀,Whisper当场退役
GPT-4o-Transcribe 是 OpenAI 推出的高性能语音转文本模型,支持多语言和方言,适用于复杂场景如呼叫中心和会议记录,定价为每分钟 0.006 美元。
281 2
|
7月前
|
人工智能 芯片
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
|
6月前
|
Web App开发 人工智能 自然语言处理
GPT-5涌现能力可预测?UC伯克利仅使用当前模型检查点预测未来模型
加州大学伯克利分校的一项新研究提出了一种基于微调大型语言模型(LLM)的方法,以预测未来模型的涌现能力。通过在特定任务上微调现有模型并拟合参数化函数,研究团队能够在四个NLP基准测试中准确预测未来模型的能力。该方法为模型开发者和政策制定者提供了重要工具,但也存在局限性,如仅能预测4倍计算资源内的涌现现象。论文地址:https://arxiv.org/pdf/2411.16035。
85 1
|
7月前
|
机器学习/深度学习 Web App开发 测试技术
NIPS 2024:代码模型自我进化超越GPT-4o蒸馏!UIUC伯克利等提出自对齐方法
在NIPS 2024上,UIUC、UC Berkeley等高校联合提出SelfCodeAlign方法,通过自我对齐使代码生成的大型语言模型(LLMs)在无需大量人工注释或蒸馏的情况下显著提升性能。该方法利用基础模型生成多样化编码任务并自我验证,最终选择通过测试的示例用于指令微调。实验表明,SelfCodeAlign微调的模型在多个编码任务上显著优于其他方法。论文地址:https://arxiv.org/pdf/2410.24198。
146 11

热门文章

最新文章