如何在eclipse中搭建eclipse建立springmvcc

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
在Eclipse 中创建SpringMVC Web应用+UserLogin+DAO.doc 31页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:100 &&
在Eclipse 中创建SpringMVC Web应用+UserLogin+DAO.doc
你可能关注的文档:
··········
··········
Spring的MVC Web应用中的持久层技术1、常规的JDBC编程实现(1)比较糟糕的设计方案:业务层组件与数据访问组件混合在一起我们在常规的编程实现中,经常会在业务类中既写业务逻辑处理,同时又写与底层存储媒介交互代码,使业务类变得复杂,且不便于维护。(2)将数据访问从业务处理类中分离中,形成DAO组件因此我们用DAO模式将业务逻辑与底层存储媒介交互分离,DAO的英文全称为Data Access Object。DAO充当业务层与持久层的交互入口。2、Spring中的DAO程序的代码----进一步对 JDBC作了简化(1)下面为Spring中的DAO程序的代码示例。(2)Spring对持久层的支持技术:提供一个JdbcTemplate类来实现JDBC的数据库访问,并简化其编程实现。3、利用Spring的JdbcTemplate类来实现JDBC的数据库访问(1)常规的JDBC的访问代码所存在的问题JDBC 提供了还算不错的数据库抽象,但是需要用痛苦的API。这些问题包括: 由于JDBC是一个非常基础的数据存取API,并且它封装了对关系型数据库的访问但是我们应该承认的是,JDBC仍然属于层次较低的API,所以在使用的时候,我们不得不编写大量的代码,来完成一件简单的工作。需要冗长的错误处理代码来确保ResultSets,Statements以及(最重要的)Connections在使用后关闭这意味着对JDBC的正确使用可以快速地导致大量的代码量。它还是一个常见的错误来源。Connection leak可以在有负载的情况下快速宕掉应用程序。 JDBC不提供异常的层次SQLException相对来说不能说明任何问题,JDBC不提供异常的层次,而是用抛出SQLException来响应所有的错误。找出到底哪里出错了——例如,问题是死锁还是无效的SQL?——要去检查SQLState或错误代码。这意味着这些值在数据库之间是变化的。(2)作为对比,首先让我们来看一段传统的JDBC代码:Connection conn =Statement stmt =try {conn = dataSource.getConnection();stmt = con.createStatement();stmt.executeUpdate(&UPDATE userInfo SET age = 18 WHERE id = 'erica'&);}catch(SQLException e){}finally {if (stmt != null) {try {stmt.close();}catch (SQLException ex) {logger.warn(&Exception in closing JDBC Statement&, ex);}}if (conn != null) {try {conn.close();}catch (SQLException ex) {logger.warn(&Exception in closing JDBC Connection&, ex);}}}类似上面的代码非常常见。主要的问题体现在下面几点:为了执行一个SQL语句,我们必须编写这么多行的代码,而其中很多行的代码与应用逻辑并无关因为,我们必须自己获得Connection与Statement对象、执行SQL、捕捉异常、关闭相关的资源),并且,这样的代码还会在系统其他地方(也许是每个需要数据库访问的地方)重复出现。对于重复性的劳动,我们应该使其自动化如何使其自动化呢?我们应该知道,在一般的JDBC查询功能实现中除了SQL语句的不同以及记录集的处理不同以外,大部分的查询代码都没有太大的差别,所以我们的目标就是抽取共同的部分,而把特定的部分留给开发人员自己。于是,大家开始寻找一些设计模式以改进如此的设计,Template模式的应用是其中一种典型的改进方案。(3)利用Spring中的JdbcTemplate类来进行数据库访问Spring的JDBC封装,很大一部分就是借助Template模式实现,它提供了一个优秀的JDBC模板库,借助这个工具,我们可以简单有效的对传统的JDBC编码方式加以改进。下面是借助Spring JDBC Template修改过的代码,这段代码完成了与上面代码相同的功能。JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);jdbcTemplate.update(&UPDATE user SET age = 10 WHERE id = 'erica'&);可以看到,两行代码完成了上面需要多行代码实现的功能。所有冗余
正在加载中,请稍后...HTTP/1.1 服务器太忙本帖子已过去太久远了,不再提供回复功能。手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) - 学习 感悟 分享 - ITeye博客
博客分类:
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案。标准的MVC设计模式,将整个系统划分为显示层、Controller层、Service层、Dao层四层,使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理, MyBatis作为数据对象持久化引擎。
一. 框架详情
Spring 是一个轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC 属于SpringFrameWork的后续产品,分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis 是一个基于Java的持久层框架。MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java映射成数据库中的记录。
二. 创建Maven项目
Eclipse中用Maven创建项目
按默认Next
找到maven-archetype-webapp后,点击next
填写相应的信息,GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。Package填了默认给你建一个包,不写也可以。
刚建好的目录如下
Maven规定必须添加以下Source Folder:src/main/resourcessrc/main/javasrc/test/resourcessrc/test/java在这步之前最好先项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre。
分别修改输出路径为,对应关系如下:
将项目转换成Dynamic Web Project,在项目上右键Properties,在左侧选择 Project Facets。
设置部署时的文件发布路径,删除test的两项,因为test是测试使用,并不需要部署。设置将Maven的jar包发布到lib下。Add -& Java Build Path Entries -& Maven Dependencies -& Finish
三. Maven引入需要的JAR包
&project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.yingjun.test&/groupId&
&artifactId&TradingState&/artifactId&
&packaging&war&/packaging&
&version&2.0.1&/version&
&properties&
&project.build.sourceEncoding&UTF-8&/project.build.sourceEncoding&
&maven.build.timestamp.format&yyyyMMddHHmmss&/maven.build.timestamp.format&
&spring.version&3.2.9.RELEASE&/spring.version&
&mybatis.version&3.1.1&/mybatis.version&
&mybatisspring.version&1.1.1&/mybatisspring.version&
&/properties&
&dependencies&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-core&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-webmvc&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-test&/artifactId&
&version&${spring.version}&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis&/artifactId&
&version&${mybatis.version}&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis-spring&/artifactId&
&version&${mybatisspring.version}&/version&
&/dependency&
&dependency&
&groupId&mysql&/groupId&
&artifactId&mysql-connector-java&/artifactId&
&version&5.1.34&/version&
&/dependency&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&4.11&/version&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&c3p0&/groupId&
&artifactId&c3p0&/artifactId&
&version&0.9.1.2&/version&
&/dependency&
&dependency&
&groupId&org.aspectj&/groupId&
&artifactId&aspectjweaver&/artifactId&
&version&1.8.1&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&jstl&/artifactId&
&version&1.2&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&servlet-api&/artifactId&
&version&3.0&/version&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&javax.servlet.jsp&/groupId&
&artifactId&jsp-api&/artifactId&
&version&2.2&/version&
&scope&provided&/scope&
&/dependency&
&dependency&
&groupId&commons-fileupload&/groupId&
&artifactId&commons-fileupload&/artifactId&
&version&1.3.1&/version&
&/dependency&
&dependency&
&groupId&commons-lang&/groupId&
&artifactId&commons-lang&/artifactId&
&version&2.6&/version&
&/dependency&
&dependency&
&groupId&commons-codec&/groupId&
&artifactId&commons-codec&/artifactId&
&version&1.9&/version&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.5&/version&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-api&/artifactId&
&version&1.7.10&/version&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-log4j12&/artifactId&
&version&1.7.10&/version&
&/dependency&
&dependency&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&version&1.2.17&/version&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&fastjson&/artifactId&
&version&1.1.41&/version&
&/dependency&
&dependency&
&groupId&org.codehaus.jackson&/groupId&
&artifactId&jackson-mapper-asl&/artifactId&
&version&1.9.13&/version&
&/dependency&
&/dependencies&
&artifactId&maven-compiler-plugin&/artifactId&
&version&2.3.2&/version&
&configuration&
&source&1.7&/source&
&target&1.7&/target&
&/configuration&
&artifactId&maven-war-plugin&/artifactId&
&version&2.2&/version&
&configuration&
&version&3.0&/version&
&failOnMissingWebXml&false&/failOnMissingWebXml&
&/configuration&
&/plugins&
&finalName&${project.artifactId}_${project.version}_${maven.build.timestamp}&/finalName&
&/project&
四. 相关配置文件配置,整合SSM框架
&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"&
&!-- 配置 Spring --&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&!-- 防止Spring内存溢出监听器 --&
&listener&
&listener-class&org.springframework.web.util.IntrospectorCleanupListener&/listener-class&
&/listener&
&!-- 配置springmvc --&
&servlet-name&springMVC&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:spring-mvc.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&springMVC&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&!-- 字符集过滤器 --&
&filter-name&encodingFilter&/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-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&/web-app&
spring.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/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "&
&!-- 扫描service、dao组件 --&
&context:component-scan base-package="com.yingjun.test" /&
&!-- 分解配置 jdbc.properites --&
&context:property-placeholder location="classpath:jdbc.properties" /&
&!-- 数据源c3p0 --&
&bean id="dataSource" class="com.mchange.boPooledDataSource"&
&property name="driverClass" value="${jdbc.driverClassName}" /&
&property name="jdbcUrl" value="${jdbc.url}" /&
&property name="user" value="${jdbc.username}" /&
&property name="password" value="${jdbc.password}" /&
&property name="maxPoolSize" value="${c3p0.pool.size.max}" /&
&property name="minPoolSize" value="${c3p0.pool.size.min}" /&
&property name="initialPoolSize" value="${c3p0.pool.size.ini}" /&
&property name="acquireIncrement" value="${c3p0.pool.size.increment}" /&
&!-- sessionFactory 将spring和mybatis整合 --&
&bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&
&property name="dataSource" ref="dataSource" /&
&property name="configLocation" value="classpath:spring-mybatis.xml" /&
&property name="mapperLocations" value="classpath*:com/yingjun/test/mapping/**/*.xml" /&
&bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&
&property name="basePackage" value="com,yingjun.test.dao" /&
&property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /&
&bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&
&property name="dataSource" ref="dataSource" /&
&tx:advice id="transactionAdvice" transaction-manager="transactionManager"&
&tx:attributes&
&tx:method name="add*" propagation="REQUIRED" /&
&tx:method name="append*" propagation="REQUIRED" /&
&tx:method name="insert*" propagation="REQUIRED" /&
&tx:method name="save*" propagation="REQUIRED" /&
&tx:method name="update*" propagation="REQUIRED" /&
&tx:method name="modify*" propagation="REQUIRED" /&
&tx:method name="edit*" propagation="REQUIRED" /&
&tx:method name="delete*" propagation="REQUIRED" /&
&tx:method name="remove*" propagation="REQUIRED" /&
&tx:method name="repair" propagation="REQUIRED" /&
&tx:method name="delAndRepair" propagation="REQUIRED" /&
&tx:method name="get*" propagation="SUPPORTS" /&
&tx:method name="find*" propagation="SUPPORTS" /&
&tx:method name="load*" propagation="SUPPORTS" /&
&tx:method name="search*" propagation="SUPPORTS" /&
&tx:method name="datagrid*" propagation="SUPPORTS" /&
&tx:method name="*" propagation="SUPPORTS" /&
&/tx:attributes&
&/tx:advice&
&aop:config&
&aop:pointcut id="transactionPointcut" expression="execution(* com.yingjun.test.service..*Impl.*(..))" /&
&aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /&
&/aop:config&
为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态代理的实现:MapperFactoryBean。这个类 可以让你直接注入数据映射器接口到你的 service 层 bean 中。当使用映射器时,你仅仅如调 用你的 DAO 一样调用它们就可以了,但是你不需要编写任何 DAO 实现的代码,因为 MyBatis-Spring 将会为你创建代理。
spring-mybatis.xml
&?xml version="1.0" encoding="UTF-8" ?&
&!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&
&configuration&
&!-- 暂时不需要其他配置--&
&/configuration&
spring-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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"&
&!-- 默认的注解映射的支持 --&
&mvc:annotation-driven /&
&!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 --&
&context:component-scan base-package="com.yingjun.test.controller" /&
&!--避免IE执行AJAX时,返回JSON出现下载文件 --&
&bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"&
&property name="supportedMediaTypes"&
&value&text/charset=UTF-8&/value&
&/property&
&!-- 定义跳转的文件的前后缀 ,视图模式配置 --&
class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --&
&property name="prefix" value="/WEB-INF/jsp/" /&
&property name="suffix" value=".jsp" /&
&!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --&
&bean id="multipartResolver"
class="org.springframework.monsMultipartResolver"&
&!-- 默认编码 --&
&property name="defaultEncoding" value="utf-8" /&
&!-- 文件大小最大值 --&
&property name="maxUploadSize" value="" /&
&!-- 内存中的最大值 --&
&property name="maxInMemorySize" value="40960" /&
log4j.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.194:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
c3p0.pool.size.max=20
c3p0.pool.size.min=5
c3p0.pool.size.ini=3
c3p0.pool.size.increment=2
jdbc.properties
log4j.rootLogger=info, console, debug, app, error
###Console ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d %p[%C:%L]- %m%n
### debug ###
log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.File = log/debug.log
log4j.appender.debug.Append = true
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.DatePattern='.'yyyy-MM-dd
log4j.appender.debug.layout = org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern = %d %p[%c:%L] - %m%n
### app ###
log4j.appender.app = org.apache.log4j.DailyRollingFileAppender
log4j.appender.app.File = log/app.log
log4j.appender.app.Append = true
log4j.appender.app.Threshold = INFO
log4j.appender.app.DatePattern='.'yyyy-MM-dd
log4j.appender.app.layout = org.apache.log4j.PatternLayout
log4j.appender.app.layout.ConversionPattern = %d %p[%c:%L] - %m%n
### Error ###
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = log/error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.DatePattern='.'yyyy-MM-dd
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern =%d %p[%c:%L] - %m%n
五. 利用MyBatis Generator自动创建实体类、映射文件以及DAO接口
MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。生成代码需要的文件和jar并建立如下目录结构:在generatorl.xml中配置相关的数据库连接,已经数据库表:&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"&
&generatorConfiguration&
&!-- 数据库驱动 --&
&classPathEntry location="mysql-connector-java-5.1.34.jar" /&
&context id="DB2Tables" targetRuntime="MyBatis3"&
&commentGenerator&
&property name="suppressDate" value="true" /&
&!-- 是否去除自动生成的注释 true:是 : false:否 --&
&property name="suppressAllComments" value="true" /&
&/commentGenerator&
&!--数据库链接URL,用户名、密码 --&
&jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://192.168.1.194:3306/noc"
userId="root" password="root"&
&/jdbcConnection&
&javaTypeResolver&
&property name="forceBigDecimals" value="false" /&
&/javaTypeResolver&
&!-- 生成模型的包名和位置 --&
&javaModelGenerator targetPackage="com.yingjun.test.model"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&property name="trimStrings" value="true" /&
&/javaModelGenerator&
&!-- 生成映射文件的包名和位置 --&
&sqlMapGenerator targetPackage="com.yingjun.test.mapping"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&/sqlMapGenerator&
&!-- 生成DAO的包名和位置 --&
&javaClientGenerator type="XMLMAPPER" targetPackage="com.yingjun.test.dao"
targetProject="src"&
&property name="enableSubPackages" value="true" /&
&/javaClientGenerator&
&!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名 --&
&table tableName="other_list" domainObjectName="OtherList"
enableCountByExample="fasle" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false" &
&/context&
&/generatorConfiguration&
打开CMD窗口 进入该目录结构,输入命令行:java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
运行完成后会生成相应的dao mapper 和model,是不是很爽。
六. 建立Service层以及conrorller层
package com.yingjun.test.
public interface OtherServiceI {
public String getOterList();
package com.yingjun.test.
import java.util.ArrayL
import java.util.A
import java.util.HashS
import java.util.L
import java.util.M
import java.util.S
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.S
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerF
import com.yingjun.test.dao.OtherListM
import com.yingjun.test.model.OtherL
import com.yingjun.test.model.OtherListD
public class OtherServiceImpl implements OtherServiceI {
@Autowired
private OtherListMapper otherListM
public String getOterList() {
Set&String& set=new HashSet&String&();
List&OtherList& list=otherListMapper.selectAll();
List&OtherListDomain& jsonList=new ArrayList&OtherListDomain&();
for(OtherList other:list){
String title=other.getTitle();
if(set.contains(title)){
List&OtherList& t_list=new ArrayList&OtherList&();
for(OtherList data:list){
if(title.equals(data.getTitle())){
t_list.add(data);
OtherListDomain domain=new OtherListDomain();
domain.setTitle(title);
domain.setItems(t_list);
jsonList.add(domain);
set.add(other.getTitle());
return JSON.toJSONString(jsonList, SerializerFeature.WriteMapNullValue);
package com.yingjun.test.
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import com.alibaba.fastjson.JSON;
import com.yingjun.test.service.OtherServiceI;
import com.yingjun.test.service.StockStatusServiceI;
@Controller
@RequestMapping(value = "/")
public class TSSController {
@Autowired
private OtherServiceI otherS
@RequestMapping(value="/getOtherList",produces="text/charset=UTF-8" )
@ResponseBody
private String getOtherList(){
String json=otherService.getOterList();
七. 建立测试类
import java.util.L
import org.apache.log4j.LogM
import org.apache.log4j.L
import org.junit.T
import org.junit.runner.RunW
import org.springframework.beans.factory.annotation.A
import org.springframework.test.context.ContextC
import org.springframework.test.context.junit4.SpringJUnit4ClassR
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring.xml"})
public class TestMybatis {
@Autowired
private OtherServiceI
public void test() {
String list=service.getOterList();
八. 通过浏览器进行验证
http://localhost:8080/TzyjStateService/getOtherList
至此,测试成功,SSM三大框架的整合就完成了,有什么其他需求可以在此基础继续添加。
浏览 43375
wosyingjun
浏览: 211832 次
来自: 杭州
浏览量:76757
juvconan 写道./redis-trib命令建立集群时, ...
Sentinel集群的时候
master shutd ...
楼主什么时候更shiro权限啊
三2、在3个ActiveMQ节点中配置conf/activem ...
向博主学习

我要回帖

更多关于 eclipse集成springmvc 的文章

 

随机推荐