spring + springMVC + hibernate 集成

乱搞了几下,弄出来最简单的添加,记录下。


1. jar包,老是忘记加入connector,如下:

 


2.  web.xml配置文件,和前一个博客(http://blog.csdn.net/w784761277/article/details/9157153)所写的项目一样,没任何变化。


3. 三个框架的配置文件全放在了src目录的config目录中了。

 

其中的springMVC-servlet.xml也没有任何变化。主要的配置集中在spring的配置文件applicationContext.xml和使用注解的User类中。


     applicationContext.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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
	
	<!-- 数据库配置 -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">

		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>

		<property name="url">
			<value>jdbc:mysql://localhost:3306/hibernatespring</value>
		</property>

		<property name="username">
			<value>root</value>
		</property>

		<property name="password">
			<value>**************</value>
		</property>
	</bean>

	<!-- sessionFactory配置 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

		<property name="dataSource">
			<ref local="dataSource" />
		</property>

		<property name="configLocations">
			<list>
				<value>
					classpath*:config/hibernate.cfg.xml
				</value>
			</list>
		</property>

		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hiberante.format_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>

	</bean>


	<!-- 事务配置 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate4.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<bean id="transactionBese"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
		lazy-init="true" abstract="true">
		<property name="transactionManager" ref="transactionManager"></property>
		<property name="transactionAttributes">
			<props>
				<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="get*">PROPAGATION_NEVER</prop>
			</props>
		</property>
	</bean>



	<!-- 下面的bean可以放在一个单独的配置文件中 -->
	
	<bean id="userDAO" class="com.study.dao.impl.UserDAO">
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>

	<!-- 使用了代理事务 -->
	<bean id="userManagerBase" class="com.study.service.impl.UserManager">
		<property name="iUserDAO" ref="userDAO"></property>
	</bean>
	<bean id="userManager" parent="transactionBese">
		<property name="target" ref="userManagerBase"></property>
	</bean>

</beans>

hibernate.cfg.xml配置的很简单,就是一个mapping,有关表的配置在User类中使用了注解。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

    <session-factory>
  			<mapping class="com.study.entity.User"/>  
    </session-factory>

</hibernate-configuration>

User类中的注解:

package com.study.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") 
	private String id;
	
	@Column(length=32)
	private String userName;
	
	@Column(length=32)
	private int age;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		System.out.println(userName);
		this.userName = userName;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		System.out.println(age);
		this.age = age;
	}
	
	
}


  添加用户的jsp页面:

          

<body>
   
		<form action="/springhibernate/study/addUser" method="post">
			userName:<input type="text" name="userName">  <br/>
			age:<input type="text" name="age">  <br/>
				<input type="submit" value="submit">
		
		</form>
    
    
  </body>


相关的Controller:

   

package com.study.controller;

import javax.annotation.Resource;

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

import com.study.entity.User;
import com.study.service.IUserManager;


@Controller
@RequestMapping("/study")
public class UserController {
	
		@Resource(name="userManager")
		IUserManager iUserManager;
		
		@RequestMapping("/addUser")
		private String addUser(User user){
			
			iUserManager.addUser(user);
			return "/success";
		}

}



 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值