乱搞了几下,弄出来最简单的添加,记录下。
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";
}
}