springMvc+spring4+hibernate4快速搭建项目
1.首先创建一个web项目,并将本次需要的的jar包导入到lib目录中。jar包链接在微博中。
2.在这个项目创建好后创建一些类如com.action ;com.service ;com.dao ;com.pojo。
3.先在开始用添加mvc框架。
在web.xml中添加如下代码
<?xml version="1.0" encoding="UTF-8" ?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name />
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 如果希望整合Struct等第三方框架 -->
<!-- <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> -->
</web-app>
4.在WEB/INF下创建applicationContxt.xml文件并 添加如下配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
">
<!-- ## Basic Part 默认加载servlet访问参数 ## -->
<mvc:default-servlet-handler/>
<!-- load properties 配置属性文件-->
<context:property-placeholder location="classpath:application.properties" />
<!-- scan the spring mvc components 扫描-->
<context:component-scan base-package="com" />
<!-- enable annotation transaction 开启事物注解-->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- ## Hibernate Part ## -->
<!-- data source -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- hibernate session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<!-- hibernate 需要进行扫描的实体类 -->
<value>com.pojo</value>
</list>
</property>
<!-- hibernate 相关的参数配置,这里通过el表达式在属性文件中进行配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
</props>
</property>
</bean>
<!-- transaction manager 事物管理,将sessionFactory 注入到该类中 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- :) 本次只是简单的测试,无需配置hibernatetemplate -->
<!-- <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="userRepository" class="test.repositories.UserRepository">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="userController" class="test.controllers.UserController">
<property name="userRepository" ref="userRepository" />
</bean> -->
</beans>
5.创建类如图
6.TestAction代码如下:
package com.action;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.pojo.User;
import com.service.AllService;
@Controller
@RequestMapping(value="testAction")
public class TestAction {
@Autowired
AllService allService;
@RequestMapping(value="add")
public void add()
{
User u=new User();
u.setName("aaaa");
System.out.println("添加");
allService.add(u);
}
@RequestMapping(value="delete")
public void delete()
{
System.out.println("删除");
}
}
UserDao代码如下
package com.dao;
import javax.transaction.Transactional;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.pojo.*;
import com.pojo.User;
@Repository(value="userDao")
public class UserDao {
@Autowired
SessionFactory sessionFactory;
@Transactional
public void add (User user)
{
sessionFactory.getCurrentSession().save(user);
}
}
user代码如下:
package com.pojo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user")
public class User {
/*
由于我的数据库配置是自增长所以没有配置相关的主键生成策略。
*/
@Id
@Column(name="id")
private int id;
@Column(name="name")
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
service代码如下:
package com.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dao.UserDao;
import com.pojo.User;
@Service(value="allService")
public class AllService {
@Autowired
private UserDao userDao;
public void add (User user)
{
userDao.add(user);
}
}
在src下创建属性文件,填写下列内容:
################### JDBC Configuration ##########################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/数据库名称
jdbc.username=root
jdbc.password=root
################### Hibernate Configuration ##########################
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.hbm2ddl.auto=update
#hibernate.hbm2ddl.auto=create
hibernate.generate_statistics=true
hibernate.cache.use_second_level_cache=true
然后在数据库中建立相应的表:
如图:
相应的表的设置如下图:
目录结构图:
注意:本配置的tomcat必须是7以上的版本,tomcat6下会报错。
这样就大功告成,启动tomcat后在浏览器中输入
http://127.0.0.1:8080/sh/testAction/add 就可以回看到输出“添加字样”
查看数据库就会出现
其中aaa已经添加成功。
jar包地址
http://download.csdn.net/detail/baidu_25696489/8785153