springMVC ibatis 整合案例
来源:互联网 发布:淘宝头条一篇多少钱 编辑:程序博客网 时间:2024/06/09 19:58
SpringMVC与Ibatis框架整合所使用版本
Ibatis 2.3.4
Spring 3.0
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" 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_2_5.xsd"> <!-- 字符过滤_防止添加到数据库中的数据为乱码 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext*.xml</param-value> </context-param> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
springmvc-servlet.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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="com.archie" /> <mvc:annotation-driven /> <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 异常解析器 --> <bean id="simpleMappingExceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">common/fileerror</prop> </props> </property> </bean></beans>
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:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" default-autowire="byName"> <!-- 自动扫描 --> <context:component-scan base-package="com.archie"/> <!-- 强制使用CGLIB代理 --> <aop:aspectj-autoproxy proxy-target-class="true"/> <!-- DataSource数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/springweb_ibatis</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <!-- Spring iBatis SqlMapClient --> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="classpath:sqlmap-config.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <!--事务管理DataSourceTransactionManager--> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!--启动spring注解功能--> <tx:annotation-driven transaction-manager="txManager" /> <aop:config> <aop:pointcut id="baseServiceMethods" expression="execution(* com.archie.dao.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="baseServiceMethods" /> </aop:config> <aop:aspectj-autoproxy /> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="select*" read-only="true" propagation="REQUIRED" /> <tx:method name="find*" read-only="true" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> <tx:method name="update*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> <tx:method name="add*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> <tx:method name="delete*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> </tx:attributes> </tx:advice></beans>
sqlmap-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig> <sqlMap resource="sqlMap/User.xml" /></sqlMapConfig>
BaseDao.java
package com.archie.dao;import javax.annotation.PostConstruct;import javax.annotation.Resource;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;import com.ibatis.sqlmap.client.SqlMapClient;/** * BaseDao,Dao需继承此Dao * * @author archie2010 since 2011-3-3 下午10:52:36 */public class BaseDao extends SqlMapClientDaoSupport { @Resource(name = "sqlMapClient") private SqlMapClient sqlMapClient; @PostConstruct public void initSqlMapClient() { super.setSqlMapClient(sqlMapClient); }}
UserDao.java
package com.archie.dao;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Component;import com.archie.model.User;import com.archie.util.Pages;/** * UserDao * * @author archie2010 * * since 下午10:31:52 */@Componentpublic class UserDao extends BaseDao { /** * 添加 * * @param user * @return */ public boolean addUser(User user) { User u = (User) getSqlMapClientTemplate().insert("insertUser", user); return u != null ? true : false; } /** * 删除 * * @param uid * @return */ public boolean deleteUser(int uid) { int res = getSqlMapClientTemplate().delete("deleteUserByID", uid); return res > 0 ? true : false; } /** * 查询 * * @param uid * @return */ public User getUserByUid(int uid) { return (User) getSqlMapClientTemplate().queryForObject("findUserByID", uid); } /** * 查询所有 * * @return */ @SuppressWarnings("unchecked") public List<User> getAllUsers() { return getSqlMapClientTemplate().queryForList("findAllUser"); } /** * 修改 * * @param user * @return */ public boolean updateUser(User user) { int res = getSqlMapClientTemplate().update("updateUserByUser", user); return res > 0 ? true : false; } /** * 查询(根据用户名密码) * * @param user * @return */ public User getUserByUnameUpwd(User user) { return (User) getSqlMapClientTemplate().queryForObject( "selectByUnameAndUpwd", user); } /** * 记录总数 * * @return */ public int getAllUserCount() { return (Integer) getSqlMapClientTemplate().queryForObject( "findAllUserCount"); } /** * 分页 * * @param pageNo * @return */ @SuppressWarnings("unchecked") public Pages<User> getUserByPageNo(int pageNo) { Pages<User> pages = new Pages<User>(getAllUserCount()); pages.setPageSize(5); List<User> userList = new ArrayList<User>(); userList = getSqlMapClientTemplate().queryForList("findPageUser", pages.getStart(pageNo)); pages.setPageList(userList); return pages; }}
SpringMVC的Controller
UserController .java
package com.archie.web;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;import com.archie.model.User;import com.archie.service.UserService;import com.archie.util.Pages;/** * BaseDao,Dao需继承此Dao * * @author archie2010 since 2011-3-3 下午10:52:36 */@Controller@RequestMapping("/user/*")public class UserController { @Resource private UserService userService; private final String LIST="redirect:/user/list/1"; /** * 登录 * @param user * @param session * @return */ @RequestMapping("/login") public ModelAndView login(@Valid User user,BindingResult result,HttpSession session){ if(!result.hasErrors()){ User loginUser=userService.login(user); if(loginUser!=null){ session.setAttribute("USER", loginUser); return new ModelAndView("redirect:/user/list/1"); }else{ return new ModelAndView("redirect:/"); } }else{ ModelAndView view=new ModelAndView(); view.setViewName("redirect:/"); view.addObject("error", result.getAllErrors()); return view; } } /** * 跳转至添加页 * @return */ @RequestMapping(value="/new",method=RequestMethod.GET) public ModelAndView toAdd(){ return new ModelAndView("user/add"); } /** * 保存 * @param user * @return */ @RequestMapping(value="/new",method=RequestMethod.POST) public ModelAndView add(@Valid User user,BindingResult result){ if(result.hasErrors()){ return new ModelAndView("user/add","error", result.getAllErrors()); }else{ userService.addUser(user); return new ModelAndView(LIST); } } /** * 根据ID删除 * @param id * @return */ @RequestMapping(value="/del/{id}") public ModelAndView delete(@PathVariable int id){ userService.deleteUser(id); return new ModelAndView(LIST); } /** * 跳转至编辑页面 * @param id * @return */ @RequestMapping(value="/edit/{id}") public ModelAndView edit(@PathVariable int id){ User user=userService.getUserById(id); return new ModelAndView("user/edit","user",user); } /** * 编辑 * @param user * @return */ @RequestMapping(value="/edit") public ModelAndView update(@Valid User user,BindingResult result){ ModelAndView view=new ModelAndView(); if(result.hasErrors()){ view.addObject("error", result.getAllErrors()); view.setViewName("user/edit"); return view; }else{ userService.updateUser(user); return new ModelAndView(LIST); } } /** * 分页 * @param pageNo * @return */ @RequestMapping(value="/list/{pageNo}") public ModelAndView list(@PathVariable int pageNo){ Pages<User> pages=userService.getUserByPageNo(pageNo); return new ModelAndView("user/main","pages",pages); }}
原文:http://www.cnblogs.com/archie2010/archive/2011/05/06/2038792.html
- springMVC ibatis 整合案例
- SpringMVC+Spring+Ibatis整合
- SpringMVC与Ibatis整合
- springMVC+ibatis 框架整合
- Springmvc整合dwr案例
- SpringMVC+IbatIS注解整合工程。
- SpringMVC-Mybatis-Memcached整合案例
- Spring+springmvc+mybatis整合案例
- springmvc和mybaits整合案例
- SpringMVC-Mybatis-Memcached整合案例
- SpringMVC-Mybatis-Memcached整合案例
- SpringMVC-Mybatis-Memcached整合案例
- spring和springmvc整合案例
- liferay + struts2 + spring + ibatis整合开发案例
- spring+springmvc+ibatis整合注解方式实例
- spring+springmvc+ibatis整合注解方式实例。
- SpringMVC+MyBatis环境整合开发案例
- springmvc+spring+mybatis整合案例 [first]
- SpeedButton使用技巧
- Asterisk拨号方案语法基础
- JavaScript学习笔记1—变量和数据类型
- 修改Oracle最大连接数
- OpenCV学习笔记一(CvSeq的使用)
- springMVC ibatis 整合案例
- Android动画学习笔记
- 游戏编程推荐书籍
- 正在使用的 Google Chrome 扩展插件
- 关于Android4.0及以下系统版本使用PopupWindow.dismiss()时内部的Drawable透明的问题
- 针对ADT升级到17以上出现NoClassDefFoundError问题的解决办法
- poj 2060
- forecast过期问题
- 程序 'jps' 已包含在下列软件包中