RPM软件安装
2015-07-28 12:04
676 查看
由于spring暂不支持ibatis3,但是mybatis3自己开发了一套针对spring的支持,所以整合中引入了mybatis_spring的jar包。
具体的项目结构图如下
在整合之前,参考了不少网上的资料,但是发现其中有过多的配置文件,我在配置中,依靠mybatis本身的映射机制以及spring的注解机制,把配置文件尽量的减少了。可以参考/article/7502438.html的配置。
主要的配置文件applicationContext.xml代码如下:
使用一个MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBeans。
basePackage属性是让你为映射器接口文件设置基本的包路径。你可以使用分号或逗号作为分隔符设置多于一个的包路径
没有必要去指定SqlSessionFactory 或SqlSessionTemplate,因为MapperScannerConfigurer将会创建MapperFactoryBean,之后自动装配。
@service是用于服务层的类文件。
@Autowired用来注入。
例如
@Autowired
private ConsumerMapper consumerMapper;
相当于new了一个ConsumerMapper的类。
需要在配置文件中进行以下配置
写道
<context:component-scan base-package="com.whatlookingfor.service" />
<context:annotation-config />
<tx:annotation-driven />
写道
<property name="typeAliasesPackage" value="com.whatlookingfor.domain" />
用来定义javabean的包位置,这样在mybatis的sql映射文件中,就可以该包下的类的简写(首字母小写)来定义,而不用定义该类的所在包的位置
web.xml 代码如下:
主要是配置了项目启动时,加载的配置文件contextConfigLocation的文件,以及struts的一些基本配置。
接下来以一个验证登陆的实例来说明
登陆页面主要代码如下:
我主要用的是jquery的ajax提交,点击id为 to_submit的登陆按钮后,所做的操作是执行 checkConsumer.action。
struts.xml的配置如下:
由于是ajax的提交,我选择了json格式的返回值,所以在项目中,我还引入了json的jar包。因此在配置中多了几项内容。
如果不需要格式的返回值,那么改为struts的默认格式
ConsumerAction.java的代码如下:
该action类 实现了ModelDriven的接口,具体机制,各位到网上去查阅。
在action类中,通过@Autowired 创建了一个ConsumerService的实例。
ConsumerService.java的代码如下
@service以及Autowired上面已经大概介绍过。
ConsumerMapper接口类的代码如下:
ConsumerMapper.xml代码如下
Consumer.java的代码如下:
package com.whatlookingfor.domain;
OK,至此,所有的代码已经全部贴完。
数据库就一张表 TB_CONSUMER,有两个字段 account,和password。
主要引入的jar包有spring的核心包,struts2的核心包,mybatis3.0的jar包,mybatis_spring 1.0jar包,json的jar包(jsonplugin-0.32.jar),使用的时候注意0.32和0.34的区别。
具体的项目结构图如下
在整合之前,参考了不少网上的资料,但是发现其中有过多的配置文件,我在配置中,依靠mybatis本身的映射机制以及spring的注解机制,把配置文件尽量的减少了。可以参考/article/7502438.html的配置。
主要的配置文件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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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"> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="username" value="root" /> <property name="password" value="root" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/test1" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- define the SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.whatlookingfor.domain" /> </bean> <context:component-scan base-package="com.whatlookingfor.service" /> <context:annotation-config /> <tx:annotation-driven /> <!-- 从base 包中搜索所有下面所有 interface,并将其注册到 Spring Bean容器中,其注册的class bean是MapperFactoryBean。 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.whatlookingfor.mapper" /> </bean> </beans>
使用一个MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBeans。
basePackage属性是让你为映射器接口文件设置基本的包路径。你可以使用分号或逗号作为分隔符设置多于一个的包路径
没有必要去指定SqlSessionFactory 或SqlSessionTemplate,因为MapperScannerConfigurer将会创建MapperFactoryBean,之后自动装配。
@service是用于服务层的类文件。
@Autowired用来注入。
例如
@Autowired
private ConsumerMapper consumerMapper;
相当于new了一个ConsumerMapper的类。
需要在配置文件中进行以下配置
写道
<context:component-scan base-package="com.whatlookingfor.service" />
<context:annotation-config />
<tx:annotation-driven />
写道
<property name="typeAliasesPackage" value="com.whatlookingfor.domain" />
用来定义javabean的包位置,这样在mybatis的sql映射文件中,就可以该包下的类的简写(首字母小写)来定义,而不用定义该类的所在包的位置
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"> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <!-- 配置Struts2核心Filter的名字 --> <filter-name>struts2</filter-name> <!-- 配置Struts2核心Filter的实现类 --> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <!-- 配置Filter拦截的URL --> <filter-mapping> <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 --> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
主要是配置了项目启动时,加载的配置文件contextConfigLocation的文件,以及struts的一些基本配置。
接下来以一个验证登陆的实例来说明
登陆页面主要代码如下:
$("#to_submit").click(function(){ $.post( "checkConsumer.action", { account:$("#account").val(), password:$("#password").val(), validation_code:$("#validation_code").val() }, function(data,textStats){ if(data.mess=="success"){ window.location.href="jsp/demo1.jsp"; }else{ $("#message").html("<font color='red'>"+data.mess+"</font>"); } },"json" );
我主要用的是jquery的ajax提交,点击id为 to_submit的登陆按钮后,所做的操作是执行 checkConsumer.action。
struts.xml的配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- 在这里可以include多个struts的配置文件 --> <!-- <include file="struts-default.xml" /> --> <constant name="struts.i18n.encoding" value="utf-8"></constant> <package name="main" extends="json-default"> <global-results> <result name="login">login.jsp</result> </global-results> <action name="checkConsumer" class="com.whatlookingfor.action.ConsumerAction" method="checkConsumer"> <result type="json" name="mess"></result> </action> </package> </struts>
由于是ajax的提交,我选择了json格式的返回值,所以在项目中,我还引入了json的jar包。因此在配置中多了几项内容。
<package name="main" extends="json-default">
<result type="json" name="mess"></result>
如果不需要格式的返回值,那么改为struts的默认格式
<package name="main" extends="struts-default">
<result name="success">login.jsp</result>
ConsumerAction.java的代码如下:
package com.whatlookingfor.action; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.ModelDriven; import com.whatlookingfor.domain.Consumer; import com.whatlookingfor.service.ConsumerService; public class ConsumerAction implements ModelDriven<Consumer>{ /** * */ private static final long serialVersionUID = -3532748434595941668L; @Autowired private ConsumerService consumerService; //通过实现ModelDriver接口,获取页面的consumer对象。必须定义个new model。 private Consumer consumer=new Consumer(); private String mess; public String getMess() { return mess; } public void setMess(String mess) { this.mess = mess; } public String checkConsumer() { Consumer consu=new Consumer(); consu=consumerService.getConsumer(consumer); //根据consu对象(数据库查询的信息)与consumer对象(从页面获取的信息),进行登录信息的验证比较 this.mess="密码错误"; return "mess"; } /** * 实现ModelDriver的必须实现的方法 * */ public Consumer getModel() { return consumer; } }
该action类 实现了ModelDriven的接口,具体机制,各位到网上去查阅。
在action类中,通过@Autowired 创建了一个ConsumerService的实例。
ConsumerService.java的代码如下
package com.whatlookingfor.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.whatlookingfor.domain.Consumer; import com.whatlookingfor.mapper.ConsumerMapper; @Service public class ConsumerService { @Autowired private ConsumerMapper consumerMapper; public Consumer getConsumer(Consumer consumer) { return consumerMapper.getConsumer(consumer); } }
@service以及Autowired上面已经大概介绍过。
ConsumerMapper接口类的代码如下:
package com.whatlookingfor.mapper; import java.util.List; import com.whatlookingfor.domain.Consumer; /** * @author Administrator * */ public interface ConsumerMapper { /** * * */ public Consumer getConsumer(Consumer consumer); }
ConsumerMapper.xml代码如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whatlookingfor.mapper.ConsumerMapper"> <select id="getConsumer" resultType="Consumer" parameterType="Consumer"> SELECT * FROM TB_CONSUMER WHERE ACCOUNT=#{account} </select> </mapper>
Consumer.java的代码如下:
package com.whatlookingfor.domain;
import java.io.Serializable; import com.whatlookingfor.base.PageInfo; public class Consumer extends PageInfo<Consumer> implements Serializable{ /** * */ private static final long serialVersionUID = -4075669481168367315L; private String account; private String password; public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
OK,至此,所有的代码已经全部贴完。
数据库就一张表 TB_CONSUMER,有两个字段 account,和password。
主要引入的jar包有spring的核心包,struts2的核心包,mybatis3.0的jar包,mybatis_spring 1.0jar包,json的jar包(jsonplugin-0.32.jar),使用的时候注意0.32和0.34的区别。
相关文章推荐
- PopupMenu-使用实例跟监听事件
- RHEL十二(安装和更新软件包)
- @产品经理的定位
- 某互联网金融公司“产品经理”培训圆满结束!
- apm文件夹释义
- 初创公司需不需要产品经理?
- 揭开移动 APM 的五大神秘面纱
- MPMediaPickerController 选取本地音频 在模拟器运行出错
- 《产品管理精华》目录
- 2.6-yum如何下载rpm包到本地
- 2.3-rpm查询
- 2.2-rpm安装和卸载
- C#中套接字对APM模式的封装
- rpm打包整理
- SAP PM表
- 作为产品经理,不应只知道往产品backlog增加新功能
- 作为产品经理,不应只知道往产品backlog增加新功能
- 什么是顶尖的互联网产品经理?
- APMServ 支持.htaccess伪静态
- Menu菜单之PopMenu