SSH(五)spring整合hibernate
2024-10-20 16:11:45
一、创建hibernate实体映射文件。
在实体所在包创建映射文件product.hbm.xml,引入hibernate的映射约束。(该约束位于hibernate3.jar里面hibernate-mapping-3.0.dtd,可cope使用)如下图:
product.hbm.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- hibernate约束头信息:hibernate3.jar→org,hibernate→hibernate-mapping-3.0.dtd -->
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
<!-- name:实体的全路径 table:映射创建的DBA表名 -->
<class name="com.ssh.entity.product" table="product">
<id name="pid" column="pid">
<!--class="native" 主键生成侧路:本地策略 -->
<generator class="native"></generator>
</id> <property name="pname" column="pname" length="20"></property>
<property name="price" column="price"></property>
</class>
</hibernate-mapping>
二、利用spring引入属性文件的方式连接数据库
2.1在项目src下新建dba连接属性文件jdbc.produce,用来保存数据库连接的基本参数:
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=123456
2.2在applicationcontext.xml中利用context:property-placeholder标签引入属性文件,为连接池准备参数:
<!-- 引入外部属性文件 -->
<context:property-placeholder location="classpath:jdbc.produce"/>
2.3在applicationcontext.xml配置连接池 :利用引入配置文件属性为连接池赋值
<!-- 配置连接池 :利用引入配置文件属性为连接池赋值 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
2.4在applicationcontext.xml配置hibernate属性和加载映射文件:
(hibernate方言位置:hibernate-release-5.2.8.Final\project\etc\hibernate.properties)如下图:
applicationcontext.xml配置映射:(注意sessionfactory的hibernate版本的引入,根据自己hibernate版本来)
<!-- 配置hibernate的相关属性:spring启动根据该配置创建映射表 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 配置hibernate属性 -->
<property name="hibernateProperties">
<props>
<!-- hibernate.dialect:hibernate方言 -->
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 配置hibernate中的映射文件 -->
<property name="mappingResources">
<list>
<!-- 映射文件全路径 -->
<value>com/ssh/entity/product.hbm.xml</value>
</list>
</property>
</bean>
完成以上操作后,在启动项目时,系统加载初始化spring时加载applicationcontext.xml会自动连接数据库并根据配置映射在数据库中创建实体对应的表。
三、启动项目观察数据库
运行创建成功!
最新文章
- selenium phantomjs 关闭问题
- Bzoj1096 [ZJOI2007]仓库建设
- c#重点[数据类型,构造方法,变量,变量,运算符,装箱,拆箱]
- WEB安全测试之XSS攻击
- POJ1699 Best Sequence(AC自动机+状压DP)
- winform - BackgroundWorker
- 1017: [JSOI2008]魔兽地图DotR - BZOJ
- POJ 3080 Blue Jeans (KMP)
- Objective-c中autorelease的释放时机
- bzoj 1096 [ZJOI2007]仓库建设(关于斜率优化问题的总结)
- Laravel 用户验证Auth::attempt fail的问题
- 一些关于IO流的问题
- select标签默认选项
- 【架构设计】Android:配置式金字塔架构
- C# linq操作是否延迟对照表
- 在linux系统中实现各项监控的关键技术(1)--cpu使用率的计算
- python no module named builtins
- Redis持久化的两种方式和区别
- (原)关于获取ffmpeg解析rtsp流sdp中带有sps,pps的情况
- NEFU 117 - 素数个数的位数 - [简单数学题]
热门文章
- 用VBA在PowerPoint中实现日期时间秒级动态显示
- Mybatis 一级缓存和二级缓存原理区别 (图文详解)
- 使用 Loki 微服务模式部署生产集群
- 添加 K8S CPU limit 会降低服务性能
- 迁移阿里云上的ECS操作说明
- Elastic:创建你的第一个Elastic alert
- 推送本地镜像到Dokcer Hub仓库
- 《Hyperspectral Image Classification With Deep Feature Fusion Network》论文笔记
- Centos7下的基本操作
- Linux+Proton without Steam玩火影忍者究极风暴4指南