maven搭建 springmvc+mybatis应用

余生颓废 提交于 2020-04-15 17:47:00

【推荐阅读】微服务还能火多久?>>>

 最近研究maven,故而用maven搭建了springmvc+mybatis框架来实践一下,如有不足之处,望指正。

下面开始讲解,本人视读者已经掌握maven的使用或者队maven有一定的了解,如果不了解maven,请查看小菜鸟的博客---maven详解

        本文用的spring是 4.0.5.RELEASE版,日志框架用的是logback 1.1.2,数据库连接池用的是c3p0  0.9.1.2,mybatis 用的是 3.2.7。所用技术基本都是最新版本。多说一句,本文 mybatis-spring桥用的是mybatis提供的mybatis-spring,当然你也可以用spring orm配合mybatis使用,但是没有用mybatis提供的简单,这里不再赘述。

        首先创建一个maven project,编写pom文件,将对应的jar包引用进来。编辑后的pom如下:

         

Xml代码 

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  

  3.     <modelVersion>4.0.0</modelVersion>  

  4.     <groupId>com.qijian</groupId>  

  5.     <artifactId>SpringMVC</artifactId>  

  6.     <packaging>war</packaging>  

  7.     <version>0.0.1-SNAPSHOT</version>  

  8.     <name>SpringMVC Maven Webapp</name>  

  9.     <url>http://maven.apache.org</url>  

  10.   

  11.     <!-- 构件的版本 -->  

  12.     <properties>  

  13.         <junit.version>3.8.1</junit.version>  

  14.         <logback.version>1.1.2</logback.version>  

  15.         <jackson.version>1.9.9</jackson.version>  

  16.         <common.fileupload.version>1.3.1</common.fileupload.version>  

  17.         <spring.version>4.0.5.RELEASE</spring.version>  

  18.         <aspectj.version>1.8.1</aspectj.version>  

  19.         <jstl.version>1.2</jstl.version>  

  20.         <mybatis-spring.version>1.2.2</mybatis-spring.version>  

  21.         <mybatis.version>3.2.7</mybatis.version>  

  22.         <c3p0.version>0.9.1.2</c3p0.version>  

  23.         <mysql.version>5.1.31</mysql.version>  

  24.     </properties>  

  25.   

  26.     <!-- 项目依赖 -->  

  27.     <dependencies>  

  28.         <!-- junit测试依赖 -->  

  29.         <dependency>  

  30.             <groupId>junit</groupId>  

  31.             <artifactId>junit</artifactId>  

  32.             <version>${junit.version}</version>  

  33.             <scope>test</scope>  

  34.         </dependency>  

  35.         <!-- logback日志工具 -->  

  36.         <dependency>  

  37.             <groupId>ch.qos.logback</groupId>  

  38.             <artifactId>logback-classic</artifactId>  

  39.             <version>${logback.version}</version>  

  40.         </dependency>  

  41.         <!-- 避免IE执行AJAX时,返回JSON出现下载文件(属于springmvc) -->  

  42.         <dependency>  

  43.             <groupId>org.codehaus.jackson</groupId>  

  44.             <artifactId>jackson-mapper-asl</artifactId>  

  45.             <version>${jackson.version}</version>  

  46.         </dependency>  

  47.         <!--spring mvc的文件上传依赖 -->  

  48.         <dependency>  

  49.             <groupId>commons-fileupload</groupId>  

  50.             <artifactId>commons-fileupload</artifactId>  

  51.             <version>${common.fileupload.version}</version>  

  52.         </dependency>  

  53.         <!-- jstl表达式依赖 -->  

  54.         <dependency>  

  55.             <groupId>jstl</groupId>  

  56.             <artifactId>jstl</artifactId>  

  57.             <version>${jstl.version}</version>  

  58.         </dependency>  

  59.         <!-- srping security -->  

  60.         <dependency>  

  61.             <groupId>org.springframework.security</groupId>  

  62.             <artifactId>spring-security-web</artifactId>  

  63.             <version>3.2.4.RELEASE</version>  

  64.             <exclusions>  

  65.                 <exclusion>  

  66.                     <groupId>org.springframework</groupId>  

  67.                     <artifactId>spring-expression</artifactId>  

  68.                 </exclusion>  

  69.                 <exclusion>  

  70.                     <groupId>org.springframework</groupId>  

  71.                     <artifactId>spring-beans</artifactId>  

  72.                 </exclusion>  

  73.                 <exclusion>  

  74.                     <groupId>org.springframework</groupId>  

  75.                     <artifactId>spring-context</artifactId>  

  76.                 </exclusion>  

  77.                     <exclusion>  

  78.                     <groupId>org.springframework</groupId>  

  79.                     <artifactId>spring-core</artifactId>  

  80.                 </exclusion>  

  81.             </exclusions>  

  82.         </dependency>  

  83.   

  84.         <!-- spring mvc依赖开始 -->  

  85.         <dependency>  

  86.             <groupId>org.springframework</groupId>  

  87.             <artifactId>spring-webmvc</artifactId>  

  88.             <version>${spring.version}</version>  

  89.         </dependency>  

  90.         <dependency>  

  91.             <groupId>org.springframework</groupId>  

  92.             <artifactId>spring-web</artifactId>  

  93.             <version>${spring.version}</version>  

  94.         </dependency>  

  95.         <!-- spring mvc依赖结束 -->  

  96.   

  97.         <!-- spring 切面依赖开始 -->  

  98.         <dependency>  

  99.             <groupId>org.aspectj</groupId>  

  100.             <artifactId>aspectjweaver</artifactId>  

  101.             <version>${aspectj.version}</version>  

  102.         </dependency>  

  103.         <dependency>  

  104.             <groupId>org.aspectj</groupId>  

  105.             <artifactId>aspectjrt</artifactId>  

  106.             <version>${aspectj.version}</version>  

  107.         </dependency>  

  108.         <!-- spring 切面依赖结束 -->  

  109.   

  110.         <!-- 运行mybatis所需依赖开始 -->  

  111.         <dependency>  

  112.             <groupId>org.springframework</groupId>  

  113.             <artifactId>spring-jdbc</artifactId>  

  114.             <version>${spring.version}</version>  

  115.         </dependency>  

  116.                 <!-- mybatis,spring桥(当然你也可以用spring orm配合mybatis使用,但是没有用mybatis提供的简单这里不再赘述)-->  

  117.         <dependency>  

  118.             <groupId>org.mybatis</groupId>  

  119.             <artifactId>mybatis-spring</artifactId>  

  120.             <version>${mybatis-spring.version}</version>  

  121.         </dependency>  

  122.   

  123.         <dependency>  

  124.             <groupId>org.mybatis</groupId>  

  125.             <artifactId>mybatis</artifactId>  

  126.             <version>${mybatis.version}</version>  

  127.         </dependency>  

  128.         <!-- 用c3p0连接池去管理数据库连接 -->  

  129.         <dependency>  

  130.             <groupId>c3p0</groupId>  

  131.             <artifactId>c3p0</artifactId>  

  132.             <version>${c3p0.version}</version>  

  133.         </dependency>  

  134.   

  135.         <dependency>  

  136.             <groupId>mysql</groupId>  

  137.             <artifactId>mysql-connector-java</artifactId>  

  138.             <version>${mysql.version}</version>  

  139.         </dependency>  

  140.         <!-- 运行mybatis所需依赖结束 -->  

  141.   

  142.   

  143.     </dependencies>  

  144.     <build>  

  145.         <finalName>SpringMVC</finalName>  

  146.     </build>  

  147. </project>  

          下面开始配置springmvc ,首先编辑web.xml文件,配置springmvc,将请求转给spring mvc处理(注:springmvc在web.xml中是以servlet的形式

配置的,这里要和struts2的filter区分开)

          springmvc 的servlet配置代码如下:

          

Xml代码 

  1. <servlet>  

  2.     <servlet-name>springmvc</servlet-name>  

  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

  4.     <init-param>  

  5.         <param-name>contextConfigLocation</param-name>  

  6.         <param-value>  

  7.             classpath*:spring*.xml  

  8.         </param-value>  

  9.     </init-param>  

  10. </servlet>  

 

 

          其中contextConfigLocation是可选配置参数,在此配置它的原因是因为本人将spring的配置文件放到了classpath下(即maven中的src/main/resources目录),

如果你不想配置此参数,则要配置另外一个listener(org.springframework.web.context.ContextLoaderListener),然后再将spring的配置文件(spring配置文件还有springmvc的配置文件,其中springmvc的配置文件名称为*-servlet.xml格式)放到web-inf目录下,你可以自己亲身实验一下,这里不再赘述,如果不清楚的可以找本人讲解。,其整个web.xml配置完如下:

           

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2.   

  3. <web-app xmlns="http://java.sun.com/xml/ns/javaee"  

  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  5.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  

  6.                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  

  7.   version="3.0"  

  8.   metadata-complete="true">  

  9.     <display-name>SpringMVC</display-name>  

  10.     <servlet>  

  11.         <servlet-name>springmvc</servlet-name>  

  12.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

  13.         <init-param>  

  14.             <param-name>contextConfigLocation</param-name>  

  15.             <param-value>  

  16.                 classpath*:spring*.xml  

  17.             </param-value>  

  18.         </init-param>  

  19.     </servlet>  

  20.   

  21.     <servlet-mapping>  

  22.         <servlet-name>springmvc</servlet-name>  

  23.         <url-pattern>*.do</url-pattern>  

  24.     </servlet-mapping>  

  25.     <!-- 设置spring mvc的编码集 -->  

  26.     <filter>  

  27.         <filter-name>CharacterEncodingFilter</filter-name>  

  28.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  

  29.         <init-param>  

  30.             <param-name>encoding</param-name>  

  31.             <param-value>UTF-8</param-value>  

  32.         </init-param>  

  33.     </filter>  

  34.     <filter-mapping>  

  35.         <filter-name>CharacterEncodingFilter</filter-name>  

  36.         <url-pattern>/*</url-pattern>  

  37.     </filter-mapping>  

  38.   

  39. </web-app>  

             接着说spring的配置。spring 的配置比较简单,主要是开启spring注解以及引入数据库配置的properties文件,这里不再详细扩展,如有不明白的

 

地方可以给本人留言,本人将耐心讲解,spring.xml代码如下:

           

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8" ?>  

  2. <beans   

  3.     xmlns="http://www.springframework.org/schema/beans"  

  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   

  5.     xmlns:p="http://www.springframework.org/schema/p"  

  6.     xmlns:mvc="http://www.springframework.org/schema/mvc"  

  7.     xmlns:context="http://www.springframework.org/schema/context"  

  8.     xmlns:aop="http://www.springframework.org/schema/aop"   

  9.     xmlns:tx="http://www.springframework.org/schema/tx"  

  10.     xsi:schemaLocation="http://www.springframework.org/schema/beans   

  11.        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

  12.        http://www.springframework.org/schema/context   

  13.        http://www.springframework.org/schema/context/spring-context-3.0.xsd  

  14.        http://www.springframework.org/schema/tx   

  15.        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  

  16.        http://www.springframework.org/schema/mvc   

  17.        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd      

  18.        http://www.springframework.org/schema/aop  

  19.        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  

  20.     <!-- 引入数据库属性文件 -->  

  21.     <context:property-placeholder location="classpath*:config.properties" />  

  22.   

  23.     <!-- 扫描类包,将标注Spring注解的类自动转化Bean,同时完成Bean的注入 -->  

  24.     <context:component-scan base-package="com.qijian" />  

  25. </beans>  

              接下来是springmvc的配置,主要是配置处理springmvc请求的适配器以及模型视图适配器,由于前面spring用的是注解,这里和上面保持同步,spring-servlet.xml的代码如下:

 

  

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <!-- Bean头部 -->  

  3. <beans xmlns="http://www.springframework.org/schema/beans"  

  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  

  5.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"  

  6.     xmlns:util="http://www.springframework.org/schema/util"  

  7.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    

  8.             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd    

  9.             http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd                

  10.             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">  

  11.     <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->  

  12.     <bean  

  13.         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  

  14.         <property name="messageConverters">  

  15.             <list>  

  16.                 <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>  

  17.             </list>  

  18.         </property>  

  19.     </bean>  

  20.   

  21.     <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->  

  22.     <bean  

  23.         class="org.springframework.web.servlet.view.InternalResourceViewResolver"  

  24.         p:prefix="/" p:suffix=".jsp" />  

  25. </beans>  

           其中org.springframework.http.converter.ByteArrayHttpMessageConverter是将二进制字节流转换器,因本人项目中用到了验证码,故需配置此项,

 

如果你没哟这方面需求的话可以不配置。要想使用springmvc上传功能的话还应配置org.springframework.web.multipart.commons.CommonsMultipartResolver

来支持上传功能,这里不再赘述。

          最后是mybatis的配置,主要是配置了数据源(连接池)、mybatis接口以及xml文件的映射位置、事务管理(这里使用的是spring jdbc的事务管理,

好处是通用,你也可以用其他来管理mybatis的事务),这里主要是使用的声明式事务(你也可以用注解式事务,如果你不嫌麻烦的话还可以用代码的形式),编辑完

的mybatis配置文件如下:

 

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <beans xmlns="http://www.springframework.org/schema/beans"  

  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  

  4.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"  

  5.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  

  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans   

  7.        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  

  8.        http://www.springframework.org/schema/context   

  9.        http://www.springframework.org/schema/context/spring-context-3.0.xsd  

  10.        http://www.springframework.org/schema/tx   

  11.        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  

  12.        http://www.springframework.org/schema/mvc   

  13.        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd      

  14.        http://www.springframework.org/schema/aop  

  15.        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  

  16.   

  17.     <!--c3p0数据库连接池 -->  

  18.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  

  19.         destroy-method="close">  

  20.         <property name="driverClass" value="${driverClassName}" />  

  21.         <property name="jdbcUrl" value="${jdbc_url}" />  

  22.         <property name="user" value="${jdbc_username}" />  

  23.         <property name="password" value="${jdbc_password}" />  

  24.         <property name="initialPoolSize" value="1" />  

  25.         <property name="minPoolSize" value="0" />  

  26.         <property name="maxPoolSize" value="50" />  

  27.         <property name="acquireIncrement" value="5" />  

  28.         <property name="maxIdleTime" value="10" />  

  29.         <property name="maxStatements" value="0" />  

  30.     </bean>  

  31.     <!-- myBatis文件 -->  

  32.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

  33.         <property name="dataSource" ref="dataSource" />  

  34.         <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->  

  35.         <property name="mapperLocations" value="classpath*:com/qijian/dao/impl/*.xml" />  

  36.     </bean>  

  37.         <!--dao接口的位置-->  

  38.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

  39.         <property name="basePackage" value="com.qijian.dao.inter" />  

  40.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />  

  41.     </bean>  

  42.   

  43.     <!-- 配置事务管理器 -->  

  44.     <bean id="transactionManager"  

  45.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  

  46.         <property name="dataSource" ref="dataSource" />  

  47.     </bean>  

  48.   

  49.     <!-- 注解方式配置事务 -->  

  50.     <!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->  

  51.   

  52.     <!-- 拦截器方式配置事务 -->  

  53.     <tx:advice id="transactionAdvice" transaction-manager="transactionManager">  

  54.         <tx:attributes>  

  55.             <tx:method name="add*" propagation="REQUIRED" />  

  56.             <tx:method name="append*" propagation="REQUIRED" />  

  57.             <tx:method name="insert*" propagation="REQUIRED" />  

  58.             <tx:method name="save*" propagation="REQUIRED" />  

  59.             <tx:method name="update*" propagation="REQUIRED" />  

  60.             <tx:method name="modify*" propagation="REQUIRED" />  

  61.             <tx:method name="edit*" propagation="REQUIRED" />  

  62.             <tx:method name="delete*" propagation="REQUIRED" />  

  63.             <tx:method name="remove*" propagation="REQUIRED" />  

  64.             <tx:method name="repair" propagation="REQUIRED" />  

  65.             <tx:method name="delAndRepair" propagation="REQUIRED" />  

  66.   

  67.             <tx:method name="get*" propagation="SUPPORTS" />  

  68.             <tx:method name="find*" propagation="SUPPORTS" />  

  69.             <tx:method name="load*" propagation="SUPPORTS" />  

  70.             <tx:method name="search*" propagation="SUPPORTS" />  

  71.             <tx:method name="datagrid*" propagation="SUPPORTS" />  

  72.   

  73.             <tx:method name="*" propagation="SUPPORTS" />  

  74.         </tx:attributes>  

  75.     </tx:advice>  

  76.     <aop:config>  

  77.         <aop:pointcut id="transactionPointcut"  

  78.             expression="execution(* com.qijian.service..*Impl.*(..))" />  

  79.         <aop:advisor pointcut-ref="transactionPointcut"  

  80.             advice-ref="transactionAdvice" />  

  81.     </aop:config>  

  82.   

  83. </beans>  

 

 

     最后再给出logback.xml代码,这个比较简单,如果不愿改变输出格式的话直接默认的xml格式就可以了,这里给出我的日志输出格式

 logback.xml

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <configuration>  

  3.     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  

  4.         <encoder>  

  5.             <pattern>%d{HH:mm:ss.SSS} %-5p [%c{0}] %m%n</pattern>  

  6.         </encoder>  

  7.     </appender>  

  8.     <root level="debug">  

  9.         <appender-ref ref="STDOUT" />  

  10.     </root>  

  11. </configuration>  

 

 

 

 

     以上基本将springmvc+mybatis的框架配置代码配置完了,然后编写代码就可以运行了。下面是示例代码:

 

controller

 

 

Java代码 

  1. package com.qijian.controller;  

  2.   

  3. import java.util.List;  

  4.   

  5. import org.slf4j.Logger;  

  6. import org.slf4j.LoggerFactory;  

  7. import org.springframework.beans.factory.annotation.Autowired;  

  8. import org.springframework.beans.factory.annotation.Qualifier;  

  9. import org.springframework.stereotype.Controller;  

  10. import org.springframework.web.bind.annotation.RequestMapping;  

  11. import org.springframework.web.bind.annotation.ResponseBody;  

  12.   

  13. import com.qijian.po.User;  

  14. import com.qijian.service.inter.IUserService;  

  15. import com.qijian.util.DataGrid;  

  16. @Controller   

  17. @RequestMapping("/test")  

  18. public class TestController {  

  19.       

  20.     private static Logger logger = LoggerFactory.getLogger(TestController.class);  

  21.       

  22.     @Autowired  

  23.     @Qualifier("userService")  

  24.     private  IUserService userService;  

  25.     @RequestMapping("/json")  

  26.     public @ResponseBody DataGrid<User> getAllUser(int page,int rows) {  

  27.         DataGrid<User> dg = new DataGrid<User>();  

  28.         List<User> userList = userService.getAllUser(page,rows);  

  29.         dg.setRows(userList);  

  30.         dg.setTotal(userService.userCount());  

  31.         logger.debug("------query------");  

  32.         return dg;  

  33.     }  

  34. }  

 

 

 service接口:

 

Java代码 

  1. package com.qijian.service.inter;  

  2.   

  3. import java.util.List;  

  4.   

  5. import com.qijian.po.User;  

  6.   

  7. public interface IUserService {  

  8.   

  9.     public List<User> getAllUser(int page,int rows);  

  10.     public int userCount() ;  

  11.       

  12. }  

 service实现

 

 

Java代码 

  1. package com.qijian.service.impl;  

  2.   

  3. import java.util.List;  

  4.   

  5. import org.springframework.beans.factory.annotation.Autowired;  

  6. import org.springframework.stereotype.Service;  

  7.   

  8. import com.qijian.dao.inter.UserMapper;  

  9. import com.qijian.po.User;  

  10. import com.qijian.service.inter.IUserService;  

  11.   

  12. @Service("userService")  

  13. public class UserServiceImpl implements IUserService {  

  14.   

  15.     @Autowired  

  16.     private UserMapper userMapper;  

  17.       

  18.     @Override  

  19.     public List<User> getAllUser(int page,int rows){  

  20.         page  = page<0?1:page;  

  21.         int start = (page-1) *rows;  

  22.         int end = page*rows;  

  23.         return userMapper.getAllUser(start,end);  

  24.     }  

  25.       

  26.     @Override  

  27.     public int userCount() {  

  28.         return userMapper.userCount();  

  29.     }  

  30.       

  31. }  

 

 

dao接口:

 UserMapper.java

 

Java代码 

  1. package com.qijian.dao.inter;  

  2.   

  3. import java.util.List;  

  4.   

  5. import com.qijian.po.User;  

  6.   

  7. public interface UserMapper {  

  8.     int deleteByPrimaryKey(Integer id);  

  9.   

  10.     int insert(User record);  

  11.   

  12.     int insertSelective(User record);  

  13.   

  14.     User selectByPrimaryKey(Integer id);  

  15.   

  16.     int updateByPrimaryKeySelective(User record);  

  17.   

  18.     int updateByPrimaryKey(User record);  

  19.       

  20.     public List<User> getAllUser(int start,int end);  

  21.       

  22.     public int userCount();  

  23. }  

 

 

dao实现(mybatis的xml文件):

UserMapper.xml

 

Xml代码 

  1. <?xml version="1.0" encoding="UTF-8" ?>  

  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  

  3. <mapper namespace="com.qijian.dao.inter.UserMapper" >  

  4.   <resultMap id="BaseResultMap" type="com.qijian.po.User" >  

  5.     <id column="id" property="id" jdbcType="INTEGER" />  

  6.     <result column="username" property="username" jdbcType="VARCHAR" />  

  7.     <result column="password" property="password" jdbcType="VARCHAR" />  

  8.   </resultMap>  

  9.   <sql id="Base_Column_List" >  

  10.     id, username, password  

  11.   </sql>  

  12.   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >  

  13.     select   

  14.     <include refid="Base_Column_List" />  

  15.     from qijian_user  

  16.     where id = #{id,jdbcType=INTEGER}  

  17.   </select>  

  18.   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >  

  19.     delete from qijian_user  

  20.     where id = #{id,jdbcType=INTEGER}  

  21.   </delete>  

  22.   <insert id="insert" parameterType="com.qijian.po.User" >  

  23.     insert into qijian_user (id, username, password  

  24.       )  

  25.     values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}  

  26.       )  

  27.   </insert>  

  28.   <insert id="insertSelective" parameterType="com.qijian.po.User" >  

  29.     insert into qijian_user  

  30.     <trim prefix="(" suffix=")" suffixOverrides="," >  

  31.       <if test="id != null" >  

  32.         id,  

  33.       </if>  

  34.       <if test="username != null" >  

  35.         username,  

  36.       </if>  

  37.       <if test="password != null" >  

  38.         password,  

  39.       </if>  

  40.     </trim>  

  41.     <trim prefix="values (" suffix=")" suffixOverrides="," >  

  42.       <if test="id != null" >  

  43.         #{id,jdbcType=INTEGER},  

  44.       </if>  

  45.       <if test="username != null" >  

  46.         #{username,jdbcType=VARCHAR},  

  47.       </if>  

  48.       <if test="password != null" >  

  49.         #{password,jdbcType=VARCHAR},  

  50.       </if>  

  51.     </trim>  

  52.   </insert>  

  53.   <update id="updateByPrimaryKeySelective" parameterType="com.qijian.po.User" >  

  54.     update qijian_user  

  55.     <set >  

  56.       <if test="username != null" >  

  57.         username = #{username,jdbcType=VARCHAR},  

  58.       </if>  

  59.       <if test="password != null" >  

  60.         password = #{password,jdbcType=VARCHAR},  

  61.       </if>  

  62.     </set>  

  63.     where id = #{id,jdbcType=INTEGER}  

  64.   </update>  

  65.   <update id="updateByPrimaryKey" parameterType="com.qijian.po.User" >  

  66.     update qijian_user  

  67.     set username = #{username,jdbcType=VARCHAR},  

  68.       password = #{password,jdbcType=VARCHAR}  

  69.     where id = #{id,jdbcType=INTEGER}  

  70.   </update>  

  71.   <select id="getAllUser"  resultType="com.qijian.po.User">  

  72.     select * from qijian_user limit #{0},#{1}  

  73.   </select>  

  74.     

  75.     <select id="userCount" resultType="int">  

  76.     select count(id) from qijian_user  

  77.   </select>  

  78.     

  79. </mapper>  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!