牛客社区所有的表和SQL语句

文章目录

  • 1 帖子表 discuss_post
    • 1.1 字段描述
    • 1.2 相关功能描述
      • 1.2.1 分页查询帖子
      • 1.2.2 查询帖子总数量
      • 1.2.3 插入一条帖子记录
      • 1.2.4 根据帖子ID查询某条帖子
      • 1.2.5 更新帖子评论数量
      • 1.2.6 更新帖子类型
      • 1.2.6 更新帖子状态
      • 1.2.7 更新帖子分数
  • 2 用户表 user
    • 2.1 字段描述
    • 2.2 相关功能描述
      • 2.2.1 根据用户ID查询用户
      • 2.2.2 通过用户名查询用户
      • 2.2.3 根据用户邮箱查询用户
      • 2.2.4 插入一条用户记录
      • 2.2.5 更新用户状态
      • 2.2.6 更新用户头像
      • 2.2.7 更新用户密码
  • 3 登录凭证表 login_ticket
    • 3.1 字段描述
    • 3.2 相关功能描述
      • 3.2.1 插入一条登录凭证记录
      • 3.2.2 根据凭证字符串查询登录凭证
      • 3.2.3 根据凭证字符串修改对应登录凭证的状态
  • 4 评论表 comment
    • 4.1 字段描述
    • 4.2 相关功能描述
      • 4.2.1 分页查询某个帖子的回帖,查询某个回帖下的所有评论和回复
      • 4.2.2 查询某条帖子的回帖数量,查询回帖下的评论和回复数量
      • 4.2.3 插入一条comment记录(回帖/评论/回复)
      • 4.2.4 根据comment 的 id查询回帖/评论/回复
  • 5 消息表 message
    • 5.1 字段描述
    • 5.2 相关功能描述
      • 5.2.1 分页查询某个用户的所有私信,按会话id分组,每组只有一条最新的私信
      • 5.2.2 根据userId,查询某个用户所有会话的数量
      • 5.2.3 根据conversation_id查询消息列表
      • 5.2.4 查询某个用户未读消息数量,查询某个用户的某个会话id下的未读消息数量
      • 5.2.5 新增一条消息记录
      • 5.2.6 根据消息ids,修改一批消息的状态
      • 5.2.7 查询某个用户的,某个通知事件类型的,一条最新通知
      • 5.2.8 查询某个用户的,某个通知事件类型的,通知数量
      • 5.2.9 查询某个用户的未读通知数量,查询某个用户的某个通知事件类型的未读通知数量
      • 5.2.10 分页查询某个用户的,某个通知事件类型的通知

1 帖子表 discuss_post

1.1 字段描述

描述字段类型
帖子Id,主键idint
贴子所属的用户id,帖子是由谁发表的user_idvarchar(45)
帖子标题titlevarchar(100)
帖子内容contenttext
帖子类型:0-普通; 1-置顶;typeint
帖子状态:0-正常; 1-精华; 2-删除;statusint
帖子创建时间create_timetimestamp
帖子评论数量(回帖、评论、回复)comment_countint
帖子分数(根据分数进行热度排行)scoredouble

1.2 相关功能描述

1.2.1 分页查询帖子

对应接口

List<DiscussPost> selectDiscussPosts(int userId, int offset, int limit, int orderMode);

注意事项

  1. 以下所有查询都是查未被删除的帖子,即status != 2。
  2. 如果userId不为0,即要查询某个用户的帖子。
  3. 如果 orderMode 为 0,先按照帖子类型(置顶1、普通0)降序排序,让置顶的帖子放在前面,type一样的帖子按照时间顺序降序排序,让先发表的帖子放在前面。
  4. 如果 orderMode 为 1,表示按照热度查询,先按照帖子类型(置顶1、普通0)降序排序,让置顶的帖子放在前面,type一样的帖子分数降序排序,让分数高的帖子放在前面,如果分数一样,按照时间排序,把先发布的帖子放在前面。

对应SQL

<select id="selectDiscussPosts" resultType="DiscussPost">select <include refid="selectFields"></include>from discuss_postwhere status != 2<if test="userId!=0">and user_id = #{userId}</if><if test="orderMode==0">order by type desc, create_time desc</if><if test="orderMode==1">order by type desc, score desc, create_time desc</if>limit #{offset}, #{limit}
</select>

1.2.2 查询帖子总数量

对应接口

int selectDiscussPostRows(@Param("userId") int userId);

注意事项

  1. 查询的是查未被删除的帖子,即status != 2。
  2. 如果userId不为0,表明要查询某个用户发布的帖子总数量,此时应该假设where条件判断。

对应SQL

<select id="selectDiscussPostRows" resultType="int">select count(*)from discuss_postwhere status != 2<if test="userId!=0">and user_id = #{userId}</if>
</select>

1.2.3 插入一条帖子记录

对应接口

int insertDiscussPost(DiscussPost discussPost);

注意事项

传入的是帖子对象

对应SQL

<insert id="insertDiscussPost" parameterType="DiscussPost" keyProperty="id">insert into discuss_post(<include refid="insertFields"></include>)values(#{userId},#{title},#{content},#{type},#{status},#{createTime},#{commentCount},#{score})
</insert>

1.2.4 根据帖子ID查询某条帖子

对应接口

DiscussPost selectDiscussPostById(int id);

注意事项

查询的是未被删除的帖子,所以status != 2。

对应SQL

<select id="selectDiscussPostById" resultType="DiscussPost">select <include refid="selectFields"></include>from discuss_postwhere status != 2 and id = #{id}
</select>

1.2.5 更新帖子评论数量

对应接口

int updateCommentCount(int id, int commentCount);

注意事项

更新帖子评论数量要和新增帖子放在同一个事务中,防止出现数据不一致问题。

对应SQL

<update id="updateCommentCount">update discuss_post set comment_count = #{commentCount} where id = #{id}
</update>

1.2.6 更新帖子类型

对应接口

int updateType(int id, int type);

注意事项

对应SQL

<update id="updateType">update discuss_post set type = #{type} where id = #{id}
</update>

1.2.6 更新帖子状态

对应接口

int updateStatus(int id, int status);

注意事项

对应SQL

<update id="updateStatus">update discuss_post set status = #{status} where id = #{id}
</update>

1.2.7 更新帖子分数

对应接口

int updateScore(int id, double score);

注意事项

对应SQL

<update id="updateScore">update discuss_post set score = #{score} where id = #{id}
</update>

2 用户表 user

2.1 字段描述

描述字段类型
用户ididint
用户名usernamevarchar(50)
用户密码passwordvarchar(50)
saltvarchar(50)
用户邮箱emailvarchar(100)
用户类型:0-普通用户; 1-超级管理员; 2-版主;typeint
用户状态:0-未激活; 1-已激活;statusint
注册用户的激活码activation_codevarchar(100)
用户头像header_urlvarchar(200)
用户创建时间create_timetimestamp

2.2 相关功能描述

2.2.1 根据用户ID查询用户

对应接口

User selectById(int id);

注意事项

对应SQL

<select id="selectById" resultType="User">select <include refid="selectFields"></include>from userwhere id = #{id}
</select>

2.2.2 通过用户名查询用户

对应接口

User selectByName(String username);

注意事项

对应SQL

<select id="selectByName" resultType="User">select <include refid="selectFields"></include>from userwhere username = #{username}
</select>

2.2.3 根据用户邮箱查询用户

对应接口

User selectByEmail(String email);

注意事项

对应SQL

<select id="selectByEmail" resultType="User">select <include refid="selectFields"></include>from userwhere email = #{email}
</select>

2.2.4 插入一条用户记录

对应接口

int insertUser(User user);

注意事项

对应SQL

<insert id="insertUser" parameterType="User" keyProperty="id">insert into user (<include refid="insertFields"></include>)values(#{username}, #{password}, #{salt}, #{email}, #{type}, #{status}, #{activationCode}, #{headerUrl}, #{createTime})
</insert>

2.2.5 更新用户状态

对应接口

int updateStatus(int id, int status);

注意事项

对应SQL

<update id="updateStatus">update user set status = #{status} where id = #{id}
</update>

2.2.6 更新用户头像

对应接口

int updateHeader(int id, String headerUrl);

注意事项

对应SQL

<update id="updateHeader">update user set header_url = #{headerUrl} where id = #{id}
</update>

2.2.7 更新用户密码

对应接口

int updatePassword(int id, String password);

注意事项

对应SQL

<update id="updatePassword">update user set password = #{password} where id = #{id}
</update>

3 登录凭证表 login_ticket

3.1 字段描述

描述字段类型
登录凭证ididint
用户id,谁的登录凭证user_idint
登录凭证字符串,一串UUID,保证每个登录用户不重复ticketvarchar(45)
0-有效; 1-无效;statusint
过期时间,一段时间后登录凭证会过期,用户需要重新登录expiredtimestamp

3.2 相关功能描述

3.2.1 插入一条登录凭证记录

对应接口

int insertLoginTicket(LoginTicket loginTicket);

注意事项

在插入一条登录凭证信息后需要将主键id回填,useGeneratedKeys = true, keyProperty = “id”
我觉得这个回填功能并没有使用到

对应SQL

@Insert({"insert into login_ticket(user_id,ticket,status,expired) ","values(#{userId},#{ticket},#{status},#{expired})"
})
// @Options(useGeneratedKeys = true, keyProperty = "id")  // 这个回填并没有被使用到。

3.2.2 根据凭证字符串查询登录凭证

对应接口

LoginTicket selectByTicket(String ticket);

注意事项

对应SQL

@Select({"select id,user_id,ticket,status,expired ","from login_ticket where ticket=#{ticket}"
})

3.2.3 根据凭证字符串修改对应登录凭证的状态

对应接口

int updateStatus(String ticket, int status);

注意事项

对应SQL

@Update({"<script>","update login_ticket set status=#{status} where ticket=#{ticket} ","<if test=\"ticket!=null\"> ","and 1=1 ","</if>","</script>"
})

以下是对代码的解释:

解释 MyBatis 注解中的 @Update 使用

这段代码是一个 MyBatis 框架中使用的数据库更新操作的注解定义。这里使用的是 MyBatis 的动态 SQL 特性来构造 SQL 更新语句。让我们逐一分析这个代码的组成部分:

  1. @Update 注解:

    • @Update 是用于标识一个方法执行数据库的更新操作(即 SQL 的 UPDATE 语句)。
    • 在大括号 {} 内部,你可以定义实际执行的 SQL 语句。
  2. 使用 <script> 标签:

    • <script> 标签在这里用来包围可能包含动态 SQL 部分的 SQL 语句。
    • MyBatis 使用 XML 类似的标签来处理动态 SQL 语句,即使在注解中也可以使用这些标签。
  3. 更新语句:

    • update login_ticket set status=#{status} where ticket=#{ticket} 是一个基础的 SQL 更新语句,它的作用是更新 login_ticket 表中的 status 字段。更新的条件是 ticket 字段等于方法参数 ticket 的值。
  4. 使用 <if> 标签进行条件判断:

    • <if test=\"ticket!=null\"> 是一个条件语句,用来检查输入参数 ticket 是否不为 null
    • 这里的条件实际上并没有改变 SQL 逻辑,因为 and 1=1 是一个总是为真的条件。这种写法通常用于测试或者作为编写更复杂逻辑的占位符。
  5. 方法签名:

    • int updateStatus(String ticket, int status); 这个方法接收两个参数:ticketstatus,并返回一个整型值,表示更新操作影响的行数。
    • 在 MyBatis 中,更新操作通常返回一个整数,表示 SQL 语句影响的行数。

总结来说,这段代码通过 MyBatis 注解定义了一个更新数据库中 login_ticket 表的操作。它使用动态 SQL 来确保只有当 ticket 不为 null 时才执行更新,虽然在这个特定的示例中,and 1=1 没有实际的过滤作用,更多的可能是为了展示如何在条件内部使用固定的真值条件。

4 评论表 comment

4.1 字段描述

描述字段类型
回帖/评论/回复ididint
用户id,这条回帖/评论/回复是谁发的user_idint
在哪个实体类型下面:1-帖子;2-回帖entity_typeint
实体identity_idint
被回复的用户id,0-不是回复,是回帖或评论,不为0-回复的用户idtarget_idint
回帖/评论/回复的内容contenttext
回帖/评论/回复的状态:0-正常;1-删除statusint
回帖/评论/回复的创建时间create_timetimestamp

可以这样理解:在帖子下的评论,和在评论下的评论
也可以按照下面的理解
在这里插入图片描述

在这里插入图片描述

以这三条数据为例

在这里插入图片描述

在这里插入图片描述

以下是另外一组数据:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述)

4.2 相关功能描述

4.2.1 分页查询某个帖子的回帖,查询某个回帖下的所有评论和回复

对应接口

List<Comment> selectCommentsByEntity(int entityType, int entityId, int offset, int limit);

注意事项

  1. 查询的回帖/评论/回复都是存在的,未被删除的,即 status = 0
  2. 当 entityType = 1:表示需要分页查询某个帖子下所有的回帖,此时会利用offset和limit参数
  3. 当 entityType = 2:表示需要查询某个回帖下的所有评论和回复,此时ofsset = 0, limit = Integer.MAX_VALUE

对应SQL

<select id="selectCommentsByEntity" resultType="Comment">select <include refid="selectFields"></include>from commentwhere status = 0and entity_type = #{entityType}and entity_id = #{entityId}order by create_time asclimit #{offset}, #{limit}
</select>

4.2.2 查询某条帖子的回帖数量,查询回帖下的评论和回复数量

对应接口

int selectCountByEntity(int entityType, int entityId);

注意事项

  1. 当 entiyType = 1:查询某条帖子的回帖数量,用于分页显示计算回帖页数。
  2. 当 entiyType = 2:查询回帖下的评论和回复数量,用于前端页面显示某条回帖下的评论和回复数量。

对应SQL

<select id="selectCountByEntity" resultType="int">select count(id)from commentwhere status = 0and entity_type = #{entityType}and entity_id = #{entityId}
</select>

4.2.3 插入一条comment记录(回帖/评论/回复)

对应接口

int insertComment(Comment comment);

注意事项

对应SQL

<insert id="insertComment" parameterType="Comment">insert into comment(<include refid="insertFields"></include>)values(#{userId},#{entityType},#{entityId},#{targetId},#{content},#{status},#{createTime})
</insert>

4.2.4 根据comment 的 id查询回帖/评论/回复

对应接口

Comment selectCommentById(int id);

注意事项

对应SQL

<select id="selectCommentById" resultType="Comment">select <include refid="selectFields"></include>from commentwhere id = #{id}
</select>

5 消息表 message

5.1 字段描述

消息ididint
消息发送方id:1-系统;大于1-用户idfrom_idint
消息接收方用户idto_idint
对话id或通知事件类型:小用户id_大用户id,表示是对话id;like/follow/comment,表示是通知事件类型conversation_idvarchar(45)
消息的内容contenttext
消息状态:0-未读;1-已读;2-删除;statusint
消息创建时间create_timetimestamp

在这里插入图片描述
在这里插入图片描述
可以这样理解:在帖子下的评论,和在评论下的评论
在这里插入图片描述

5.2 相关功能描述

5.2.1 分页查询某个用户的所有私信,按会话id分组,每组只有一条最新的私信

对应接口

List<Message> selectConversations(int userId, int offset, int limit);

注意事项

  1. 这个查询比较复杂,要嵌套查询,先查出每个会话最大的消息id,再查询这些消息id对应的完整的信息,按时间降序排序,只显示offset开始的limit条记录。
  2. 要选择未被删除的消息,所以status != 2
  3. 要选择的是私信,所以from_id != 1
  4. 要查的是user_id的对话信息,所以是from_id = #{userId} or to_id = #{userId}

对应SQL

<select id="selectConversations" resultType="Message">select <include refid="selectFields"></include>from messagewhere id in (select max(id) from messagewhere status != 2and from_id != 1and (from_id = #{userId} or to_id = #{userId})group by conversation_id)order by id desclimit #{offset}, #{limit}
</select>

5.2.2 根据userId,查询某个用户所有会话的数量

对应接口

int selectConversationCount(int userId);

注意事项

  1. 用于分页显示用户会话
  2. 要选择未被删除的消息,所以status != 2
  3. 要查询的是会话的数量,所以from_id != 1
  4. 要查的是user_id的对话信息,所以是from_id = #{userId} or to_id = #{userId}

对应SQL

我觉得直接使用这个SQL要比课程里面的要好。

select count(*) from message
where status != 2
and from_id != 1
and (from_id = 111 or to_id = 111)
group by conversation_id

5.2.3 根据conversation_id查询消息列表

对应接口

int selectLetterCount(String conversationId);

注意事项

对应SQL

我觉得这里不用写from_id != 1

<select id="selectLetterCount" resultType="int">select count(id)from messagewhere status != 2// and from_id != 1  and conversation_id = #{conversationId}
</select>

5.2.4 查询某个用户未读消息数量,查询某个用户的某个会话id下的未读消息数量

对应接口

int selectLetterUnreadCount(int userId, String conversationId);

注意事项

  1. 是查询未读消息,消息发送发一定是已读的,所以要用to_id筛选
  2. 未读消息,status = 0

对应SQL

<select id="selectLetterUnreadCount" resultType="int">select count(id)from messagewhere status = 0and from_id != 1and to_id = #{userId}<if test="conversationId!=null">and conversation_id = #{conversationId}</if>
</select>

5.2.5 新增一条消息记录

对应接口

 int insertMessage(Message message);

注意事项

  1. 如果是私信,由程序执行,同步添加
  2. 如果是通知,由消息队列,然后异步添加

对应SQL

<insert id="insertMessage" parameterType="Message" keyProperty="id">insert into message(<include refid="insertFields"></include>)values(#{fromId},#{toId},#{conversationId},#{content},#{status},#{createTime})
</insert>

5.2.6 根据消息ids,修改一批消息的状态

对应接口

int updateStatus(List<Integer> ids, int status);

注意事项

对应SQL

<update id="updateStatus">update message set status = #{status}where id in<foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
</update>

5.2.7 查询某个用户的,某个通知事件类型的,一条最新通知

对应接口

Message selectLatestNotice(int userId, String topic);

注意事项

  1. 要查询的是通知,所以from_id = 1
  2. 不能是已经删除的通知,所以status != 2
  3. 查询某个用户的通知,所以to_id = #{userId}

对应SQL
也可以按时间降序排序,然后limit 1,只返回1条,就是最新的那条通知

<select id="selectLatestNotice" resultType="Message">select <include refid="selectFields"></include>from messagewhere id in (select max(id) from messagewhere status != 2and from_id = 1and to_id = #{userId}and conversation_id = #{topic})
</select>

5.2.8 查询某个用户的,某个通知事件类型的,通知数量

对应接口

int selectNoticeCount(int userId, String topic);

注意事项

  1. 要查询的是通知,所以from_id = 1
  2. 不能是已经删除的通知,所以status != 2
  3. 查询某个用户的通知,所以to_id = #{userId}

对应SQL

<select id="selectNoticeCount" resultType="int">select count(id) from messagewhere status != 2and from_id = 1and to_id = #{userId}and conversation_id = #{topic}
</select>

5.2.9 查询某个用户的未读通知数量,查询某个用户的某个通知事件类型的未读通知数量

对应接口

int selectNoticeUnreadCount(int userId, String topic);

注意事项

对应SQL

<select id="selectNoticeUnreadCount" resultType="int">select count(id) from messagewhere status = 0and from_id = 1and to_id = #{userId}<if test="topic!=null">and conversation_id = #{topic}</if>
</select>

5.2.10 分页查询某个用户的,某个通知事件类型的通知

对应接口

List<Message> selectNotices(int userId, String topic, int offset, int limit);

注意事项

按照时间降序排序。

对应SQL

<select id="selectNotices" resultType="Message">select <include refid="selectFields"></include>from messagewhere status != 2and from_id = 1and to_id = #{userId}and conversation_id = #{topic}order by create_time desclimit #{offset}, #{limit}
</select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2980683.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【七】jmeter5.5+influxdb2.0+prometheus+grafana

参考文章&#xff1a;https://blog.csdn.net/wenxingchen/article/details/126892890 https://blog.csdn.net/Zuo19960127/article/details/119726652 https://blog.csdn.net/shnu_cdk/article/details/132182858 promethus参考 由于自己下载的是infuldb2.0&#xff0c;所以按照…

云Docker部署Guacamole经frp中转远程连接Windows

安装frps sudo nohup ./frps -c frps.ini >/dev/null 2>&1 & frps.ini [common] bind_port 7000# Virtual host configuration vhost_http_port 80 vhost_https_port 443# Dashboard configuration dashboard_addr 0.0.0.0 dashboard_port 7500 dashboar…

自然语言处理 (NLP) 的技术演变史

一、简述 本文的目标是了解自然语言处理 (NLP) 的历史&#xff0c;包括 Transformer 体系结构如何彻底改变该领域并帮助我们创建大型语言模型 (LLM)。 基础模型&#xff08;如 GPT-4&#xff09;是最先进的自然语言处理模型&#xff0c;旨在理解、生成人类语言并与之交互。 要理…

FebHost:科技企业如何规划并注册.AI域名?

为确保企业使用.AI域名的方式准确反映其对人工智能技术的关注&#xff0c;企业应考虑以下步骤&#xff1a; 了解法律和合规要求&#xff1a; 第一步是了解与 .AI 域名相关的独特法律和合规要求。由于.AI域名源于安圭拉&#xff0c;企业必须遵守安圭拉的限制和法律规定。这包括…

(Oracle)SQL优化案例:组合索引优化

项目场景 项目上的ETL模型里有如下SQL语句。执行速度非常慢&#xff0c;每次只查询200条数据&#xff0c;但却需要20多秒的时间。再加上该SQL查询出的数据同步频率很高&#xff0c;这个速度是完全不能忍受的。 因为项目隐私&#xff0c;所以对表及字段做了改写。 SELECT ID…

服务器(AIX、Linux、UNIX)性能监视器工具【nmon】使用介绍

目录 ■nmon简介 1.安装 2.使用简介 3.使用&#xff08;具体使用的例子【CPU】【内存】&#xff09; 4.采集数据 5.查看log&#xff08;根据结果&#xff0c;生成报表&#xff09; 6.分析结果 ■nmon简介 nmon&#xff08;"Nigels performance Monitor"&…

Laravel 6 - 第十一章 中间件

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

[论文笔记] EcomGPT:COT扩充数据的电商大模型

社区供稿 | EcomGPT:基于任务链数据的电商大模型(附魔搭推理实践) - 知乎 https://arxiv.org/pdf/2312.15696.pdf EcomInstruct指令数据集构建 数据集组成 COT方式构造垂域训练数据:把原本的垂域任务分解成了原子任务,构造了基于解决原子任务的数据。这样能用类似…

【深度学习】yolo-World,数据标注,zeroshot,目标检测

仓库&#xff1a;https://github.com/AILab-CVC/YOLO-World 下载权重&#xff1a; 仓库下载和环境设置 下载仓库&#xff1a;使用以下命令从 GitHub 上克隆仓库&#xff1a; git clone --recursive https://github.com/AILab-CVC/YOLO-World.git创建并激活环境&#xff1a…

vuetify3.0+tailwindcss+vite最新框架

1、根据vuetify官网下载项目 安装vuetify项目 2、根据tailwindcss官网添加依赖 添加tailwindcss依赖 3、 配置main.ts // main.ts import "./style.css"4、使用 <template><h1 class"text-3xl font-bold underline">Hello world!</…

【前后端】django与vue的结合使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、前后端分离的简介二、django与vue的结合使用三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些开发工具&a…

信息系统项目管理师0065:部署交付(5信息系统工程—5.1软件工程—5.1.5部署交付)

点击查看专栏目录 文章目录 5.1.5部署交付1.软件部署与交付2.持续交付3.持续部署4.部署与交付的新趋势5.1.5部署交付 软件开发完成后,必须部署在最终用户的正式运行环境,交付给最终用户使用,才能为用户创造价值。传统的软件工程不包括软件部署与交付,但不断增长的软件复杂度…

利用Spring中的SchedulingConfigurer实现数据库配置化定时任务

目录 1.利用Scheduled来实现传统的定时任务 2.两者的区别 3.Spring中的SchedulingConfigurer来拓展定时任务的灵活性 1&#xff09;UrTaskConfig 2&#xff09;TaskMain 3&#xff09;BaseTask 4&#xff09;效果 &#xff08;1&#xff09;插入配置定时任务的sql语句 …

windows10开机自动启动 - 添加启动项 - 设置软件自动启动

前言 无需安装额外软件&#xff0c;可手动决定开机自动启动什么软件。 步骤 1&#xff09;开始&#xff0c;运行"shell:startup"&#xff0c;即可打开自启动目录 shell:startup 2&#xff09;将软件的快捷方式 扔进去&#xff0c;ok&#xff01; 3&#xff09;重启…

【大语言模型LLM】- Meta开源推出的新一代大语言模型 Llama 3

&#x1f525;博客主页&#xff1a;西瓜WiFi &#x1f3a5;系列专栏&#xff1a;《大语言模型》 很多非常有趣的模型&#xff0c;值得收藏&#xff0c;满足大家的收集癖&#xff01; 如果觉得有用&#xff0c;请三连&#x1f44d;⭐❤️&#xff0c;谢谢&#xff01; 长期不…

“五之链”第十六期沙龙活动在呆马科技成功举办

2024年4月19日&#xff0c;由临沂呆码区块链网络科技有限公司&#xff08;呆马科技&#xff09;承办的第十六期“五之链”物流主题沙龙活动成功举办。此次活动邀请了政府相关部门、知名科研院所、物流企业等20余家单位参与&#xff0c;共同探讨物流数据要素流通与智能应用的发展…

2024深圳杯数学建模挑战赛B题:批量工件并行切割下料问题思路代码成品论文分析

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓ https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 问题重述 深圳杯数学建模挑战赛2024B题&#xff1a;批量工件并行切割下料问题 板材切割下料是工程机械领域重要…

信息系统项目管理师0066:过程管理(5信息系统工程—5.1软件工程—5.1.6过程管理)

点击查看专栏目录 文章目录 5.1.6过程管理1.成熟度模型2.成熟度等级5.1.6过程管理 软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。软件过程能力成熟度是指组织在提升软件产…

一个docker配置mysql主从服务器

这也就是因为穷&#xff0c;不然谁用一个docker配置主从&#xff0c;哈哈 既然成功了就记录下。过程挺折磨人的。 首先要保证你的电脑安装好了docker 为了保证docker当中主从能正常连网&#xff0c;现在docker里面创建一个网络环境 docker network create --driver bridge mysq…

开曼群岛:Web3企业的乐园

开曼群岛&#xff1a;Web3企业的理想之地 开曼群岛&#xff0c;在数字革命中大放异彩。近年来&#xff0c;该地区成立的Web3企业数量显著增加&#xff0c;如果保持目前的发展速度&#xff0c;并持续优化立法&#xff0c;那么扩展的速度将无可限量。本文将探讨推动这一增长的关…