spring2.5整合hibernate3.0整合Struts

Struts2 + Spring 2.5 + Hibernate 3.3 整合(实际使用项目,version1) 这是一个实际使用中的项目,可访问 http://cdbke.cuit.edu.cn 可查看效果及功能,后台需要登录后才能使用(出于安全性考虑这里就不给大家介绍了,另外还有一个struts1版本的,如有需要可以与我联系)。 此项目整合了目前主流和最前源的web开发技术:采用ehcache实现二级缓存(包含查询缓存);用sf4j及logback(log4j的升级版)记录日志;proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿google人名自动补全;头像上传剪切压缩处理。 包含有完整的jar包和源代码,这是专门为我们实验室定制开发的,包含了架构基于s2sh技术网站的参考实现(包括了全部基础部分:如分页,缓存,文件上传,连接池等等)希望对初学JavaEE WEB开的人有所帮助。 有更新版本的了,推荐下载新版的http://download.csdn.net/source/2342439 立即下载
首先:这是spring framework+hibernate+struts集成,spring主要用于aop和ioc,hibernate主要是用于持久层,struts主要是用于mvc。

同时关于springMVC和spring,这两个不是一个概念, springMVC从名字来看,就知道这是一个mvc框架,它和struts是一个层次的,springMVC有自己的类hibernate的存储持久化模块,也支持集成hibernate来完成存储。

 

 

项目结构图:

 

 所需jar包:

 

 

 

一、定义一个Bean,person.java

 1 package cn.itcast.bean;
 2 
 3 public class Person {
 4     private Integer id;
 5     private String name;
 6     
 7     public Person() {}
 8 
 9     public Person(String name) {
10         this.name = name;
11     }
12     
13     public Integer getId() {
14         return id;
15     }
16     public void setId(Integer id) {
17         this.id = id;
18     }
19     public String getName() {
20         return name;
21     }
22     public void setName(String name) {
23         this.name = name;
24     }
25 }

二、定义一个接口,PersonService 

 1 package cn.itcast.Service;
 2 
 3 import java.util.List;
 4 
 5 import cn.itcast.bean.Person;
 6 
 7 public interface PersonService {
 8 
 9     public abstract void save(Person person);
10 
11     public abstract void update(Person person);
12 
13     public abstract Person getPerson(Integer personId);
14 
15     public abstract void delete(Integer personId);
16 
17     public abstract List<Person> getPersons();
18 
19 }

三、定义接口的实现类 PersonServiceBean 

 1 package cn.itcast.Service.Impl;
 2 
 3 import java.util.List;
 4 
 5 import javax.annotation.Resource;
 6 
 7 import org.hibernate.Session;
 8 import org.hibernate.SessionFactory;
 9 import org.springframework.transaction.annotation.Propagation;
10 import org.springframework.transaction.annotation.Transactional;
11 
12 import cn.itcast.Service.PersonService;
13 import cn.itcast.bean.Person;
14 @Transactional
15 public class PersonServiceBean implements PersonService {
16     @Resource
17     private SessionFactory sessionFactory;
18     
19     @Override
20     public void save(Person person){
21         //取被spring容器管理的session
22         sessionFactory.getCurrentSession().persist(person);
23     }
24     
25     @Override
26     public void update(Person person){
27         sessionFactory.getCurrentSession().merge(person);
28     }
29     
30     @Transactional(propagation = Propagation.NOT_SUPPORTED,readOnly = true)
31     @Override
32     public Person getPerson(Integer personId){
33         return (Person) sessionFactory.getCurrentSession().get(Person.class, personId);
34         
35     }
36     
37     @Override
38     public void delete(Integer personId){
39         sessionFactory.getCurrentSession().delete(sessionFactory.getCurrentSession().load(Person.class, personId));
40     }
41     
42     @Transactional(propagation =Propagation.NOT_SUPPORTED,readOnly = true)
43     @SuppressWarnings("unchecked")
44     @Override
45     public List<Person> getPersons(){
46         return sessionFactory.getCurrentSession().createQuery("from Person").list();
47         
48     }
49 }

四、配置文件beans.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:context="http://www.springframework.org/schema/context" 
 5        xmlns:aop="http://www.springframework.org/schema/aop"
 6        xmlns:tx="http://www.springframework.org/schema/tx"
 7        xsi:schemaLocation="http://www.springframework.org/schema/beans
 8            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 9            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
10            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
11            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
12 
13      <!-- <context:property-placeholder location="classpath:jdbc.properties"/> -->
14      <context:annotation-config/>
15      <!-- 配置dataSource -->
16      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
17         <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
18         <property name="url" value="jdbc:oracle:thin:@192.168.1.10:1521:orcl"/>
19         <property name="username" value="tsrescue"/>
20         <property name="password" value="123456"/>
21          <!-- 连接池启动时的初始值 -->
22          <property name="initialSize" value="1"/>
23          <!-- 连接池的最大值 -->
24          <property name="maxActive" value="500"/>
25          <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
26          <property name="maxIdle" value="2"/>
27          <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
28          <property name="minIdle" value="1"/>
29      </bean>
30      <!-- 配置sessionFactory -->
31      <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
32          <property name="dataSource" ref="dataSource"/>
33          <property name="mappingResources">
34             <list>
35               <value>cn/itcast/bean/Person.hbm.xml</value>
36             </list>
37          </property>
38          <property name="hibernateProperties">
39              <props>
40                 <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
41                 <prop key="hibernate.show_sql">true</prop>
42                 <prop key="hibernate.format_sql">true</prop>
43             </props>
44            
45          </property>
46     </bean>
47     <!-- spring提供的针对hibernate的事务管理器 -->
48     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
49           <property name="sessionFactory" ref="sessionFactory"/>
50     </bean>
51     <!-- 基于注解的方式声明事务 -->
52     <tx:annotation-driven transaction-manager="txManager"/>
53     <bean id = "personService" class="cn.itcast.Service.Impl.PersonServiceBean"/>
54 </beans>

五,定义Person.hbm.xml

 

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2016-6-1 10:08:44 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping package="cn.itcast.bean">
 6     <class name="Person" table="person">
 7         <id name="id">
 8             <generator class="native" />
 9         </id>
10         <property name="name"/>
11     </class>
12 </hibernate-mapping>

 

 

 

六、定义测试类 PersonServiceBeanTest 

 1 package cn.itcast.Service.Impl;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import java.util.List;
 6 
 7 import org.junit.BeforeClass;
 8 import org.junit.Test;
 9 import org.springframework.context.ApplicationContext;
10 import org.springframework.context.support.ClassPathXmlApplicationContext;
11 
12 import cn.itcast.Service.PersonService;
13 import cn.itcast.bean.Person;
14 
15 public class PersonServiceBeanTest {
16     private static PersonService ps;
17     @BeforeClass
18     public static void setUpBeforeClass() throws Exception {
19         try {
20             ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
21             ps = (PersonService) ctx.getBean("personService");
22         } catch (Exception e) {
23             e.printStackTrace();
24         }
25     }
26 
27     @Test
28     public void testSave() {
29         for(int i = 1;i<=10;i++){
30             ps.save(new Person("小明"+i));
31         }
32     }
33 
34     @Test
35     public void testUpdate() {
36         Person person = ps.getPerson(1);
37         person.setName("小明修改版");
38         ps.update(person);
39     }
40 
41     @Test
42     public void testGetPerson() {
43         Person p = ps.getPerson(1);
44         System.out.println(p.getName());
45     }
46 
47     @Test
48     public void testDelete() {
49         ps.delete(3);
50     }
51 
52     @Test
53     public void testGetPersons() {
54         List<Person> list = ps.getPersons();
55         for (Person person : list) {
56             System.out.println(person.getName());
57         }
58     }
59 
60 }

以上实现了对数据库的操作,下面通过整合Struts来实现将数据传递到页面

 

一、首先定义一个action,PersonAction 继承Action

 1 package cn.itcast.web.action;
 2 
 3 import javax.servlet.ServletRequest;
 4 import javax.servlet.ServletResponse;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7 
 8 import org.apache.struts.action.Action;
 9 import org.apache.struts.action.ActionForm;
10 import org.apache.struts.action.ActionForward;
11 import org.apache.struts.action.ActionMapping;
12 import org.springframework.web.context.WebApplicationContext;
13 import org.springframework.web.context.support.WebApplicationContextUtils;
14 
15 import cn.itcast.Service.PersonService;
16 
17 public class PersonAction extends Action {
18 
19     @Override
20     public ActionForward execute(ActionMapping mapping, ActionForm form,
21             HttpServletRequest request, HttpServletResponse response)
22             throws Exception {
23         WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
24         PersonService personService = (PersonService) ctx.getBean("personService");
25         request.setAttribute("persons", personService.getPersons());
26         return mapping.findForward("list");
27         
28     }
29 }

二、定义struts-config.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE struts-config PUBLIC
 3             "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
 4             "http://struts.apache.org/dtds/struts-config_1_3.dtd">
 5 <struts-config>
 6     <action-mappings>
 7         <action path = "/person/list" type = "cn.itcast.web.action.PersonAction"
 8         validate = "false">
 9             <forward name = "list" path = "/WEB-INF/page/personlist.jsp"/>
10         </action>
11     </action-mappings>
12 </struts-config>

三、定义web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 3 xmlns="http://java.sun.com/xml/ns/javaee" 
 4 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">
 5       <context-param>
 6        <param-name>contextConfigLocation</param-name>
 7        <param-value>classpath:beans.xml</param-value>
 8     </context-param>
 9     <!-- 对Spring容器进行实例化 -->
10     <listener>
11           <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     
14     <servlet>
15         <servlet-name>struts</servlet-name>
16         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
17         <init-param>
18             <param-name>config</param-name>
19             <param-value>/WEB-INF/struts-config.xml</param-value>
20         </init-param>
21         <load-on-startup>0</load-on-startup>
22     </servlet>
23     <servlet-mapping>
24         <servlet-name>struts</servlet-name>
25         <url-pattern>*.do</url-pattern>
26     </servlet-mapping>
27     <welcome-file-list>
28         <welcome-file>index.jsp</welcome-file>
29     </welcome-file-list>
30 </web-app>

四、定义一个jsp页面,用来显示数据。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>人员列表</title>
 9 </head>
10 <body>
11     <c:forEach items="${persons }" var="person">
12         ${person.id },${person.name }<br>
13     </c:forEach>
14 </body>
15 </html>

好了,至此简单的ssh框架整合完毕!

 

当然,上面的方案存在小小的缺陷,action每次取的spring容器实例都要采用这种方式:

 1 WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext()); 2 PersonService personService = (PersonService) ctx.getBean("personService"); 

所以我们不如采用spring依赖注入的方式,将这个对象注入进来,

首先在beans.xml中注入PersonAction,

注意:1、确保struts-config.xml中action的path属性和bean名称相同。

 1 <bean name = "/person/list" class="cn.itcast.web.action.PersonAction"/> 

2、在struts-config.xml中定义一个控制器如下:

1 <controller>
2         <set-property value="processorClass" value = "org.springframework.web.struts.DelegatingRequestProcessor"/>
3     </controller>

3、在PersonAction.java中注入PersonService即可!

 

 1 package cn.itcast.web.action;
 2 
 3 import javax.annotation.Resource;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 
 7 import org.apache.struts.action.Action;
 8 import org.apache.struts.action.ActionForm;
 9 import org.apache.struts.action.ActionForward;
10 import org.apache.struts.action.ActionMapping;
11 
12 import cn.itcast.Service.PersonService;
13 
14 public class PersonAction extends Action {
15     @Resource 
16     private PersonService personService;
17     
18     @Override
19     public ActionForward execute(ActionMapping mapping, ActionForm form,
20             HttpServletRequest request, HttpServletResponse response)
21             throws Exception {
22 //        WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
23 //        PersonService personService = (PersonService) ctx.getBean("personService");
24         
25         request.setAttribute("persons", personService.getPersons());
26         return mapping.findForward("list");
27         
28     }
29 }

 

struts2+spring2.5+hibernate3基础包(包括AOP) 按照ssh的基本应用逐步添加的jar包,包含AOP切面编程的包。事务的提交建议用AOP去做。 立即下载

相关推荐

Struts2与Spring2.5、Hibernate3三者整合

Struts2与Spring2.5、Hibernate3三者整合,新手学习j2EE 入门秘籍

Struts2+Spring2.5+Hibernate3.3 整合总结

徐进 349

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1402

spring3.0 + hibernate3.5 + struts2的整合

<br />hibernate 3.5:<br />hibernate3.jar<br />lib/bytecode/cglib/*.jar<br />/lib/jpa/*.jar<br />lib/required/*.jar<br />还需加入:<br />slf4j-log4j12.jar<br />以上环境以及整合annotation和jpa<br />Spring3.0 和 struts2的jar文件直接copy

76ersjy2的专栏 805

手把手教你搞定EMC EFT测试:从电源线到信号线的完整整改实战(附常见失败原因)

本文详细解析了EMC EFT测试中的常见问题及整改措施,从电源线到信号线的完整实战方案。通过四步定位法和成本最优整改策略,帮助工程师有效应对电快速脉冲群干扰,提升产品通过率并降低成本。

weixin_30920597的博客 498

国产PLC实战:用汇川Easy320搞定TCP通信,手把手教你网口转串口控制设备

本文详细解析了如何使用汇川Easy320 PLC实现TCP通信与串口控制,解决工业自动化中设备间通信协议差异问题。通过实战案例和代码示例,展示了Easy320在协议转换、数据解析和串口转发中的高效应用,帮助工程师快速掌握网口转串口控制技术。

weixin_31774841的博客 500

Struts1.2+Spring2.0+Hibernate3.1整合总结 MyEclipse5.5

Struts1.2+Spring2.0+Hibernate3.1整合总结这个版本框架打架环境必须采用MyEclipse5.5,因只有5.5上版本支持spring2.0,能够添加spring2.0支持。正确添加ssh支持,建好applicationContext.xml下数据源dataSource和sessionFactory后部署到tomcat下启动报错,原因可能是搭建过程中添加jar包冲

jiaoxueli的专栏 996

VSCode 远程开发:实现服务器图形化界面(GUI)的高效操作指南

本文详细介绍了如何通过VSCode远程开发实现服务器图形化界面(GUI)操作,包括X11转发原理、完整配置指南和实战测试。通过安装Xming、配置SSH连接和服务器端设置,开发者可以高效地在本地显示远程GUI应用,提升开发效率。

weixin_29245767的博客 294

整合Spring3.0.5,Hibernate3.3,Struts2.3.8(中文OK)

今天整合ssh2(偶的版本是Spring3.0.5,Hibernate3.3,Struts2.3.8),中间碰到一些奇怪的现象,下班回来一安静,想想再检查一下,搞定。(改天有空把步骤整理上来,不过,一般很懒就不想写了。) 里面有几点一定要注意: 在applicateionContext.xml里面一定要配置好(里面有些很怪异的写法,必须按这个格式,不然就运行异常) 1

杨文的专栏(南京Java讲师) 780

GB28181安防平台未授权访问漏洞:原理、复现与修复指南

未授权访问漏洞是Web安全中常见的访问控制缺陷,其本质在于应用在提供对敏感功能或数据的访问前,未能对请求者的身份和权限进行充分验证。从技术原理上看,这类漏洞常源于拦截器配置错误、安全注解遗漏或自定义校验逻辑缺陷,导致本应受保护的API接口被意外暴露。在工程实践中,此类漏洞危害巨大,攻击者无需登录即可直接访问系统核心接口,可能引发敏感信息泄露、权限提升甚至系统接管。尤其在安防监控、物联网管理平台等场景中,一旦涉及用户管理接口(如`/api/user/**`),风险会急剧放大。本文以GB28181视频监控管理平

weixin_30271335的博客 440

AI Agent 入门(一):什么是 AI Agent?——从概念到第一个 API 调用

AI Agent 入门(一):什么是 AI Agent?——从概念到第一个 API 调用

nbtang的博客 257

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发

<br />基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1) <br />        写这个主题的文章在网络上应该暂时没有吧,也看过许多SSH整合开发的书,许多都是旧版本的框架整合,而且大部分都是以XML配置文件的方式,即使谈到Annotation也是针对其中一个框架而言的。随着开源框架更新版本中不断引进对Annotation的支持,使得我们可以用单方面去管理我们的类与关系,而不用像以往那样,一旦遇到问题,就要不断在Java视图和XML视图中切换

想飞的鱼 1569

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式如何计算IC电源管脚电感操作指导

Sigrity OptimizePI IC Device Power Pin Inductance Analysis模式可以计算电容到IC电源管脚的电感,用于评估电容位置对于IC电源管脚的效果,如何分析,以下图为例进行说明。Capacitors:选择层面,这里选择top layer(IC在top层),下方可以选择电容的size,这里选择All Size。IC devices,输入U*, A*, B*, Q*, P*,将所有这些字母开头的器件都识别为IC。模式如何计算IC电源管脚电感操作指导。

weixin_54787054的博客 410

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (3)

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (3)         进入我们基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发的最后一个阶段了,这阶段主要为我们的项目引进Struts2的Annotation。相对于带Annotation的Hibernate与带Annotation的Sprin

Just A Nobody 专栏 1926

Open3D(C++) 读取、可视化并保存点云【2025最新版】

博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 4620

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Struts2.2.3+spring3.0.2+hibernate3.5整合

Struts2.2.3+spring3.0.2+hibernate3.5整合   web.xml   &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=&

iteye_5271的博客 157

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1)

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发 (1)         写这个主题的文章在网络上应该暂时没有吧,也看过许多SSH整合开发的书,许多都是旧版本的框架整合,而且大部分都是以XML配置文件的方式,即使谈到Annotation也是针对其中一个框架而言的。随着开源框架更新版本中不断引进对Annotation的支持,使得我们可以用单方面...

neolimeng的专栏 150

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发(转)

 进入我们基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发的最后一个阶段了,这阶段主要为我们的项目引进Struts2的Annotation。相对于带Annotation的Hibernate与带Annotation的Spring整合来说,带Annotation的Struts与带Annotation的Spring整合还是比较容易实现的。    我们先...

微尘的世界 135

整合spring2.5+hibernate3+struts2.0

之前有照着网上的博客教程整合了一个比这个更高版本的ssh2,但那时我只是照着做而已啦,对于只自学过strut2的小虾米来说,原理什么的都不懂,所以下定决心要学习一下其它两个框架。经过近一个月的自学过后,我按照视频的做法又来整合一个低版本的(因为视频是前几年的)下面是对我整合的一个记录。jdk:1.7 tomcat:7.01.导入spring jar包 蓝色标注的是较新的两个jar包替换,如果

面向阳光的向日葵的专栏 1088
上一篇: Hibernate中的数据库方言(Dialect)
下一篇: hibernate的二级缓存
BuildingJiang
博客等级 码龄10年 8粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值