`

mybatis3+spring 3+ext js整合套路

阅读更多
mybatis3+spring 3+ext js整合套路,可以小结一下.先来看mybatis 3及模型

 
1 首先是MODEL层,比如对于用户管理
   先来个user.java,是个POJO

2 再搞一个persisten层,存放mybatis 3的mapper接口和文件,注意把它们都放
入一个包中,比如
 
public interface UserMapper {
	Long getId();
	User login(Map<String,Object> param);
	User getUser(Map<String,Object> param);
	List<User> getUserList();
	List<Map<String,Object>> getUserNameList();
	void insertUser(User user);


   usermapper.xml:
  <mapper namespace="com.user.persistence.UserMapper">
   <insert id="insertUser" parameterType="User" >
  	INSERT INTO t_user (id,name, password, create_date)
    VALUES (#{id},#{name}, #{password}, #{createDate,jdbcType=TIMESTAMP})
  </insert>
   



3 userdao层

 

@Component
public class UserDao extends SqlSessionDaoSupport {
public void insertUser(User user) {
		getSqlSession().insert("com.liao.user.persistence.UserMapper.insertUser", user);
	}

 ..............


  
4 service层
   
@Service
//默认将类中的所有函数纳入事务管理.
@Transactional
public class UserService{
	@Autowired
	private UserMapper userMapper;

 public void insertUser(User user,Map<String,Object> param) {
		//新增用户
		userMapper.insertUser(user);




5 controller层
  
@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserService userService;

@RequestMapping(value="/save",method=RequestMethod.POST)
	public @ResponseBody Map<String,Object> saveOrUpdate(HttpServletRequest request,   
            HttpServletResponse response){
		Map<String,Object> responseMap = new HashMap<String,Object>();

  User user = new User();
				Long newId = userService.getId();
								user.setId(newId);
				user.setCreateDate(new Date());
				user.setName(name);
				user.setPassword(password);
				Map<String,Object> param = new HashMap<String,Object>();
				param.put("user_id", newId);
								userService.insertUser(user, param);
				responseMap.put("method", "Create");
				responseMap.put("success", "true");
				responseMap.put("info", "新增成功!");
			}
			return responseMap;




  注意,由于要返回相关的信息JSON格式给前端EXT,因此注意这里使用了
spring mvc 3中的很多技术,加个@responsebody就能生成JSON了,十分方便
,所以返回时,用一个MAP保存了要给前端显示的EXT JS信息了.


6 前端EXT JS要点:
    getForm: function() {
            var form = new Ext.form.FormPanel({
url:'user/save',
                        ....................
            ..........
  
  submit: function() {
            if (this.form.getForm().isValid()) {
                var id = this.form.getForm().findField("id").getValue();
                this.form.getForm().submit({
                    waitTitle: '保存数据',
                    waitMsg: '正在保存……',
                    scope: this,
                    method: 'post',
                    params: '',
                    success: function(form, action) {
                        var info = action.result.info;
                        if (action.result.success) {
                            this.store.reload();
                            if (action.result.method == "Create") {
                                this.form.getForm().reset();
                            } else {
                                this.dlg.hide();
                            }
                        }
                        Ext.Msg.alert('信息', info);
                    },
                    failure: function(form, action) {
                        var info = action.result.info;
	    				Ext.Msg.alert('提示', info);
                    }
                });




7 mybatis3 跟spring 的配置整合
  1) 搞个jdbc.properties,存放datasoruce
    jdbc.driverClassName= com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.databaseurl=jdbc:mysql://localhost:3306/springibatisextjs3
jdbc.username=root
jdbc.password=33333

  2)web.xml
   

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param>
	
	<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<!-- Processes application requests -->
	<servlet>
		<servlet-name>appServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>


3)先看root-context.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"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	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.1.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
		p:location="/WEB-INF/jdbc.properties" />
		
	<!-- 数据源配置, 使用应用中的DBCP数据库连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<!-- Connection Info -->
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.databaseurl}" />
           .................		
	</bean>

	<!-- define the SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.liao" />
    </bean>

    <!-- scan for mappers and let them be autowired -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.kimho" />
    </bean>
    
	<!-- enable transaction demarcation with annotations-->
	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
	 
	<!-- transaction manager, use JtaTransactionManager for global tx-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    
    <!-- 激活annotation功能 -->
	<context:annotation-config />
	<!-- 激活annotation功能 -->
	<context:spring-configured/>
	
	<!-- 不扫描带有@Controller注解的类。因为这些类已经随容器启动时,在servlet-context中扫描过一遍了 -->
	<context:component-scan base-package="com.liao">
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
</beans>


4) 业务类的servlet.xml
    

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:beans="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
	
	<!-- Configures the @Controller programming model 必须加上这个,不然请求controller时会出现no mapping url错误-->
	<mvc:annotation-driven />
	
	<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources/ directory -->
	<resources mapping="/images/**" location="/images/" />
    <resources mapping="/scripts/**" location="/scripts/" />
    <resources mapping="/styles/**" location="/styles/" />

	<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/jsp directory -->
	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/jsp/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<!-- 扫描业务组件,让spring不扫描带有@Service注解的类(留在root-context.xml中扫描@Service注解的类),防止事务失效 -->
	<context:component-scan base-package="com.liao">
		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
	</context:component-scan>
	
</beans:beans


分享到:
评论
2 楼 di1984HIT 2014-10-22  
写的很好啊
1 楼 zx_921 2012-07-16  
   介绍的比较详细 是我想要的 谢谢啦

相关推荐

    mybatis3+spring4完美整合jar包

    本压缩包"mybatis3+spring4完美整合jar包"提供了最新的整合版本,帮助开发者快速构建基于MyBatis3和Spring4的应用。 MyBatis3是一个轻量级的持久层框架,它简化了SQL操作,允许开发者直接编写SQL语句,避免了ORM...

    mybatis3+spring+springMVC4整合jar包.rar

    标题 "mybatis3+spring+springMVC4整合jar包.rar" 描述的是一个整合了MyBatis 3、Spring 4 和 Spring MVC 4 的项目压缩包。这个压缩包通常用于快速搭建一个基于Java的Web开发环境,尤其是用于处理数据库操作和前端...

    通用权限管理系统+springboot+mybatis plus+spring security+jwt+redis+mysql

    后端使用SpringBoot框架进行业务逻辑开发,利用Spring Security实现权限控制。数据库采用MySQL进行数据存储,使用MyBatis进行数据访问。 权限控制模块设计包括用户、角色和权限三个主要模块。用户模块用于管理用户...

    基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统.zip

    基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统 基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统 基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统 基于SSM(springmvc+spring+mybatis)+...

    基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统源码.zip

    基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统源码.zip 基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统源码.zip 基于SSM(springmvc+spring+mybatis)+Mysql图书管理系统源码.zip 基于SSM...

    Struts2+mybatis3+spring3整合

    Struts2、MyBatis3和Spring3是Java Web开发中的三大...以上就是Struts2、MyBatis3和Spring3整合的基础知识和在一个Student管理小案例中的具体应用。通过这样的整合,开发者可以构建出功能强大、结构清晰的Web应用程序。

    SpringMvc+Spring+Mybatis+Maven+注解方式=整合

    "SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...

    基于SpringBoot+Spring+SpringMvc+Mybatis+Shiro+Redis 开发单点登录管理系统源码

    基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...

    基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统

    项目描述 说明: spring security 全注解式的权限管理 动态配置权限,角色和资源,权限控制到...Springboot+Mybatis+ SpringMvc+springsecrity+Redis+bootstrap+jquery 数据库文件 压缩包内 jar包文件 maven搭建

    struts2+spring+mybatis+easyui的实现

    总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...

    基于SpringBoot + Mybatis + Spring Security + Semantic UI 的图书管理系统源码

    基于SpringBoot + Mybatis + Spring Security + Semantic UI 的图书管理系统源码 基于SpringBoot + Mybatis + Spring Security + Semantic UI 的图书管理系统源码 基于SpringBoot + Mybatis + Spring Security...

    mybatis3+spring+springMVC4整合jar包

    【标题】"mybatis3+spring+springMVC4整合jar包"是一个集合了多个关键组件的软件包,旨在简化Java EE开发中的数据访问层、业务逻辑层以及表现层的集成工作。这个整合包包括了MyBatis 3、Spring 4.0.x以及Spring MVC ...

    基于SpringMVC+Spring+MyBatis+Maven项目案例.zip

    基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...

    Mybatis3+Spring4 +Struts2整合源码

    【标题】"Mybatis3+Spring4 +Struts2整合源码"是一个示例项目,展示了这三大流行Java Web框架的集成与协作。Mybatis3是轻量级的持久层框架,Spring4则是一个全面的企业级应用框架,而Struts2则作为MVC架构的一部分,...

    mybatis3+spring+springMVC4整合jar包.rar下载

    这个“mybatis3+spring+springMVC4整合jar包”是一个集成了这三个组件的库,方便开发者快速搭建项目环境。下面将详细解释这三者的核心概念、功能以及它们如何协同工作。 1. Spring:Spring 是一个全面的Java应用...

    mybatis3+spring3+springMVC框架整合

    mybatis3+spring3+springMVC框架整合 maven的库是本地库,可以自己修改一下,如果不会修改我也附带了所有的jar包。数据库是Mysql,库表里面就映射了一个User表,看po可以自己创建。

    mybatis3+spring4+struts2.3整合jar

    标题 "mybatis3+spring4+struts2.3整合jar" 暗示了这是一个包含MyBatis 3、Spring 4和Struts 2.3框架集成的Java项目压缩包。这些技术是Java Web开发中常用的组件,用于构建高效、可维护的Web应用程序。以下是对每个...

    基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序

    基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序 基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程序 基于 Spring Boot + MyBatis Plus + Vue ...

Global site tag (gtag.js) - Google Analytics