SSH之单独整合Hibernate

目录

SSH之单独整合Hibernate

单独配置Hibernate

导入实体类

配置映射文件

主配置文件

Spring与Hibernate整合(将sessionFactory对象交给spring容器管理)

将sessionFactory配置到Spring容器中


SSH之单独整合Hibernate

  • 单独配置Hibernate

导入实体类

public class User {

	private Long user_id;
	private String user_code;
	private String user_name;
	private String user_password;
	private Character user_state;
	
	//多对多
	private Set<Role> roles = new HashSet<Role>();
    //...
}

配置映射文件

    <!-- 实体与表文件映射配置 -->
<hibernate-mapping package="com.mark.domain">
	<class name="Customer" table="cst_customer">
	
		<!-- 实体与主键映射 -->
		<id name="cust_id" column="cust_id">
		  	<!-- 主键生成策略 -->
		  	<generator class="native"></generator>
		</id>
		
		<!-- 实体与表普通列映射 -->
		<property name="cust_name" column="cust_name"></property>
		<property name="cust_user_id" column="cust_user_id"></property>
		<property name="cust_create_id" column="cust_create_id"></property>
		<property name="cust_source" column="cust_source"></property>
		<property name="cust_industry" column="cust_industry"></property>
		<property name="cust_level" column="cust_level"></property>
		<property name="cust_linkman" column="cust_linkman"></property>
		<property name="cust_phone" column="cust_phone"></property>
		<property name="cust_mobile" column="cust_mobile"></property>
		
		<!-- 配置多的一方关联对象 -->
			<!-- set标签:
				   * name属性		:多的一方集合的属性名称
				   * cascade属性     :save-update(级联保存更新)、delete(级联删除)、all(前两者之和)-->
		<set name="linkmans" cascade="save-update">
			<!-- set标签:
				   * name属性:外键名称 -->
			<key column="lkm_cust_id"></key>
			<!-- one-to-many标签:
				   * name属性:多的一方类全路径 
				   -->
			<one-to-many class="com.mark.domain.Linkman"/>
		</set>
	</class>
</hibernate-mapping>

主配置文件

	<!-- Hibernate核心文件配置 -->
<hibernate-configuration>
	<session-factory>
		<!-- 5个必要数据连接配置 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///crm</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
			<!--Hibernate方言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<!-- 3个可选数据库操作配置 -->
			<!--Hibernate显示SQL语句  -->
		<property name="hibernate.show_sql">true</property>
			<!--Hibernate格式化SQL语句  -->
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		<!--Hibernate加载映射  -->
		<mapping resource="com/mark/domain/Customer.hbm.xml"/>
		<mapping resource="com/mark/domain/Linkman.hbm.xml"/>
		<mapping resource="com/mark/domain/User.hbm.xml"/>
		<mapping resource="com/mark/domain/Role.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
  • Spring与Hibernate整合(将sessionFactory对象交给spring容器管理)

将sessionFactory配置到Spring容器中

方案一:使用hibernate.cfg.xml配置信息

	<bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" >
		<!-- 方案一:使用Hibernate。cfg.xml配置信息 -->
		<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
	</bean>

方案二:在spring配置中配置Hibernate.cfg.xml配置信息

		<!-- 方案二:在spring配置中配置Hibernate.cfg.xml配置信息 -->
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
				<prop key="hibernate.connection.url">jdbc:mysql:///crm</prop>
				<prop key="hibernate.connection.username">root</prop>
				<prop key="hibernate.connection.password">root</prop>
				<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>
		<!-- 引入映射文件 -->
		<property name="mappingDirectoryLocations" value="classpath:com/mark/domain"></property>

猜你喜欢

转载自blog.csdn.net/mmake1994/article/details/81870388
今日推荐