超简单spring、springmvc和hibernate整合的列子

EmployeeService:Spring、Spring MVC、RESTful、Hibernate、MySQL 员工服务 REST、Spring、Spring MVC、Hibernate、MySQL 如何运行: 从github下载并打开这个项目。 使用“mvn idea:idea”在 Intellij Idea 中创建项目 为您的数据库更改 database.properties。 默认情况下,它将是:名称“test”,用户名 - “root”和密码 - “132435” 在控制台中将测试数据插入数据库。 您可以在 EmployeeService/src/main/resources/testDataForDatabase.txt 中找到它 使用“mvn tomcat7:deploy -Dtomcat.username=YOUR_USERNAME -Dtomcat.password=YOUR_PASSWORD”在 tomcat 服务器中部署这个应用程序。 或者从 tomcat 管理器页面部署 立即下载

作为一个初学者,在网上找了很久都没有找到一个简单的例子。最终自己看明白了写出了一个。贴在这里,

首先是项目结构


超简单的结构,只是基本实现了mvc,hibernate/spring事务的使用。

基本实现为在index.jsp里点击一个按钮,将数据提交至后台的controller,然后对数据库进行操作,然后返回前台qiuqiu.jsp数据。


实现步骤1:

1: 建立工程,加入所有jar包
2:配置mvc
1)配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>Tests</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<!-- spring加载多个配置文件是就要配置 context-param实际上是个键值对,作为项目的一个上下文对象 
而spring的监听器ContextLoaderListener加载时,会查找名为contextConfigLocation的参数 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value> classpath*:com/gaoyajun/spring/xmls/*.xml</param-value>
	</context-param>
	<!-- 配置Spring监听 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	 <load-on-startup>1</load-on-startup>  
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	<!-- 配置Session -->  
  <filter>  
    <filter-name>openSession</filter-name>  
    <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>  
  </filter>  
  <filter-mapping>  
    <filter-name>openSession</filter-name>  
    <url-pattern>/*</url-pattern>  
  </filter-mapping>  
</web-app>  
	
2)配置springmvc-servlet.xml 主要就是视图解析器和扫描器
这个简单项目除了这两个东西没有任何别的。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<div yne-bulb-block="paragraph" style="white-space: pre-wrap; line-height: 1.875; font-size: 14px;"><!--视图解析器配置--></div>
<bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<div yne-bulb-block="paragraph" style="white-space: pre-wrap; line-height: 1.875; font-size: 14px;"><!-- mvc扫描器--></div>
<mvc:annotation-driven/>
<context:component-scan base-package="com"></context:component-scan>
</beans>
当配置完这里,一个mvc的框架都配置成功了。在建立一个控制器一个前端jsp基本就可以获取到前后端通信了。
控制器:TestController
package com.gaoyajun.spring.conroller;

import java.util.HashMap;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.gaoyajun.spring.dao.UserDao;
import com.gaoyajun.spring.entity.User;

@Controller
public class TestController {
	 @Resource(name="userDao")  
	    private UserDao userdao;  
	@RequestMapping(value="/love.do",method=RequestMethod.POST)//注解的方式,将访问这个方法的地址设置为love.do
	public  ModelAndView add(User user){//使用对象的方式
		ModelAndView mdv=new ModelAndView("qiuqiu");//最终要返回数据的目标jsp
		System.out.println("获得数据");
		System.out.println(user);
		userdao.addUser(user);
		return mdv;
	}
	@RequestMapping(value="/love1.do",method=RequestMethod.POST)
	public  ModelAndView query(User user){//查询的方法,
		   Map<String,Object> data = new HashMap<String,Object>();
		   user= userdao.getUser("1");
		     data.put("user",user);
		
		
		return new ModelAndView("qiuqiu2",data) ;
	}
}
此处为控制器,主要是与前端进行交互,一开始没有搞懂其他的首先做的是弄通mvc,类里面只有如下的一个简单方法没有User等实体类,方法很简单纯粹用于测试的:
@RequestMapping(value="/love0.do",method=RequestMethod.POST)
	public  String Test(<span style="font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px;">String name</span><span style="white-space: pre-wrap; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px;">,String age,Model model</span><span style="white-space: pre-wrap; font-family: Arial, Helvetica, sans-serif;"> ){//查询的方法,</span><pre name="code" class="java" style="font-size: 14px; line-height: 26.25px;">		<span style="font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">    model.addAttribute(</span><span class="string" style="margin: 0px; padding: 0px; border: none; color: blue; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">"name"</span><span style="margin: 0px; padding: 0px; border: none; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">, name);  </span>
		<span style="white-space: pre-wrap; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">model.addAttribute(</span><span class="string" style="white-space: pre-wrap; margin: 0px; padding: 0px; border: none; color: blue; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">"age"</span><span style="white-space: pre-wrap; margin: 0px; padding: 0px; border: none; font-family: Consolas, 'Courier New', Courier, mono, serif; line-height: 18px; background-color: rgb(248, 248, 248);">, age); </span>

		return "qiuqiu";//返回数据至qiuqiu.jsp
;}

然后写一个qiuqiu.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
获取的参数是<a>${name}</a>
获取的参数是<a>${age}</a>
</body>
</html>
基本到这里实现了一个简单的springmvc的框架。
然后向里面添加hibernate以及spring事务
3 配置hibernate,spring事务,基本主要就是配置一个xml文件。spring-common.jsp
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
<!-- 此xml用于连接数据库设置事务等公用方式 -->
 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >  
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
        <property name="url" value="jdbc:mysql://localhost/test"></property>  
        <property name="username" value="root"></property>  
        <property name="password" value="root"></property>  
    </bean>  
      
    <!-- 配置SessionFactory -->  
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <property name="hibernateProperties">  
            <props>  
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
                <prop key="hibernate.hbm2ddl.auto">update</prop>  
                <prop key="hibernate.show_sql">true</prop>  
                <prop key="hibernate.format_sql">true</prop>  
            </props>  
        </property>  
        <!--注解的实体  -->
        <property name="annotatedClasses">  
            <list>  
                <value>com.gaoyajun.spring.entity.User</value>  
            </list>  
        </property>  
    </bean>  
    <!-- 配置一个事务管理器 -->  
    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory"/>  
    </bean>  
      
    <!-- 配置事务,使用代理的方式 -->  
    <bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">    
         <!-- 为事务代理工厂Bean注入事务管理器 -->
        <property name="transactionManager" ref="transactionManager"></property>    
         <property name="target" ref="userDao" />
        <property name="transactionAttributes">    
            <props>    
               <prop key="*">PROPAGATION_REQUIRED </prop>   
            </props>    
        </property>    
    </bean>   
    <bean id="userDaoBase" class="com.gaoyajun.spring.dao.impl.UserDaoImpl">  
        <property name="sessionFactory" ref="sessionFactory"></property>  
    </bean>
<!--注意这里的userDao,在上面transactionManager的target的指向其实是这个bean,这个是spring的事务的配置,为bean添加同一的事务管理-->

 <bean id="userDao" parent="transactionProxy">   
 <property name="target" ref="userDaoBase" />   
 </bean>   
</beans>

然后再配置完成后开始做简单的数据库的交互
第一步,添加用户,先写一个用户表的实体user.java
package com.gaoyajun.spring.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity  
@Table(name="T_USER")  
public class User {
	  @Id  
	  @GeneratedValue(generator="system-uuid")  
	  @GenericGenerator(name = "system-uuid",strategy="uuid")  
	   @Column(length=32) 
	private String id;
	  @Column(length=32)  
	private String name;
	  @Column(length=32)  
	private String age;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
}
然后再写用户类的操作的类
UserDao,以及实现类UserDaoImpl,
package com.gaoyajun.spring.dao;


import com.gaoyajun.spring.entity.User;

public interface  UserDao {
public User getUser(String id);
public boolean updateUser(User user);  
public void addUser(User user);
}

package com.gaoyajun.spring.dao.impl;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;

import com.gaoyajun.spring.dao.UserDao;
import com.gaoyajun.spring.entity.User;

public class UserDaoImpl implements UserDao {
	   private SessionFactory sessionFactory;  
	   
	    public void setSessionFactory(SessionFactory sessionFactory) {  
	        this.sessionFactory = sessionFactory;  
	    }  
	@Override
	public User getUser(String id) {
		   String hql = "from User u where u.id=?";  
	        Query query = sessionFactory.getCurrentSession().createQuery(hql);  
	        query.setString(0, id);  
	        return (User)query.uniqueResult();  		
	}

	@Override
	public boolean updateUser(User user) {
		 sessionFactory.getCurrentSession().save(user);  
		return false;
	}
	@Override
	public void addUser(User user) {		
		 sessionFactory.getCurrentSession().save(user);  
		
	}

}
然后再看前端
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="love.do" method="post">
<input value="李四" name="name">
<input  value="二十" name="age">
<input type="submit" value="提交">
</form>
</body>
</html>

流程为工程启动,进入index.jsp。点击提交,进入love.do,然后在userDao里保存数据至数据库。








Spring+SpringMVC+hibernate完美整合包 Spring+SpringMVC+hibernate完美整合,你需要的包都在这里,直接用 立即下载

相关推荐

springMVC + hibernate(spingMvc和hibernate整合)

本项目采用Spring3.2 和 Hibernate4.1.10 搭建的springMVC + hibernate 例子里有简单的增加和查询 数据库采用mysql 注意事务管理的时候 数据库表的引擎类型必须是InnoDB的否则事务可能会不起作用 本项目只是初步的框架搭建,里面有简单的例子,希望能给你的入门带来帮助

ssh整合:spring+springmvc+hibernate

ssh整合:spring+springmvc+hibernate

跟着宝哥学java的博客 1657

SpringMVC+Hibernate+Spring整合实例

SpringMVC+Hibernate+Spring整合实例源码下载,很完整的例子,需要的可以下载源码学习

SpringMVC与hibernate整合简介

SpringMVC:它是属于Spring基本架构里面的一个组成部分,SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。   SpringMVC 是类似于 Struts2 的一个 MVC 框架,在实际开发中,接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示,但是上手难度却比 Str...

潇洒不放纵的博客 1743

SpringMVC和Hibernate整合所需的jar包

SpringMVC和Hibernate整合所需的jar包,基本已经满足了日常所需

springmvc与hibernate整合

springmvc与hibernate整合,包含spring的事务处理

【Java】spring+springmvc+hibernate最完整整合配置教程

【Java】spring+springmvc+hibernate最完整整合配置教程。SpringMVC只扫描Controller和ControllerAdvice。Spring排除扫描Controller和ControllerAdvice。

只恨天高的博客 1879

基于WEKWS模型的语音唤醒关键词识别

本文所使用的模型网络结构继承自论文《Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting》,文中研究了将低秩矩阵分解与传统FSMN相结合的紧凑型前馈顺序记忆网络(cFSMN)用于远场关键字检测任务。

YuZhou的博客 6595

Spring+SpringMVC+Hibernate整合

前言: 1. 用于配置Spring的 .xml 插件 为了编写时有一些提示、自动生成一些配置信息,可以给 eclipse增加支持 spring的插件:spring tool suite,https://spring.io/tools/sts/all,下载然后安装(不推荐这种方式,容易出错) 插件版本尽量保持与 eclipse版本一致。如果插件版本没有与eclipse一样的,那么更新eclipse对应的版本 直接下载sts工具(相当于一个集合了spring tools的Eclipse):https://

qq_43401941的博客 2144

Linux虚拟机mysql安装教程(详细步骤)出现了一个错误:依赖检测失败

Linux虚拟机安装mysql的详细步骤(有报错预警哦)

m0_74953387的博客 5257

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

SpringMVC和Hibernate整合

hibernate由spring管理,配置文件如下: applicationContext.xml [html] view plaincopy xml version="1.0" encoding="UTF-8"?>   beans xmlns="http://www.springframework.org/schema/beans"     

w2222288的专栏 587

ADS2023实战:2.4GHz超外差接收机从设计到链路预算全流程解析

本文以ADS 2023软件为平台,详细解析了2.4GHz超外差接收机从核心指标定义、架构原理到完整链路搭建与仿真的全流程。通过实战演练,重点阐述了如何利用ADS进行谐波平衡仿真和链路预算分析,以量化评估系统增益、噪声系数等关键性能,为射频工程师提供了一套从理论到仿真的系统级设计方法。

herb5的博客 817

springmvc整合jbpm,终于成功了

在往上看了很多关于spring与jbpm整合的列子,搞了两天,今天终于把jbpm与springmvc整合成功了,哈哈~~~,整个过程中这样那样的错误不断产生,弄得头大,最后把juel-api.jar、juel-api.jar、juel-engine.jar放到tomcat6下,网上说juel-api.jar会与tomcat6的 el-api.jar冲突。目前还没发生错误,就算万事大吉了,到时如果...

430

一文学会python基础知识

1. python 运行环境 1.1 脚本式环境 1.2 交互式环境 2. python 注释 3. 变量及变量命名 4. 关键词 BIFS 5. 标准操作符 6. 条件判断 7. 循环 8. python 数据类型 9. python 序列 9.1 序列-字符串(str) 9.2 序列-列表 9.3 序列-元组 10. 字典 11. 集合 12. python内存管理及可变、不可变对象 13. 函数 13.1 函数参数 13.2 return and yiled(生成器) 13.3 参数传递处理 ...

weixin_43178406的博客 26万+

UGUI合批杀手:Mask/RectMask2D为何必断合批?

颜色缓冲负责记录像素颜色;模板缓冲负责记录“这个像素的模板值”(一个小整数);渲染时,你可以设定:只有模板值为 X 的地方才允许画;或者往某些区域写特定的模板值。类似于:先拿一支隐形笔在纸上画出一块区域,给它记一个编号“1”,后面的涂色动作只允许涂在“编号为1”的区域上。合批的前提:渲染状态不变,连续元素能一口气画完。材质、贴图、混合模式、Stencil、裁剪区域……都得一致。Mask / RectMask2D 的本质:在渲染状态上加规则——“只在某个区域内允许写像素”。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 118

spring,springMvc和hibernate整合

一:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocati...

weixin_30699831的博客 111

蓝牙攻防实战:蓝牙技术详解

蓝牙作为轻量级、低功耗的无线通信技术,其设计兼顾了效率与灵活性,但也留下了诸多安全隐患。随着物联网设备的爆发式增长,蓝牙的攻击面也在不断扩大。理解其底层通信机制、协议栈结构以及配对加密逻辑,是提升无线安全防护能力的关键。

idlecloud0105的博客 739

框架篇:Spring+SpringMVC+hibernate整合开发

&nbsp; 前言:   最近没什么事做,搭个框架写成博客记录下来,拉通一下之前所学知识.   话不多说,我们直接步入正题。   准备工作:      1/安装并配置java运行环境      2/数据库的安装配置(Mysql)      3/安装并配置服务器(Tomcat)      4/Maven      5/ IntelliJIDEA的安装配置(本人使用的主要软件是IntelliJIDEA...

sunshine的博客 419

【ArcGIS Pro微课1000例】0065:制作千层饼多图层叠加效果

右键dem图层,点击符号系统,在右侧的符号系统窗口中,选择拉伸,勾选【显示名称】和【显示全部】,选择高程色带7。由于数据具有高程源,因此可以将数据进行三维显示。右键地面→添加高程源图层。打开ArcGIS PRo,新建一个局部场景,命名为千层饼。设置了高程源数据之后,千层饼一下子就变成了三维形状。数据默认都是在一个平面上,以默认的符号系统显示。到此为止,每个图层均为平面的千层饼已经做好了。将TIN图层的高程偏移设置为-1000。最后将等高线的高程设为2000.移除工程默认加载的图层。默认即可,不需要做修改。

智慧空间实验室 1155

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

springMVC 和 hibernate整合

转载于:https://my.oschina.net/u/2356176/blog/469499

chenyilu4848的博客 134

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

手把手搭建spring MVC+spring+hibernate

1.新建一个web项目,添加所需要的jar包,修改web.xml配置文件 dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/hib-c

全敏的专栏 1771

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【项目推荐】基于 SpringBoot3 + Spring AI 的游泳馆管理系统:Agent + RAG + Function Calling 一次学全

它不是玩具 Demo,而是一个「业务 + AI」双主线交织的真实系统——预约业务在跑,AI 客服在旁边实时查库作答,两条线通过 Function Calling、RAG、站内消息串成一体。面试官问「你做过什么 AI 项目」时,你能从业务场景讲到架构取舍,从 RAG 切分参数讲到降级兜底——这和「我调了一下 ChatGPT 的 API」是完全不同的两个段位。项目已包含完整的建表 SQL、初始化数据、部署文档,克隆下来就能跑。获取方式:见文末说明 / 后台回复关键词获取。—— 完 ——

深耕开发,专注编程实战。分享源码解析、项目搭建、问题排查笔记,沉淀技术,持续更新。 347

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 64
下一篇: mybatis中使用log4j的全部设置
SEXYException
博客等级 码龄11年 1粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值