目录结构
表结构
- CREATE TABLE `user` (
- `id` int(10) NOT NULL auto_increment,
- `username` varchar(50) default NULL,
- `password` varchar(50) default NULL,
- `sex` varchar(10) default NULL,
- `age` int(10) default NULL,
- `birthday` varchar(50) default NULL,
- `city` int(10) default NULL,
- `salary` varchar(50) default NULL,
- `starttime` varchar(100) default NULL,
- `endtime` varchar(100) default NULL,
- `description` varchar(500) default NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=151 DEFAULT CHARSET=utf8;
1.导入相关依赖
父工程的pom文件,用来集中管理版本
- <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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>cn.zto.parent</groupId>
- <artifactId>zto-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>pom</packaging>
- <!-- 集中定义依赖版本号 -->
- <properties>
- <junit.version>4.12</junit.version>
- <spring.version>4.1.3.RELEASE</spring.version>
- <mybatis.version>3.2.8</mybatis.version>
- <mybatis.spring.version>1.2.2</mybatis.spring.version>
- <mybatis.paginator.version>1.2.15</mybatis.paginator.version>
- <mysql.version>5.1.32</mysql.version>
- <slf4j.version>1.6.4</slf4j.version>
- <jackson.version>2.4.2</jackson.version>
- <druid.version>1.0.9</druid.version>
- <httpclient.version>4.3.5</httpclient.version>
- <jstl.version>1.2</jstl.version>
- <servlet-api.version>2.5</servlet-api.version>
- <jsp-api.version>2.0</jsp-api.version>
- <joda-time.version>2.5</joda-time.version>
- <commons-lang3.version>3.3.2</commons-lang3.version>
- <commons-io.version>1.3.2</commons-io.version>
- <quartz.version>2.2.1</quartz.version>
- </properties>
- <dependencyManagement>
- <dependencies>
- <!-- 单元测试 -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <!-- Spring -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</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-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aspects</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>4.0.6.RELEASE</version>
- </dependency>
- <!-- Mybatis -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>${mybatis.version}</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>${mybatis.spring.version}</version>
- </dependency>
- <!-- MySql -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${mysql.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <!-- Jackson Json处理工具包 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <!-- 连接池 -->
- <dependency>
- <groupId>com.jolbox</groupId>
- <artifactId>bonecp-spring</artifactId>
- <version>0.8.0.RELEASE</version>
- </dependency>
- <!-- httpclient -->
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>${httpclient.version}</version>
- </dependency>
- <!-- JSP相关 -->
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>${jstl.version}</version>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>${servlet-api.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jsp-api</artifactId>
- <version>${jsp-api.version}</version>
- <scope>provided</scope>
- </dependency>
- <!-- 时间操作组件 -->
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>${joda-time.version}</version>
- </dependency>
- <!-- Apache工具组件 -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commons-lang3.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-io</artifactId>
- <version>${commons-io.version}</version>
- </dependency>
- <!-- 阿里云开放搜索opensearch -->
- <dependency>
- <groupId>com.aliyun.opensearch</groupId>
- <artifactId>aliyun-sdk-opensearch</artifactId>
- <version>2.1.3</version>
- </dependency>
- <!-- 定时任务 -->
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
- <version>${quartz.version}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <!--设置deploy地址 依赖包发布到私服,将开发的包上传到宿主仓库-->
- <distributionManagement>
- <!-- 上传到宿主仓库的releases -->
- <repository>
- <id>releases</id>
- <name>Internal Releases</name>
- <url>http://10.10.4.90:8081/nexus/content/repositories/releases/</url>
- </repository>
- <!-- 上传到宿主仓库的snapshots -->
- <snapshotRepository>
- <id>snapshots</id>
- <name>Internal Snapshots</name>
- <url>http://10.10.4.90:8081/nexus/content/repositories/snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
- <build>
- <finalName>${project.artifactId}</finalName>
- <plugins>
- <!-- 资源文件拷贝插件 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.7</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <!-- java编译插件 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- </plugins>
- <pluginManagement>
- <plugins>
- <!-- 配置Tomcat插件 -->
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- </project>
pom.xml
- <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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.xyc.ssm</groupId>
- <artifactId>zto-ssm</artifactId>
- <parent>
- <groupId>cn.zto.parent</groupId>
- <artifactId>zto-parent</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- </parent>
- <packaging>war</packaging>
- <dependencies>
- <!--如果用命令生成的话 这个依赖是不需要的-->
- <dependency>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-core</artifactId>
- <version>1.3.2</version>
- </dependency>
- <!-- 单元测试 -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aspects</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>4.1.3.RELEASE</version>
- </dependency>
- <!-- Mybatis -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- </dependency>
- <!-- 分页助手 -->
- <dependency>
- <groupId>com.github.pagehelper</groupId>
- <artifactId>pagehelper</artifactId>
- <version>3.7.5</version>
- </dependency>
- <dependency>
- <groupId>com.github.jsqlparser</groupId>
- <artifactId>jsqlparser</artifactId>
- <version>0.9.1</version>
- </dependency>
- <!-- MySql -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </dependency>
- <!-- Jackson Json处理工具包 -->
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- <!-- 连接池 -->
- <dependency>
- <groupId>com.jolbox</groupId>
- <artifactId>bonecp-spring</artifactId>
- </dependency>
- <!-- JSP相关 -->
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>jsp-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <!-- Apache工具组件 -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-io</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <!-- 配置Tomcat插件 -->
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <configuration>
- <port>80</port>
- <path>/</path>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-maven-plugin</artifactId>
- <version>1.3.2</version>
- <configuration>
- <verbose>true</verbose>
- <overwrite>true</overwrite>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
2.搭建SSM环境
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"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="MyWebApp" version="2.5">
- <display-name>zto-ssm</display-name>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring/applicationContext*.xml</param-value>
- </context-param>
- <!--Spring的ApplicationContext 载入 -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 编码过滤器,以UTF8编码,解决post乱码问题 -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <servlet>
- <servlet-name>ssm</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <!-- 自定义SpringMVC配置文件路径 -->
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring/zto-ssm.xml</param-value>
- </init-param>
- <!-- 随容器自动启动完成初始化 -->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>ssm</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
jdbc.properties
- jdbc.driver=com.mysql.jdbc.Driver
- jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
- jdbc.username=root
- jdbc.password=123456
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: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.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
- <!-- 使用spring自带的占位符替换功能 -->
- <bean
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <!-- 允许JVM参数覆盖 -->
- <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- <!-- 忽略没有找到的资源文件 -->
- <property name="ignoreResourceNotFound" value="true" />
- <!-- 配置资源文件 -->
- <property name="locations">
- <list>
- <value>classpath:jdbc.properties</value>
- </list>
- </property>
- </bean>
- <context:component-scan base-package="cn.xyc" />
- <bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
- destroy-method="close">
- <!-- 数据库驱动 -->
- <property name="driverClass" value="${jdbc.driver}" />
- <!-- 相应驱动的jdbcUrl -->
- <property name="jdbcUrl" value="${jdbc.url}" />
- <!-- 数据库的用户名 -->
- <property name="username" value="${jdbc.username}" />
- <!-- 数据库的密码 -->
- <property name="password" value="${jdbc.password}" />
- <!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
- <property name="idleConnectionTestPeriod" value="60" />
- <!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
- <property name="idleMaxAge" value="30" />
- <!-- 每个分区最大的连接数 -->
- <property name="maxConnectionsPerPartition" value="150" />
- <!-- 每个分区最小的连接数 -->
- <property name="minConnectionsPerPartition" value="5" />
- </bean>
- </beans>
applicationContext-mybatis.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.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
- <!-- 定义Mybatis的SqlSessionFactory -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <!-- 定义数据源 -->
- <property name="dataSource" ref="dataSource" />
- <!-- 指定mybatis全局配置文件 -->
- <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
- <!-- 扫描mappers目录以及子目录下的所有xml文件 -->
- <property name="mapperLocations" value="classpath:mybatis/mappers/**/*.xml" />
- <!-- 别名扫描包 -->
- <property name="typeAliasesPackage" value="cn.xyc.ssm.pojo"/>
- </bean>
- <!-- 定义Mapper接口扫描器 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="cn.xyc.ssm.mapper" />
- </bean>
- </beans>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
- <!-- 定义事务管理器 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
- <!-- 定义事务策略 -->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <!--所有以query开头的方法都是只读的 -->
- <tx:method name="query*" read-only="true" />
- <!--其他方法使用默认事务策略 -->
- <tx:method name="*" />
- </tx:attributes>
- </tx:advice>
- <aop:config>
- <!--pointcut元素定义一个切入点,execution中的第一个星号 用以匹配方法的返回类型,
- 这里星号表明匹配所有返回类型。 com.abc.dao.*.*(..)表明匹配cn.xyc.ssm.service包下的所有类的所有
- 方法 -->
- <aop:pointcut id="myPointcut" expression="execution(* cn.xyc.ssm.service.*.*(..))" />
- <!--将定义好的事务处理策略应用到上述的切入点 -->
- <aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut" />
- </aop:config>
- </beans>
mybatis-config.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>
- <settings>
- <!-- 开启驼峰自动映射 -->
- <setting name="mapUnderscoreToCamelCase" value="true" />
- </settings>
- <!-- 配置分页插件 -->
- <plugins>
- <plugin interceptor="com.github.pagehelper.PageHelper">
- <property name="dialect" value="mysql"/>
- <!-- 该参数默认为false -->
- <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
- <property name="rowBoundsWithCount" value="true"/>
- </plugin>
- </plugins>
- </configuration>
zto-ssm.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.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
- <!-- 注解驱动 -->
- <mvc:annotation-driven />
- <!-- 定义Controller的扫描包 -->
- <context:component-scan base-package="cn.xyc.ssm.controller" />
- <!-- 定义视图解析器 -->
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/views/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 处理静态资源被“/”所拦截的问题 -->
- <mvc:default-servlet-handler />
- </beans>
ok,框架搭建完成,可以启动一下看看是否正常,当然配置文件中扫描的包必须创建好
因为上面配置了mapper扫描的xml,但是目前还没有xml,所有会报错。注释掉就不会报错了
2.mybatis逆向生成实体映射等.
init.properties
- #Mybatis Generator configuration
- project = E:/eclipse/workspace/zto-ssm/src/main/java
- #classPath=D:/maven/Reposeitory/com/oracle/ojdbc6/11.2.0.3.0/ojdbc6-11.2.0.3.0.jar
- classPath = D:/repository/mysql/mysql-connector-java/5.1.32/mysql-connector-java-5.1.32.jar
- jdbc_driver = com.mysql.jdbc.Driver
- jdbc_url = jdbc:mysql://127.0.0.1:3306/mybatis
- jdbc_user = root
- jdbc_password = 123456
GeneratorConfig.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>
- <!-- 引入配置文件 -->
- <properties resource="init.properties"/>
- <!-- 指定数据连接驱动jar地址 -->
- <classPathEntry location="${classPath}" />
- <!-- 一个数据库一个context -->
- <context id="infoGuardian">
- <!-- 注释 -->
- <commentGenerator >
- <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
- </commentGenerator>
- <!-- jdbc连接 -->
- <jdbcConnection driverClass="${jdbc_driver}"
- connectionURL="${jdbc_url}" userId="${jdbc_user}"
- password="${jdbc_password}" />
- <!-- 类型转换 -->
- <javaTypeResolver>
- <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
- <property name="forceBigDecimals" value="false"/>
- </javaTypeResolver>
- <!-- 生成实体类地址 -->
- <javaModelGenerator targetPackage="cn.xyc.ssm.pojo"
- targetProject="${project}" >
- <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
- <property name="enableSubPackages" value="false"/>
- <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
- <property name="trimStrings" value="true"/>
- </javaModelGenerator>
- <!-- 生成mapxml文件 -->
- <sqlMapGenerator targetPackage="cn.xyc.ssm.mapper"
- targetProject="${project}" >
- <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
- <property name="enableSubPackages" value="false" />
- </sqlMapGenerator>
- <!-- 生成mapxml对应client,也就是接口dao -->
- <javaClientGenerator targetPackage="cn.xyc.ssm.mapper"
- targetProject="${project}" type="XMLMAPPER" >
- <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
- <property name="enableSubPackages" value="false" />
- </javaClientGenerator>
- <!-- 配置表信息 -->
- <table schema="" tableName="user"
- domainObjectName="User" enableCountByExample="true"
- enableDeleteByExample="true" enableSelectByExample="true"
- enableUpdateByExample="true" selectByExampleQueryId="true">
- <!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample
- 是否生成 example类 -->
- <!-- 忽略列,不生成bean 字段
- <ignoreColumn column="CLASS" />-->
- <!-- 指定列的java数据类型
- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />-->
- </table>
- </context>
- </generatorConfiguration>
pom文件中必须加上相关插件,上面已经有了.
运行maven命令:
mybatis-generator:generate 会生成相关文件,将映射文件移动到mybatis/mappers下面
3.Junit测试SSM框架
先添加日志
log4j.properties
- log4j.rootLogger=DEBUG,A1
- log4j.logger.org.mybatis = DEBUG
- log4j.appender.A1=org.apache.log4j.ConsoleAppender
- log4j.appender.A1.layout=org.apache.log4j.PatternLayout
- log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
TestSSM.java
- package cn.xyc.ssm;
- import java.util.List;
- import org.junit.Before;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import cn.xyc.ssm.mapper.UserMapper;
- import cn.xyc.ssm.pojo.User;
- /**
- *
- * @ClassName: TestMyBatis
- * @Description: 测试ssm框架
- * @author: xyc
- * @date: 2017年2月13日 下午7:53:09
- *
- */
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations = { "classpath:spring/*.xml" })
- public class TestSSM {
- @Autowired
- private UserMapper userMapper;
- /**
- * @throws Exception
- */
- @Before
- public void setUp() throws Exception {
- // 初始化SPring容器
- //ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml",
- // "applicationContext-mybatis.xml");
- // 从容器中获取SqlSessionFactory
- // SqlSessionFactory sqlSessionFactory =
- // applicationContext.getBean(SqlSessionFactory.class);
- // SqlSession sqlSession = sqlSessionFactory.openSession(true);
- // this.userMapper = sqlSession.getMapper(UserMapper.class);
- //this.userMapper = applicationContext.getBean(UserMapper.class);
- }
- @Test
- public void test1() {
- List<User> queryAll = userMapper.queryAll();
- for (User user : queryAll) {
- System.out.println(user);
- }
- }
- }
结果:
导入jquery-easyui-1.2.6类库就可以直接使用easyUI了
commons.js
- // 自定义的校验器
- $.extend($.fn.validatebox.defaults.rules, {
- midLength : {
- validator : function(value, param) {
- return value.length >= param[0] && value.length <= param[1];
- },
- message : ''
- },
- equalLength : {
- validator : function(value, param) {
- return value.length == param[0];
- },
- message : '密码必须为4个字符!'
- }
- });
- $.extend($.fn.datagrid.defaults.editors, {
- datetimebox : {
- init : function(container, options) {
- var box = $('<input />').appendTo(container);
- box.datetimebox(options);
- return box;
- },
- getValue : function(target) {
- return $(target).datetimebox('getValue');
- },
- setValue : function(target, value) {
- $(target).datetimebox('setValue', value);
- },
- resize : function(target, width) {
- var box = $(target);
- box.datetimebox('resize', width);
- },
- destroy : function(target) {
- $(target).datetimebox('destroy');
- }
- }
- });
index.jsp
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- <script type="text/javascript" src="/js/jquery-easyui-1.2.6/jquery-1.7.2.min.js"></script>
- <link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.2.6/themes/default/easyui.css" />
- <link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.2.6/themes/icon.css" />
- <script type="text/javascript" src="/js/jquery-easyui-1.2.6/jquery.easyui.min.js"></script>
- <script type="text/javascript" src="/js/jquery-easyui-1.2.6/locale/easyui-lang-zh_CN.js"></script>
- <script type="text/javascript" src="/js/commons.js"></script>
- <script type="text/javascript">
- $(function(){
- //-----------------------------对于form表单的验证 ---------------------------------------------------------------------------
- $('#username').numberbox({
- min:0 , //允许的最小值
- max:150 , //允许的最大值
- required:true , //必填字段 定义是否字段应被输入
- missingMessage:'用户名必填!' , //当文本框是空时出现的提示文字
- precision:0 //显示在小数点后面的最大精度
- });
- //数值验证组件
- $('#age').numberbox({
- min:0 , //允许的最小值
- max:150 , //允许的最大值
- required:true , //必填字段 定义是否字段应被输入
- missingMessage:'年龄必填!' , //当文本框是空时出现的提示文字
- precision:0 //显示在小数点后面的最大精度
- });
- //日期组件
- $('#birthday').datebox({
- required:true , //必填字段 定义是否字段应被输入
- missingMessage:'生日必填!' , //当文本框是空时出现的提示文字
- editable:false //定义是否用户可以往文本域中直接输入文字
- });
- $('#salary').numberbox({
- min:1000 ,
- max:20000 ,
- required:true ,
- missingMessage:'薪水必填!' ,
- precision:2
- });
- //日期时间组件
- $('#startTime,#endTime').datetimebox({
- required:true ,
- missingMessage:'时间必填!' ,
- editable:false //定义是否用户可以往文本域中直接输入文字
- });
- var flag ; //undefined 判断新增和修改方法
- ///---------------------datagrid部分----------------------------------------------------------------------------------
- $('#tt').datagrid({
- idField: 'id', //只要创建数据表格 就必须要加 ifField
- url: 'user/queryUserByPage',
- title: '用户信息',
- //width: '1000',
- height:450 ,
- fitColumns: true, //宽度自适应
- striped: true , //隔行变色特性
- rownumbers:true, //显示行号
- //singleSelect:true , //单选模式
- loadMsg: '数据正在加载,请耐心的等待...' ,
- frozenColumns:[[ //冻结列特性 ,不要与fitColumns 特性一起使用
- { //如果需要多选,需要禁止单选模式
- field:'ck' ,
- width:50 ,
- checkbox: true
- }
- ]],
- columns:[[
- {field:'id',title:'编号',width:120},
- {
- field:'username',
- title:'用户名',
- width:120,
- align:'center' , //居中显示
- styler:function(value , record){
- if(value == 'admin'){
- //return 'background:blue;'; //如果用户名为admin,变蓝色
- }
- }
- },
- {
- field:'password',
- title:'密码',
- width:120,
- hidden: true //将密码隐藏
- },
- {
- field:'sex',
- title:'性别',
- width:120,
- formatter:function(value , record , index){
- if(value == 1){
- return '<span style=color:red; >男</span>' ;
- } else if( value == 2){
- return '<span style=color:green; >女</span>' ;
- }
- //console.info(value);
- //console.info(record);
- //console.info(index);
- }
- },
- {field:'age',title:'年龄',width:120},
- {field:'birthday',title:'生日',width:120},
- {
- field:'city',
- title:'城市',
- width:120,
- formatter:function(value , record , index){
- /*
- if(value==1){
- return '北京';
- } else if(value == 2){
- return '上海';
- } else if(value == 3){
- return '深圳';
- } else if(value == 4){
- return '长春';
- }
- */
- var str = '';
- $.ajax({
- type:'post' ,
- url : 'user/getCityName' ,
- /* url : 'user/getCityName2' , */
- cache:false ,
- async: false , //同步请求
- data:{id:value},
- dataType:'json' ,
- success:function(result){
- //str = result ; //dataType:'text'
- str = result.name ; //dataType:'json'
- }
- });
- return str ;
- }
- },
- {field:'salary',title:'薪资',width:120},
- {field:'starttime',title:'创建日期',width:120},
- {field:'endtime',title:'结束日期',width:120},
- {
- field:'description',
- title:'描述',
- width:120,
- formatter:function(value , record , index){
- return '<span title='+value+'>'+value+'</span>';
- }
- },
- ]],
- pagination: true , //在底部显示分页栏
- pageSize: 10 , //每页显示多少个
- pageList:[5,10,15,20,50], //初始化页面尺寸的选择列表
- toolbar:[
- {
- iconCls:"icon-add",//按钮上的图标
- text:"添加用户", //按钮的文字
- handler:function(){
- flag = 'add'; //改变flag的值
- //$('#myform').find('input[name!=sex]').val("");
- $('#myform').get(0).reset();
- //$('#myform').form('clear');
- $("#mydialog").dialog("open");
- }
- },
- {
- iconCls:"icon-edit",//按钮上的图标
- text:"编辑用户",//按钮的文字
- handler:function(){
- flag = 'edit'; //改变flag的值
- var arr =$('#tt').datagrid('getSelections'); //获取被选中的行,返回的是数组
- if(arr.length != 1){
- $.messager.show({
- title:'提示信息!',
- msg:'只能选择一行记录进行修改!'
- });
- } else {
- $('#mydialog').dialog({
- title:'修改用户'
- });
- $('#mydialog').dialog('open'); //打开窗口
- $('#myform').get(0).reset(); //清空表单数据
- $('#myform').form('load',{ //调用load方法把所选中的数据load到表单中,非常方便
- id:arr[0].id ,
- username:arr[0].username ,
- password:arr[0].password ,
- sex:arr[0].sex ,
- age:arr[0].age ,
- birthday:arr[0].birthday ,
- city:arr[0].city ,
- salary:arr[0].salary ,
- starttime:arr[0].starttime,
- endtime:arr[0].endtime ,
- description:arr[0].description
- });
- }
- }
- },
- {
- iconCls:"icon-remove",//按钮上的图标
- text:"删除用户",//按钮的文字
- handler:function(){
- //console.log('删除'); //在浏览器控制台打印日志
- var arr =$('#tt').datagrid('getSelections');
- if(arr.length <=0){
- $.messager.show({
- title:'提示信息!',
- msg:'至少选择一行记录进行删除!'
- });
- } else {
- $.messager.confirm('提示信息' , '确认删除?' , function(r){
- if(r){
- var ids = '';
- for(var i =0 ;i<arr.length;i++){
- ids += arr[i].id + ',' ;
- }
- ids = ids.substring(0 , ids.length-1);
- $.post('user/delete' , {ids:ids} , function(result){
- //1 刷新数据表格
- $('#tt').datagrid('reload');
- //2 清空idField
- $('#tt').datagrid('clearSelections'); //unselectAll取消选中当前页所有的行。 clearSelections清除所有的选择。
- //3 给提示信息
- $.messager.show({
- title:result.status ,
- msg:result.message
- });
- });
- } else {
- return ;
- }
- });
- }
- }
- },
- {
- iconCls:"icon-search",//按钮上的图标
- text:"查询用户",//按钮的文字
- handler:function(){
- //console.log('查询'); //在浏览器控制台打印日志
- $('#lay').layout('expand' , 'north');
- }
- }
- ]
- });
- //-----------提交表单方法-------------------------------------------------------------------------------------------------------------
- $('#btn1').click(function(){
- if($('#myform').form('validate')){
- $.ajax({
- type: 'post' ,
- url: flag=='add'?'user/save':'user/update' ,
- //url:'user/save',
- cache:false ,
- data:$('#myform').serialize() ,
- dataType:'json' ,
- success:function(result){
- //1 关闭窗口
- $('#mydialog').dialog('close');
- //2刷新datagrid
- $('#tt').datagrid('reload');
- //3 提示信息
- $.messager.show({
- title:result.status ,
- msg:result.message
- });
- } ,
- error:function(result){
- $.meesager.show({
- title:result.status ,
- msg:result.message
- });
- }
- });
- } else {
- $.messager.show({
- title:'提示信息!' ,
- msg:'数据验证不通过,不能保存!'
- });
- }
- });
- /**
- * 关闭窗口方法
- */
- $('#btn2').click(function(){
- $('#mydialog').dialog('close');
- });
- $('#searchbtn').click(function(){
- $('#tt').datagrid('load' ,serializeForm($('#mysearch')));
- });
- //查询时清空按钮
- $('#clearbtn').click(function(){
- $('#mysearch').form('clear');
- $('#tt').datagrid('load' ,{}); //清空数据
- });
- });
- //js方法:序列化表单
- function serializeForm(form){
- var obj = {};
- $.each(form.serializeArray(),function(index){
- if(obj[this['name']]){
- obj[this['name']] = obj[this['name']] + ','+this['value'];
- } else {
- obj[this['name']] =this['value'];
- }
- });
- return obj;
- }
- </script>
- </head>
- <body>
- <div id="lay" class="easyui-layout" fit=true style="width: 100%; height: 1000px">
- <!-- 用户搜索部分 -->
- <div region="north" title="用户查询" split="true" collapsed=true style="height: 100px;">
- <div style="margin-left: 100px;margin-top: 20px;">
- <form id="mysearch" method="post">
- 用户名:<input name="username" class="easyui-validatebox" value="" />
- 开始时间:<input name="starttime" class="easyui-datetimebox" editable="false" style="width:160px;" value="" />
- 结束时间:<input name="endtime" class="easyui-datetimebox" editable="false" style="width:160px;" value="" />
- <a id="searchbtn" class="easyui-linkbutton">查询</a> <a id="clearbtn" class="easyui-linkbutton">清空</a>
- </form>
- </div>
- </div>
- <!-- 用户列表部分 -->
- <div region="center" style="padding: 5px; background: #eee;">
- <table id="tt"></table>
- </div>
- </div>
- <!-- modal:模态窗口 draggable:窗口不可拖动 closed:默认关闭-->
- <div id="mydialog" title="新增用户" modal=true draggable=false class="easyui-dialog" closed=true style="width:300px;">
- <form id="myform" action="" method="post">
- <input type="hidden" name="id" value="" />
- <table>
- <tr>
- <td>用户名:</td>
- <td><input type="text" name="username" class="easyui-validatebox" required=true validType="midLength[2,5]" missingMessage="用户名必填!" invalidMessage="用户名必须在2到5个字符之间!" value="" /></td>
- </tr>
- <tr>
- <td>密码:</td>
- <td><input type="password" name="password" class="easyui-validatebox" required=true validType="equalLength[4]" missingMessage="密码必填!" value="" /></td>
- </tr>
- <tr>
- <td>性别:</td>
- <td>
- 男<input type="radio" checked="checked" name="sex" value="1" />
- 女<input type="radio" name="sex" value="2" />
- </td>
- </tr>
- <tr>
- <td>年龄:</td>
- <td><input id="age" type="text" name="age" value="" /></td>
- </tr>
- <tr>
- <td>出生日期:</td>
- <td><input id="birthday" style="width:160px;" type="text" name="birthday" value="" /></td>
- </tr>
- <tr>
- <td>所属城市:</td>
- <td>
- <input name="city" class="easyui-combobox" url="user/getCity" valueField="id" textField="name" value="" />
- </td>
- </tr>
- <tr>
- <td>薪水:</td>
- <td><input id="salary" type="text" name="salary" value="" /></td>
- </tr>
- <tr>
- <td>开始时间:</td>
- <td><input id="startTime" style="width:160px;" type="text" name="starttime" value="" /></td>
- </tr>
- <tr>
- <td>结束时间:</td>
- <td><input id="endTime" style="width:160px;" type="text" name="endtime" value="" /></td>
- </tr>
- <tr>
- <td>个人描述:</td>
- <td><input type="text" name="description" class="easyui-validatebox" required=true validType="midLength[5,50]" missingMessage="个人描述必填!" invalidMessage="描述必须在5到50个字符之间!" value="" /></td>
- </tr>
- <tr align="center">
- <td colspan="2">
- <a id="btn1" class="easyui-linkbutton">确定</a>
- <a id="btn2" class="easyui-linkbutton">关闭</a>
- </td>
- </tr>
- </table>
- </form>
- </div>
- </body>
- </html>
5.业务逻辑层代码
IndexController.java
- package cn.xyc.ssm.controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- @Controller
- public class IndexController {
- /**
- *
- * @Title: toIndex
- * @Description: 通用页面跳转
- * @param: @param index
- * @param: @return
- * @return: String
- * @throws
- */
- @RequestMapping("/{index}")
- public String toIndex(@PathVariable("index")String index){
- return index;
- }
- }
UserController.java
- package cn.xyc.ssm.controller;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import cn.xyc.ssm.common.EasyUIResult;
- import cn.xyc.ssm.common.ResponseEntity;
- import cn.xyc.ssm.pojo.City;
- import cn.xyc.ssm.pojo.User;
- import cn.xyc.ssm.service.UserService;
- @Controller
- @RequestMapping("user")
- public class UserController {
- @Autowired
- private UserService userService;
- @RequestMapping(value="queryUser",method=RequestMethod.POST)
- @ResponseBody
- public EasyUIResult queryUser(){
- EasyUIResult result = this.userService.queryUser();
- return result;
- }
- @RequestMapping(value="queryUserByPage",method=RequestMethod.POST)
- @ResponseBody
- public EasyUIResult queryUserByPage(@RequestParam(value="page",defaultValue="1")Integer page,
- @RequestParam(value="rows",defaultValue="5")Integer rows,
- @RequestParam(value="username",defaultValue="")String username,
- @RequestParam(value="starttime",defaultValue="")String starttime,
- @RequestParam(value="endtime",defaultValue="")String endtime){
- EasyUIResult result = this.userService.queryUserByPage(page,rows,username,starttime,endtime);
- return result;
- }
- /**
- *
- * @Title: getCityName
- * @Description: 根据id名称获取城市名称
- * @param: @param id
- * @param: @return
- * @return: City
- * @throws
- */
- @RequestMapping(value="getCityName",method=RequestMethod.POST)
- @ResponseBody
- public City getCityName(@RequestParam(value="id")Integer id){
- City city = this.userService.getCityName(id);
- return city;
- }
- //produces={"text/html;charset=UTF-8;","application/json;" 可以返回json或text,如果返回text不设置会出现乱码,如果返回json可以不设置.如上方法
- @RequestMapping(value="getCityName2",method=RequestMethod.POST,produces={"text/html;charset=UTF-8;","application/text;"})
- @ResponseBody
- public String getCityName2(@RequestParam(value="id")Integer id){
- /*City city = this.userService.getCityName(id);*/
- String cityName2 = this.userService.getCityName2(id);
- return cityName2;
- }
- /**
- *
- * @Title: getCity
- * @Description: 获取所有城市
- * @param: @return
- * @return: List<City>
- * @throws
- */
- @RequestMapping(value="getCity",method=RequestMethod.POST)
- @ResponseBody
- public List<City> getCity(){
- List<City> clist = this.userService.getCity();
- return clist;
- }
- /**
- *
- * @Title: save
- * @Description: 新增用户信息
- * @param: @param user
- * @param: @return
- * @return: ResponseEntity
- * @throws
- */
- @RequestMapping(value="save",method=RequestMethod.POST)
- @ResponseBody
- public ResponseEntity save(User user){
- Integer count = this.userService.saveUser(user);
- if(count == 1){
- return new ResponseEntity("ok", "新增用户成功!");
- }
- return new ResponseEntity("ok", "新增用户失败!");
- }
- /**
- *
- * @Title: save
- * @Description: 修改用户信息
- * @param: @param user
- * @param: @return
- * @return: ResponseEntity
- * @throws
- */
- @RequestMapping(value="update",method=RequestMethod.POST)
- @ResponseBody
- public ResponseEntity update(User user){
- Integer count = this.userService.updateUser(user);
- if(count == 1){
- return new ResponseEntity("ok", "修改用户成功!");
- }
- return new ResponseEntity("ok", "修改用户失败!");
- }
- /**
- *
- * @Title: save
- * @Description: 修改用户信息
- * @param: @param user
- * @param: @return
- * @return: ResponseEntity
- * @throws
- */
- @RequestMapping(value="delete",method=RequestMethod.POST)
- @ResponseBody
- public ResponseEntity delete(@RequestParam("ids")List<Integer> ids){
- Integer count = this.userService.delete(ids);
- if(count > 0){
- return new ResponseEntity("ok", "删除用户成功!");
- }
- return new ResponseEntity("ok", "删除用户失败!");
- }
- }
EasyUIResult.java
- package cn.xyc.ssm.common;
- import java.util.List;
- /**
- *
- * @ClassName: EasyUIResult
- * @Description: 数据表格返回格式
- * @author: xyc
- * @date: 2017年2月15日 下午2:06:30
- *
- */
- public class EasyUIResult {
- private Long total;
- private List<?> rows;
- public EasyUIResult() {}
- public EasyUIResult(Long total, List<?> rows) {
- this.total = total;
- this.rows = rows;
- }
- public Long getTotal() {
- return total;
- }
- public void setTotal(Long total) {
- this.total = total;
- }
- public List<?> getRows() {
- return rows;
- }
- public void setRows(List<?> rows) {
- this.rows = rows;
- }
- }
ResponseEntity.java
- package cn.xyc.ssm.common;
- public class ResponseEntity {
- private String status ;
- private String message;
- public String getStatus() {
- return status;
- }
- public void setStatus(String status) {
- this.status = status;
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public ResponseEntity(String status, String message) {
- this.status = status;
- this.message = message;
- }
- }
- package cn.xyc.ssm.pojo;
- public class City {
- private Integer id;
- private String name;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public City(Integer id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
- }
UserService.java
- package cn.xyc.ssm.service;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import cn.xyc.ssm.common.EasyUIResult;
- import cn.xyc.ssm.mapper.UserMapper;
- import cn.xyc.ssm.pojo.City;
- import cn.xyc.ssm.pojo.User;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- @Service
- public class UserService {
- @Autowired
- private UserMapper userMapper;
- /**
- *
- * @Title: queryUser
- * @Description: 查询所有用户
- * @param: @return
- * @return: List<User>
- * @throws
- */
- public EasyUIResult queryUser() {
- // TODO Auto-generated method stub
- //PageHelper.startPage(1, 5);
- List<User> ulist = this.userMapper.queryAll();
- PageInfo<User> pageInfo = new PageInfo<User>(ulist);
- return new EasyUIResult(pageInfo.getTotal(), ulist);
- }
- /**
- * @param endtime
- * @param starttime
- * @param username
- * @param rows
- * @param page
- *
- * @Title: queryUser
- * @Description: 查询所有用户带分页
- * @param: @return
- * @return: EasyUIResult
- * @throws
- */
- public EasyUIResult queryUserByPage(Integer page, Integer rows, String username, String starttime, String endtime) {
- // TODO Auto-generated method stub
- PageHelper.startPage(page, rows);
- List<User> ulist = this.userMapper.queryUserByPage(username,starttime,endtime);
- PageInfo<User> pageInfo = new PageInfo<User>(ulist);
- return new EasyUIResult(pageInfo.getTotal(), ulist);
- }
- public City getCityName(Integer id){
- Map<Integer,City> map = new HashMap<Integer, City>();
- map.put(1, new City(1,"北京"));
- map.put(2, new City(2,"上海"));
- map.put(3, new City(3,"天津"));
- map.put(4, new City(4,"重庆"));
- return map.get(id);
- }
- public String getCityName2(Integer id){
- Map<Integer,String> map = new HashMap<Integer, String>();
- map.put(1, "北京");
- map.put(2, "上海");
- map.put(3, "天津");
- map.put(4, "重庆");
- return map.get(id);
- }
- public List<City> getCity() {
- List<City> clist = new ArrayList<City>();
- clist.add(new City(1,"北京"));
- clist.add(new City(2,"上海"));
- clist.add(new City(3,"天津"));
- clist.add(new City(4,"重庆"));
- return clist;
- }
- /**
- *
- * @Title: saveUser
- * @Description: 新增用户
- * @param: @param user
- * @param: @return
- * @return: Integer
- * @throws
- */
- public Integer saveUser(User user) {
- return this.userMapper.insert(user);
- }
- /**
- *
- * @Title: updateUser
- * @Description: 修改用户信息
- * @param: @param user
- * @param: @return
- * @return: Integer
- * @throws
- */
- public Integer updateUser(User user) {
- // TODO Auto-generated method stub
- return this.userMapper.updateByPrimaryKey(user);
- }
- /**
- *
- * @Title: delete
- * @Description: 删除用户
- * @param: @param ids
- * @return: void
- * @throws
- */
- public Integer delete(List<Integer> ids) {
- int count = 0;
- for (Integer id : ids) {
- count = this.userMapper.deleteByPrimaryKey(id);
- count += count;
- }
- return count;
- }
- }
- public List<User> queryAll() ;
- List<User> queryUserByPage(@Param("username")String username,@Param("starttime") String starttime, @Param("endtime")String endtime) ;
UserMapper.xml映射中添加
- <select id="queryAll" resultType="User">
- select * from user
- </select>
- <select id="queryUserByPage" resultType="User">
- select * from user
- <where>
- <if test="username !=null and username != ''">
- AND username LIKE '%${username}%'
- </if>
- <if test="starttime !=null and starttime != ''">
- AND starttime > #{starttime}
- </if>
- <if test="endtime !=null and endtime != ''">
- AND endtime < #{endtime}
- </if>
- </where>
- </select>
其它的不变
ok搭建完成。