标签:
1.创建一个web项目。
2.引入类库。
3.配置中央处理器
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 通过初始化参数指定springmvc配置文件的位置 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
4.编写springmvc-servlet.xml:
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 /WEB-INF/jsps/home.jsp-->
<property name="prefix" value="/WEB-INF/jsps/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
5.编写beans.xml:
<!-- 注解驱动 -->
<mvc:annotation-driven/>
<!-- 组件扫描 -->
<context:component-scan base-package="cn.itcast.springmvc"></context:component-scan>
6.定义实体类:
public class Person implements java.io.Serializable{ private String id; private String name; private String address; public final String getId() { return id; } public final void setId(String id) { System.out.println("正在调用setId方法 ,id=" + id); this.id = id; } public final String getName() { return name; } public final void setName(String name) { this.name = name; } public final String getAddress() { return address; } public final void setAddress(String address) { this.address = address; } @Override public String toString() { return "{id:"+id+",name:"+name+",address:"+address+"}"; } }
7.定义Person实体类的映射文件Person.hbm.xml
<hibernate-mapping> <class name="cn.itcast.springmvc.domain.Person" table="person"> <id name="id" column="id" type="string"> <generator class="uuid" /> </id> <property name="name" column="name" type="string" /> <property name="address" column="address" type="string"/> </class> </hibernate-mapping>
8.创建person表
9.一般在项目启动的时候就要完成spring容器的初始化,web.xml:
<!-- 通过上下文参数指定spring配置文件的位置 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 通过初始化参数指定springmvc配置文件的位置 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
10.创建一个对Person进行处理的控制器类,先不考虑其他的,将流程走通。
@Controller @RequestMapping(value="/person")//跟路径 public class PersonController { @RequestMapping(value="/save") public String savePerson(Person p){ System.out.println("savePerson()..."); return "success"; } }
http://localhost:8080/springmvc-3/person/save
11.整合hibernate,肯定要有数据源,连接数据库。
beans.xml:
<!-- 定义数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql://localhost/springmvc" /> <property name="user" value="root" /> <property name="password" value="root" /> <property name="initialPoolSize" value="10"/> <property name="maxPoolSize" value="50"/> <property name="minPoolSize" value="10"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- hibernate映射文件的位置 --> <property name="mappingDirectoryLocations"> <value>classpath:cn/itcast/springmvc/domain/</value> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.Dialect">org.hibernate.dialect.MySQL5Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl">update</prop> </props> </property> </bean>
<!-- 事务管理器 -->
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事物的传播特性 (事物通知)-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* cn.itcast.springmvc.service.*.*(..))" advice-ref="txAdvice"/>
</aop:config>
12.定义Service,Dao
public interface IPersonDao { public void savePerson(Person p); }
@Repository(value="personDao") public class PersonDaoImpl implements IPersonDao { @Resource(name="sessionFactory")//name是beans.xml中的名字 private SessionFactory sessionFactory; public void savePerson(Person p) { sessionFactory.getCurrentSession().save(p);//配置事务才可以 } }
public interface IPersonService { public void savePerson(Person p); }
@Service(value="personService") public class PersonServiceImpl implements IPersonService { @Resource(name="personDao") private IPersonDao personDao; public void savePerson(Person p) { personDao.savePerson(p); } }
@Controller @RequestMapping(value="/person")//跟路径 public class PersonController { @Resource(name="personService") private IPersonService personService; @RequestMapping(value="/save") public String savePerson(){ Person p = new Person(); p.setName("aa"); p.setAddress("beijing"); personService.savePerson(p); System.out.println("savePerson()..."); return "success"; } }
成功保存到数据库中。
------------------------------------------------------------------------
完整的CRUD操作。
标签:
原文地址:http://www.cnblogs.com/winner-0715/p/4975546.html