`
jilong-liang
  • 浏览: 481316 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

SpringMVC+IbatIS注解整合Demo

阅读更多

 

application-mvc.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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:oscache="http://www.springmodules.org/schema/oscache"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	 	 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
	 	 http://www.springframework.org/schema/context
	 	 http://www.springframework.org/schema/context/spring-context-2.5.xsd 
	 	 http://www.springframework.org/schema/aop 
	 	 http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
	 	 http://www.springframework.org/schema/tx 
	 	 http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
	 	 http://www.springmodules.org/schema/oscache 
	 	 http://www.springmodules.org/schema/cache/springmodules-oscache.xsd">

	<context:annotation-config/>
	<!-- 扫描包 -->
	<context:component-scan base-package="com.org"/>
	
	<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
		<!-- 匹配jsp文件下面的所有.jsp的页面 -->
		<property name="prefix" value="/jsp/" />
		<property name="suffix" value=".jsp" /> 
	</bean>
	 <!-- 
	 	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/" p:suffix=".jsp" />-->
	
	<!-- 配置jdbc -->
	<bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
		<property name="locations">
			<value>classpath:jdbc.properties</value>
		</property>
	</bean>
	<!-- 配置數據源 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<!-- 连接池启动时的初始值 -->
        <property name="initialSize" value="1"/>  
        <property name="maxActive" value="500"/>    
        <property name="maxIdle" value="2"/>        
        <property name="minIdle" value="1"/> 
	</bean>
		
	 <!-- 定义Ibatis配置
	 	org.springframework.orm.ibatis.SqlMapClientFactoryBean
	  -->
   <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
       <property name="configLocation">
           <value>classpath:ibatis-Base.xml</value>
       </property>
       <property name="dataSource">
       		<ref bean="dataSource"/> 
       </property>
    </bean>
   <!-- 配置sqlMapClientTemplate模板 -->
	<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
		<property name="sqlMapClient" ref="sqlMapClient"/>
	</bean>
	<!-- 配置 transactionManager事物管理-->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
	
	<!-- Spring AOP config配置切点 -->  
	<aop:config>
		<aop:pointcut expression="execution(* com.org.service.*.*(..))" id="bussinessService" />
		<aop:advisor advice-ref="txAdvice" pointcut-ref="bussinessService"/>
	</aop:config>

	<!-- 配置那个类那个方法用到事务处理 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="delete*" propagation="REQUIRED"/>
			<tx:method name="*" propagation="REQUIRED"/>
		</tx:attributes>
	</tx:advice>
	 
</beans>

 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <!--
		#####################################配置处理乱码#####################################
	-->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>GBK</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<!-- spring监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<!--
			默认的配置
			<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
			<param-value>/WEB-INF/application-servlet.xml</param-value>
		-->
		<param-value>classpath:application-*.xml</param-value>
	</context-param>

	<!--
		#####################################Spring	MVC配置#################################
		application-servlet.xml,规定:xxx-servlet.xml-->
	<servlet>
		<servlet-name>application</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:application-*.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>application</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	 
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

model-user.xml

 

<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="userSqlMap">

	<typeAlias alias="user" type="com.org.model.User" />
	<!-- 条件查询 -->
	<select id="getUserList" resultClass="user">
		select * from user
	   </select>

</sqlMap>
	

 service

package com.org.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.org.dao.IUserDao;
import com.org.model.User;
import com.org.service.IUserService;

@Service 
public class UserServiceImpl implements IUserService{
	/**
	 * 注入
	 */
	@Resource 
	private IUserDao userDao;
	
	public List<User> getUserList() {
		return userDao.getUserList();
	}
	
}

 Dao

package com.org.dao.impl;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.org.IbatisBaseDao;
import com.org.dao.IUserDao;
import com.org.model.User;


@Repository 
public class UserDaoImpl extends IbatisBaseDao implements IUserDao{

	public List<User> getUserList() {
		try {
			//return sqlMapClient.queryForList("getUserList");
			return getSqlMapClientTemplate().queryForList("getUserList");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

 IbatisBaseDao

package com.org;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.ibatis.sqlmap.client.SqlMapClient;


/**
 * @author:liangjilong
 */
public class IbatisBaseDao extends SqlMapClientDaoSupport{

	/**
	 * spring注入
	 */
	@Resource(name = "sqlMapClient")
    private SqlMapClient sqlMapClient;  
  
    @PostConstruct  
    public void initSqlMapClient() {  
        super.setSqlMapClient(sqlMapClient);  
    } 
}

 UserController

package com.org.controller;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

import com.org.model.User;
import com.org.service.IUserService;

/**
 *@Author:liangjilong
 *@Date:2014-2-25
 *@Version:1.0
 *@Description:
 */
@Controller
public class UserController {

	@Resource
	private IUserService userService; 
	
	/***
	 * 方法一请求使用String
	 * 
	 * 请求@RequestMapping匹配的URL
	 * request 
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/userList1.do")
	public String userList1(HttpServletRequest request,HttpServletResponse response) throws Exception {
		List<User> lists=userService.getUserList();
		if(lists!=null){
			request.setAttribute("userList",lists);
		}
		//userList指跳转到userList.jsp页面
		return "userList";
	}
	/**
	 * 方法二请求使用ModelAndView
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value = "/userList2.do")
	public ModelAndView userList2(HttpServletRequest request,HttpServletResponse response) throws Exception {
		List<User> lists=userService.getUserList();
		if(lists!=null){
			request.setAttribute("userList",lists);
		}
		//userList指跳转到userList.jsp页面
		return new ModelAndView("userList");
	}
 

}

SQLScript

/*
Navicat MySQL Data Transfer

Source Server         : MySQL
Source Server Version : 50528
Source Host           : localhost:3306
Source Database       : test

Target Server Type    : MYSQL
Target Server Version : 50528
File Encoding         : 65001

Date: 2014-03-30 12:52:38
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'admin', 'admin');

 

Entity

package com.org.model;

import com.org.BaseEntity;

public class User extends BaseEntity {

	private int id;

	private String password;
	private String username;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}

 

 

 

源代码

  • 大小: 20.1 KB
  • 大小: 14.4 KB
0
1
分享到:
评论

相关推荐

    SpringMVC+ibatis+velocity整合例子

    本示例聚焦于“SpringMVC+ibatis+velocity”的整合应用,这是一套常用的Java Web开发组合,用于构建动态、数据驱动的网站。下面我们将深入探讨这三个组件的核心功能及其整合过程。 首先,SpringMVC是Spring框架的一...

    SpringMVC+Ibatis+MySQL Demo

    SpringMVC与Ibatis的整合通常通过Spring的SqlSessionFactoryBean和MyBatisSqlSessionFactory配置完成。这样,Spring可以管理SqlSession的生命周期,并通过@Autowired注解实现Service层对DAO层的依赖注入。 在实际...

    springMVC+Velocity+iBATIS整合

    在这个"SpringMVC+Velocity+iBATIS的整合小demo"中,可能包含了这些配置文件、Controller类、Service接口及其实现、Mapper接口及其XML配置、Velocity模板文件等。通过这些文件,我们可以看到一个完整的Java Web应用...

    Spring+ibatis+SpringMVC简单集体demo案例

    《Spring+Ibatis+SpringMVC简单集成案例详解》 在现代Java Web开发中,Spring框架因其强大的功能和灵活性而备受青睐。它不仅提供了依赖注入(DI)和面向切面编程(AOP)的核心特性,还通过SpringMVC扩展了对Web应用...

    springMVC+spring+Ibatis增删改查的demo

    总结来说,"springMVC+spring+Ibatis增删改查的demo" 提供了一个完整的后端解决方案,通过集成这三大框架,实现了与数据库交互的基本功能。对于初学者而言,这是一个很好的学习资源,可以深入了解如何在实际项目中...

    spring mvc+ibatis+mysql+easyui简单demo

    通过XML配置或注解,开发者可以定义SQL映射文件,将SQL查询与Java方法关联。这样,当执行特定的Java方法时,iBATIS会动态生成并执行对应的SQL,返回结果集供业务层使用。iBATIS还支持事务管理,可以与Spring的事务...

    WebDemo:SpringMVC + iBatis的示例,这是一个详细项目

    【标题】"WebDemo:SpringMVC + iBatis的示例,这是一个详细项目" 提供了一个关于如何集成和使用SpringMVC与iBatis框架的实战应用。这个项目是针对Java开发者的,旨在帮助他们理解和掌握这两种流行技术在实际web开发...

    springMVC+spring+hibernate+jquery分页完整项目,完整代码

    本项目是一个基于SpringMVC、Spring、Hibernate和jQuery的完整分页应用,涵盖了后端服务、数据持久化、前端交互等多个重要技术领域。下面将详细解释这些技术及其在项目中的应用。 1. SpringMVC:SpringMVC是Spring...

    springmvc-ibatis-html模版登录后台模版demo

    【标题】"springmvc-ibatis-html模版登录后台模版demo"是一个示例项目,它演示了如何在Java Web开发中结合Spring MVC和iBatis框架构建一个包含登录功能的后台模板。这个项目旨在帮助开发者理解这两个流行框架在实际...

    SSM三大框架的整合(技术学习).docx

    ### SSM三大框架的整合(Spring+SpringMVC+MyBatis) #### 1、基本概念 ##### 1.1、Spring Spring 是一个开源框架,最初由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分...

    springMVC集成json

    在现代Web开发中,Spring MVC框架是Java领域中...通过这样的整合,我们可以方便地实现前后端的数据交互,同时利用MyBatis进行高效的数据操作。在实际开发中,这样的示例能帮助开发者快速搭建起一个运行良好的Web应用。

    spring boot 集成 mybatis

    在本文中,我们将深入探讨如何将Spring Boot与MyBatis集成,从而构建一个高效、简洁的SSM(Spring、SpringMVC、MyBatis)应用。Spring Boot以其自动化配置和开箱即用的特性,极大地简化了Java Web开发。而MyBatis...

    MyBatis.pdf

    - MyBatis 最初源自 Apache 的一个开源项目 iBatis,在 2010 年 6 月,该项目由 Apache Software Foundation 迁移到 Google Code,并正式更名为 MyBatis。 - 自此以后,MyBatis 成为了一个基于 Java 的持久层框架...

Global site tag (gtag.js) - Google Analytics