springMVC +spring +hibrnate集成

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/45038301

项目结构:

 

web.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<!-- tomcat对里面的加载顺序:Context-Param—->Listener—->filter—->servlet -->
	<!-- 加载所有的配置文件 -->
	<context-param>
	      <param-name>contextConfigLocation</param-name>
	      <param-value>classpath*:config/spring-*.xml</param-value>
	</context-param>
	
	<!-- 配置Spring监听器 -->
	<listener>
	      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- 配置字符集 -->
	<filter>
	   <filter-name>encodingFilter</filter-name>
	   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	    <init-param>
	       <param-name>encoding</param-name>
	       <param-value>UTF-8</param-value>
	    </init-param>
	</filter>
	<filter-mapping>
	    <filter-name>encodingFilter</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- 配置Session -->
	  <filter>
	      <filter-name>openSession</filter-name>
	      <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
	      <init-param>
	          <param-name>sessionFactoryBeanName</param-name>
	          <param-value>sessionFactory</param-value>
	      </init-param>
	  </filter>
	
	<filter-mapping>
	    <filter-name>openSession</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- 配置SpringMVC -->
	<servlet>
	     <servlet-name>springMVC</servlet-name>
	     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	     <init-param>
	         <param-name>contextConfigLocation</param-name>
	         <param-value>classpath*:config/spring-mvc.xml</param-value>
	     </init-param>
	</servlet>
	<servlet-mapping>
	   <servlet-name>springMVC</servlet-name>
	   <url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	
	<!-- 引用js,如果无此配置,则无法对js进行加载 -->
		<servlet-mapping>
		    <servlet-name>default</servlet-name>
		    <url-pattern>*.js</url-pattern>
		</servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
spring-beans.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:context="http://www.springframework.org/schema/context"  
xmlns:mvc="http://www.springframework.org/schema/mvc"  
xsi:schemaLocation="http://www.springframework.org/schema/beans   
http://www.springframework.org/schema/beans/spring-beans.xsd">  

<bean id="userDao" class="com.springmvc.dao.UserDaoImpl">
   <property name="sessionFactory" ref="sessionFactory"></property>
</bean>
   <bean id="userManagerBase" class="com.springmvc.service.UserManagerImpl">
       <property name="userDao" ref="userDao"></property>
   </bean>
   <bean name="userManager" parent="transactionProxy">
       <property name="target" ref="userManagerBase"></property>
   </bean>


</beans>
集成hibernate的配置文件spring-common.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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans   
http://www.springframework.org/schema/beans/spring-beans.xsd">



<!-- 配置数据源 -->
<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/mydata"></property>
     <property name="username" value="root"></property>
     <property name="password" value="123456"></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.springmvc.entity.User</value>
              </list>
          </property>             
      </bean>
      
        <!-- 配置一个事务管理 -->
        <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
           <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>
      <!-- 配置事务,使用代理的方式 -->
      <bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
        <property name="transactionManager" ref="transactionManager"></property>
        <property name="transactionAttributes">
           <props>
                  <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
                  <prop key="modify*">PROPAGATION_REQUIRED,-myException</prop>
                  <prop key="del*">PROPAGATION_REQUIRED</prop>
                  <prop key="*">PROPAGATION_REQUIRED</prop>
           </props>
        </property>
      </bean>
       
</beans>

springmvc的配置文件spring-mvc.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:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context-3.0.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
                    
      <!-- 注解扫描包 -->              
                    <context:component-scan base-package="com.springmvc.*"></context:component-scan>
         <!-- 开启注解 -->
                    <mvc:annotation-driven/>
          <!-- 静态资源的访问 -->
         
       <!-- <mvc:resource location="/js/" mapping="/js/**"></mvc:resource>-->
          
          <!-- 定义视图解析器 -->
          <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
              <property name="prefix" value="/WEB-INF/jsp/"></property>
              <property name="suffix" value=".jsp"></property>
          </bean>
          
 </beans>
实体类:

package com.springmvc.entity;

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

import org.hibernate.annotations.GenericGenerator;


@Entity
@Table(name="T_USER")
public class User {
    
	

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id")
	private Integer id;
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	private String userName;
	
	private String age;
	
	
	

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
}
持久层dao接口:
package com.springmvc.dao;

import java.util.List;

import com.springmvc.entity.User;

public interface  UserDao {
      public User getUser(Integer id);
      public List<User> getAllUser();
      public void addUser(User user);
      public boolean delUser(Integer id);
      public boolean updateUser(User user);
}

dao实现类:
package com.springmvc.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;

import com.springmvc.entity.User;

public class UserDaoImpl implements UserDao {

	private SessionFactory sessionFactory;
	
	
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	/**
	 * 添加用户
	 */
	public void addUser(User user) {
		sessionFactory.getCurrentSession().save(user);
	}

	/**
	 * 根据用户id删除用户
	 */
	public boolean delUser(Integer id) {
		String hql="delete User u where u.id=?";
	    Query query=sessionFactory.getCurrentSession().createQuery(hql);
	   // query.setString(0,id);
	    query.setInteger(0,id);
		return (query.executeUpdate()>0);
	}

	/**
	 * 查询所有用户
	 */
	@SuppressWarnings("unchecked")
	public List<User> getAllUser() {
		String hql="from User";
	    Query quesy=sessionFactory.getCurrentSession().createQuery(hql);
		return quesy.list();
	}

	
	/**
	 * 根据用户id查询s
	 */
	public User getUser(Integer id) {
		String hql="from User u where u.id=?";
	    Query query=sessionFactory.getCurrentSession().createQuery(hql);
	    //query.setString(0, id);
	    query.setInteger(0,id);
		return (User)query.uniqueResult();
	}

	/**
	 * 编辑用户
	 */
	public boolean updateUser(User user) {
		String hql="update User u set u.userName=?,u.age=? where u.id=?";
	    Query query=sessionFactory.getCurrentSession().createQuery(hql);
		query.setString(0,user.getUserName());
	    query.setString(1,user.getAge());
	    query.setInteger(2, user.getId());
	    //query.setString(2, user.getId());
	   return (query.executeUpdate()>0);
	}

}
service业务层接口:

package com.springmvc.service;

import java.util.List;

import com.springmvc.entity.User;

public interface UserManager {
      public User getUser(Integer id);
      public List<User> getAllUser();
      public void addUser(User user);
      public boolean delUser(Integer id);
      public boolean updateUser(User user);
}

service层实现类:

package com.springmvc.service;

import java.util.List;

import com.springmvc.dao.UserDao;
import com.springmvc.entity.User;

public class UserManagerImpl implements UserManager {

	private UserDao userDao;
	
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void addUser(User user) {
		userDao.addUser(user);
	}

	@Override
	public boolean delUser(Integer id) {
		
		return userDao.delUser(id);
	}

	@Override
	public List<User> getAllUser() {
		
		return userDao.getAllUser();
	}

	@Override
	public User getUser(Integer id) {
		return userDao.getUser(id);
	}

	@Override
	public boolean updateUser(User user) {
		
		return userDao.updateUser(user);
	}

}

controller控制层:
package com.springmvc.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.springmvc.entity.User;
import com.springmvc.service.UserManager;


@Controller
@RequestMapping("/user")
public class UserController {
   
	@Resource(name="userManager")
	private UserManager userManager;   
	
	
	@RequestMapping("/login.do")
	public String toLogin(){
		return "Login";
	}
	
	@RequestMapping("/getAllUser.do")
	public String getAllUser(Model model){
		 model.addAttribute("userList", userManager.getAllUser());
		return "/Index";
	}
	
	@RequestMapping("/getUser.do")
	public String getUser(int id,HttpServletRequest request){
		request.setAttribute("user",userManager.getUser(id));
		return "editUser";
	}
	
	@RequestMapping("/toAddUser.do")
	public String toAddUser(){
	    return "/addUser";	
	}
	
	@RequestMapping("/addUser")
	public String addUser(User user,HttpServletRequest request){
		System.out.println("用户名:"+user.getUserName());
		userManager.addUser(user);
		return "redirect:/user/getAllUser.do";
	}
	
	@RequestMapping("/delUser.do")
	public void delUser(int id,HttpServletResponse response){
		String result="{\"result\":\"error\"}";
		if(userManager.delUser(id)){
			result="{\"result\":\"success\"}";
		}
		response.setContentType("application/json");
	   try {
		  PrintWriter out=response.getWriter();
		   out.write(result);
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	  
	}
	
	@RequestMapping("/updateUser.do")
	public String updateUser(User user,HttpServletRequest request){
		if(userManager.updateUser(user)){
		    user=userManager.getUser(user.getId());
		    request.setAttribute("user",user);
		    return "redirect:/user/getAllUser.do";
		}else{
			return "/error";
		}
		
	}
	
}

视图页面:login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Login.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
     <h4><a href="<%=request.getContextPath()%>/user/getAllUser.do">点击进入用户管理页面</a></h4>
  </body>
</html>
列表页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Index.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
    <script type="text/javascript">
            function del(id){
                      if(confirm("你确定要删除吗?")){
                          $.get(
                             "user/delUser.do?id="+id,
                              function(data){
                                  if("success"==data.result){
                                      alert("删除成功");
                                       window.location.reload();
                                  }else{
                                      alert("删除失败");
                                  }
                              }
                          );
                           
                      }
              
               
            }
    </script>
  </head>
  
  <body>
     <h5><a href="user/toAddUser.do">添加用户</a></h5>
     <table border="1" cellpadding="0" cellspacing="0">
            <thead>用户信息列表</thead>
            <tbody>
                <tr>
                     <th>姓名</th>
                     <th>年龄</th>
                     <th>操作</th>
                </tr>
                <c:if test="${!empty userList}">
                      <c:forEach items="${userList}" var="user">
                           <tr>
                               <td>${user.userName}</td>
                               <td>${user.age}</td>
                               <td>
                                   <a href="user/getUser.do?id=${user.id}">编辑</a>
                                   <a href="javascript:del('${user.id }')">删除</a>
                               </td>
                           </tr>
                      </c:forEach>
                </c:if>
            </tbody>
     </table>
     
     
  </body>
</html>
增加页面addUser.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'addUser.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <form action="user/addUser.do" method="post">
        姓名:<input type="text" name="userName"/><br/>
        年龄:<input type="text" name="age"/><br/>
        <input type="submit" value="添加"/>
    </form>
  </body>
</html>
编辑页面editUser.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'editUser.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
      <h2>编辑用户</h2>
      <form action="user/updateUser.do" method="post">
        <input type="hidden" name="id" value="${user.id}"/>
         姓名:<input type="text" name="userName" value="${user.userName }"/><br/>
        年龄:<input type="text" name="age" value="${user.age }"/>
        <input type="submit" value="编辑"/>
      </form>
  </body>
</html>

js和jsp文件:


各种包图:


相关文章
|
1月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
|
13天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
1月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
1月前
|
XML JSON 数据库
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
|
1月前
|
前端开发 应用服务中间件 数据库
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
这篇文章通过一个具体的项目案例,详细讲解了如何使用SpringMVC、Thymeleaf、Bootstrap以及RESTful风格接口来实现员工信息的增删改查功能。文章提供了项目结构、配置文件、控制器、数据访问对象、实体类和前端页面的完整源码,并展示了实现效果的截图。项目的目的是锻炼使用RESTful风格的接口开发,虽然数据是假数据并未连接数据库,但提供了一个很好的实践机会。文章最后强调了这一章节主要是为了练习RESTful,其他方面暂不考虑。
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
|
27天前
|
测试技术 Java Spring
Spring 框架中的测试之道:揭秘单元测试与集成测试的双重保障,你的应用真的安全了吗?
【8月更文挑战第31天】本文以问答形式深入探讨了Spring框架中的测试策略,包括单元测试与集成测试的有效编写方法,及其对提升代码质量和可靠性的重要性。通过具体示例,展示了如何使用`@MockBean`、`@SpringBootTest`等注解来进行服务和控制器的测试,同时介绍了Spring Boot提供的测试工具,如`@DataJpaTest`,以简化数据库测试流程。合理运用这些测试策略和工具,将助力开发者构建更为稳健的软件系统。
36 0
|
27天前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
48 0
|
1月前
|
消息中间件 安全 Java
Spring Boot 基于 SCRAM 认证集成 Kafka 的详解
【8月更文挑战第4天】本文详解Spring Boot结合SCRAM认证集成Kafka的过程。SCRAM为Kafka提供安全身份验证。首先确认Kafka服务已启用SCRAM,并准备认证凭据。接着,在`pom.xml`添加`spring-kafka`依赖,并在`application.properties`中配置Kafka属性,包括SASL_SSL协议与SCRAM-SHA-256机制。创建生产者与消费者类以实现消息的发送与接收功能。最后,通过实际消息传递测试集成效果与认证机制的有效性。
|
1月前
|
人工智能 Java API
JeecgBoot 低代码平台快速集成 Spring AI
Spring 通过 Spring AI 项目正式启用了 AI(人工智能)生成提示功能。本文将带你了解如何在 Jeecg Boot 应用中集成生成式 AI,以及 Spring AI 如何与模型互动,包含 RAG 功能。
97 3
|
1月前
|
XML Java 数据库连接
Spring Boot集成MyBatis
主要系统的讲解了 Spring Boot 集成 MyBatis 的过程,分为基于 xml 形式和基于注解的形式来讲解,通过实际配置手把手讲解了 Spring Boot 中 MyBatis 的使用方式,并针对注解方式,讲解了常见的问题已经解决方式,有很强的实战意义。在实际项目中,建议根据实际情况来确定使用哪种方式,一般 xml 和注解都在用。