`
wuhoujian322
  • 浏览: 63505 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring MVC结合MyBatis+MySQL小实例

阅读更多

    前段时间自己发布了一篇关于SpringMVC结合Redis的小实例,今天呢,想和大家分享一下自己最近使用Spring MVC结合MyBatis+MySQL的小实例,在这里先贴出一下自己在GitHub上共享的代码Demo,下面我会贴出一些核心的内容以及相关总结。GitHub上的Demo地址如下:https://github.com/williamjava/demo

 

1、准备工作

    小实例Demo是基于Maven的,所以相关的jar依赖大家可以参考项目根目录下的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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tutu.love</groupId>

  <artifactId>guitu</artifactId>

  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>

  <name>guitu Maven Webapp</name>

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

  

  <repositories>  

        <repository>  

            <id>com.springsource.repository.bundles.release</id>  

            <name>EBR Spring Release Repository</name>  

            <url>http://repository.springsource.com/maven/bundles/release</url>  

        </repository>  

        <repository>  

            <id>com.springsource.repository.bundles.external</id>  

            <name>EBR External Release Repository</name>  

            <url>http://repository.springsource.com/maven/bundles/external</url>  

        </repository>  

    </repositories>

  

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <spring.version>4.1.4.RELEASE</spring.version>

  </properties>

  

  <dependencies>

  <!-- MyBatis相关 -->

    <dependency>

        <groupId>org.mybatis</groupId>

        <artifactId>mybatis</artifactId>

        <version>3.2.0</version>

    </dependency>

    <dependency>

        <groupId>org.mybatis</groupId>

        <artifactId>mybatis-spring</artifactId>

        <version>1.2.0</version>

    </dependency>

    

    <!-- MySQL相关 -->

    <dependency>

        <groupId>mysql</groupId>

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

        <version>5.1.36</version>

    </dependency>

    <dependency>

        <groupId>c3p0</groupId>

        <artifactId>c3p0</artifactId>

        <version>0.9.1.2</version>

    </dependency>

    

    <!-- Spring相关,这里的spring.version就是上方声明的版本号,这样引用更方便修改和维护 -->

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-webmvc</artifactId>

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

    </dependency>

    <dependency>  

        <groupId>org.springframework</groupId>  

        <artifactId>spring-core</artifactId> 

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

    </dependency>

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-web</artifactId>

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

    </dependency>

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-test</artifactId>

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

    </dependency>

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-ibatis</artifactId>

        <version>2.0.8</version>

    </dependency>

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-jdbc</artifactId>

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

    </dependency>

    

    <!-- 测试相关 -->

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

    

    <!-- Servlet相关 -->

    <dependency>

        <groupId>tomcat</groupId>

        <artifactId>servlet-api</artifactId>

        <version>5.5.23</version>

    </dependency>

 

    <!-- Log相关 -->

    <dependency>

        <groupId>log4j</groupId>

        <artifactId>log4j</artifactId>

        <version>1.2.17</version>

    </dependency>

    

    <!-- Redis相关 -->

    <dependency>

   <groupId>redis.clients</groupId>

   <artifactId>jedis</artifactId>

   <version>2.0.0</version>

</dependency>

 

<!-- 其他 -->

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

 

<dependency>  

        <groupId>net.sourceforge.cglib</groupId>  

        <artifactId>com.springsource.net.sf.cglib</artifactId>  

        <version>2.1.3</version>  

    </dependency>  

 

  </dependencies> 

  

  <build>

    <finalName>guitu</finalName>

    

    <plugins>

    <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> 

 

<plugin>  

            <groupId>org.apache.maven.plugins</groupId>  

            <artifactId>maven-eclipse-plugin</artifactId>  

            <version>2.7</version>  

            <configuration>  

                <sourceIncludes>  

                    <sourceInclude>*</sourceInclude>  

                </sourceIncludes>  

            </configuration>  

        </plugin>  

    </plugins>

  </build>

</project>

 

2、配置mybatis相关类自动生成(mybatis-generator)

配置最核心的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>

     <classPathEntry

             location="D:/MavenRepo/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar"/>

     <context id="my" targetRuntime="MyBatis3">

         <commentGenerator>

             <property name="suppressDate" value="false"/>

             <property name="suppressAllComments" value="true"/>

         </commentGenerator>

 

         <jdbcConnection driverClass="com.mysql.jdbc.Driver"

                         connectionURL="jdbc:mysql://127.0.0.1:3306/stusys" userId="root"

                         password="123456"/>

 

         <javaModelGenerator targetPackage="com.tu.entity"

                             targetProject="E:\william_demo_git\guitu\src\main\java">

             <property name="enableSubPackages" value="true"/>

             <property name="trimStrings" value="true"/>

         </javaModelGenerator>

 

         <sqlMapGenerator targetPackage="com.tu.mapper"

                          targetProject="E:\william_demo_git\guitu\src\main\resources">

             <property name="enableSubPackages" value="true"/>

         </sqlMapGenerator>

 

         <javaClientGenerator targetPackage="com.tu.mapper"

                              targetProject="E:\william_demo_git\guitu\src\main\java" type="XMLMAPPER">

             <property name="enableSubPackages" value="true"/>

         </javaClientGenerator>

 

         <table tableName="user_info" domainObjectName="UserInfo"

                enableCountByExample="true" enableUpdateByExample="false"

                enableDeleteByExample="false" enableSelectByExample="true"

                selectByExampleQueryId="false">

         </table>

     </context>

 </generatorConfiguration>

 

如何执行MyBatis文件的相关生成呢?我自己简单写了一个.bat文件,内容如下:

#generatorConfig.xml文件所在的项目目录

cd E:\william_demo_git\guitu\src\main\java\com\tu\dao

 

java -jar D:\MavenRepo\org\mybatis\generator\mybatis-generator-core\1.3.2\mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

 

pause;

 

3、配置文件中的重要内容以及使用的相关注解

spring-common.xml文件中配置的注解扫描目录以及配置的BeanPostProcessor(对标注@Autowired的bean自动注入)

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

<!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->     

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

其他的相关配置大家可以参考具体的Demo

 

既然使用了Spring的注解,每一层的实例注入,用到的具体注解有必要说明一下:

控制层:@Controller

Service层:@Service,使用在接口对应的实现类上面

Dao层:@Repository,同样是使用在接口对应的实现类上面

MyBatis生成的Mapper类:@Resource

类中有注入的属性:@Autowired,使用在属性上

特别需要注意的地方:使用注解@Autowired注入具体的属性的时候,一定要记得提供set方法,否则Spring注入会出错。

 

4、效果实现

JSP --> Controller --> Service --> Dao --> Mapper

这里除了JSP,实际开发过程中我想会有独立的前段去做,这里同大家回顾一下在前段部分我们需要做的工作。

现在我要在前段展示一个用户列表信息,后端数据已经准备好了,控制层会返回数据(userList)到前段页面,那么页面如何进行展示呢?我们使用jstl(JSP标准标签库)配合EL表达式进行实现。

a)、jsp页面引入:<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

b)、使用<c:forEach>标签遍历控制层返回的用户数据信息

                      <c:forEach var="user" items="${userList }">

<tr>

<td>${user.name }</td>

<td>${user.province }</td>

<td>${user.city }</td>

<td>${user.job }</td>

<td>${user.phone }</td>

</tr>

</c:forEach>

到这里基本上该做的工作都做完了,接下来要做的就是启动服务,见证奇迹的时刻,一个用户列表即将展示在我们面前。

 

访问URL:http://localhost:8080/guitu/user/getAllUsers

看到的效果:



 

  • 大小: 29.7 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics