基于JAVA开发的关于Spring+SpringMVC+Mybatis框架的实战项目全教程

今天和大家分享的是关于JAVA大数据开发中,最应该掌握的利用spring+springmvc+mybatis搭建框架的例子,说到这里不得不说现在市面上一流大公司还有很多用这种架子,现在和往常也是不一样,之前是喜欢用纯JSP,现在市面上很多的创业型公司大部分都用springboot集成的mvc+mybatis来构建应用,形成了两种“趋势”没有统一;自己在这里做了一个简单的Spring+SpringMVC+Mybatis的项目实战例子,希望大家多多支持和给出建议。
mybatis-generator逆向工程生成实体和配置文件
一、针对spring+springmvc+mybatis系列配置
访问静态资源的两种配置方式
引入事物注解

打成war包部署到tomcat

java项目中mybatis很常用,要说靠手动来配置实体,映射文件那可繁琐了,为此有了快速生成实体和mapper文件的generator工具;首先我们新建项目,初始化项目结构如:


然后创建名称mybatis-generator.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="classpath:application.properties"/>-->
    <!--<properties url="D:\my_study\study_java\springcloud_demo\mybatis_demo\src\main\resources\application.properties"/>-->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--自动实现Serializable接口-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
        <!-- 去除自动生成的注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>
        <!--数据库基本信息-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://119.111.111.111:3306/shenniu003_db"
                        userId="root"
                        password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成实体类的位置以及包的名字-->
        <javaModelGenerator targetPackage="model" targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成map的位置-->
        <sqlMapGenerator targetPackage="dao.mapper.xml" targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Dao类存放位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="dao.mapper"  targetProject="src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--<!–对应的表名,以及实体名–>-->
        <table tableName="StoreUser" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
        enableUpdateByExample="false" >
        </table>
    </context>
</generatorConfiguration>

我们在有了配置文件我们有两种方式可以执行通过这个xml配置来生成mapper等文件,mvn是java开发很好的一种工具,这里也使用mvn来运行这个配置工具,仅仅需要在pom.xml中如下配置:

<!--代码生成器-->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.5</version>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>5.1.35</version>
                        </dependency>
                        <dependency>
                            <groupId>org.mybatis.generator</groupId>
                            <artifactId>mybatis-generator-core</artifactId>
                            <version>1.3.5</version>
                        </dependency>
                    </dependencies>

                    <!--作为DOM对象的配置-->
                    <configuration>
                        <!--允许移动生成的文件-->
                        <verbose>true</verbose>
                        <!--是否覆盖-->
                        <overwrite>true</overwrite>
                        <!--自动生成的配置-->
                        <configurationFile>
                            ${basedir}/src/main/resources/mybatis-generator.xml
                        </configurationFile>
                    </configuration>
                </plugin>
23体验网通过mvn的mybatis-generator-maven-plugin插件来运行生成,当配置完成mvn后,我们能在Intellij IDEA中的mvn管理器中看到如下选项:


双击运行即可,只要数据库连接没问题,就能正常生成文件:


要说这个ssm已经流行了很多年了,大公司也还在继续使用它,小型创业公司估计都往springboot上去靠了,因为springboot集成了很多东西带来了很多便利;上家公司的某java中级工程师都还没用过springboot,真让人吃惊;在resources目录中创建一个spring的文件夹,里面分别存放3个文件:spring-web.xml,spring-service.xml,spring-dao.xml;代码以此如下,spring-web.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"
       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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--配置spring mvc-->
    <!--开启springmvc注解模式 xml,json的默认读写支持-->
    <mvc:annotation-driven/>

    <!--默认servlet配置静态资源-->
    <mvc:default-servlet-handler/>

    <!--配置JSP 显示ViewResolver-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--扫描web相关的bean-->
    <context:component-scan base-package="controller"/>

    <!--指定静态资源映射-->
    <!--<mvc:resources mapping="/**/*.js" location="/"/>-->
</beans>

spring-service.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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--扫描service包下所有使用注解的类型-->
    <context:component-scan base-package="service"/>

    <!--配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--配置基于注解的声明式事务
    默认使用注解来管理事务行为-->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

spring-dao.xml:

扫描二维码关注公众号,回复: 2049518 查看本文章
<?xml version="1.0" encoding="UTF-8"?>
<a href="http://www.23tiyan.com/"></a>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--数据库参数-->
    <!--<context:property-placeholder location="classpath:application.properties"/>-->
    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:application.properties" />
    </bean>

    <!--数据库连接池-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
          destroy-method="close">
        <!--配置连接池属性-->
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
    </bean>

    <!--SqlSessionFactory对象-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--往下才是mybatis和spring真正整合的配置-->
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置mybatis全局配置文件:mybatis-config.xml-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--扫描sql配置文件:mapper需要的xml文件-->
        <property name="mapperLocations" value="classpath*:dao/mapper/xml/*.xml"/>
    </bean>

    <!--配置扫描Dao接口包,注入到spring容器-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--注入SqlSessionFactory-->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 给出需要扫描的Dao接口-->
        <property name="basePackage" value="dao"/>
    </bean>

    <!--<!– 配置Spring的事务管理器 –>-->
    <!--<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">-->
        <!--<property name="dataSource" ref="dataSource" />-->
    <!--</bean>-->

    <!--<!– 注解方式配置事物 Service支持Transiactional –>-->
     <!--<tx:annotation-driven transaction-manager="transactionManager" />-->
</beans>

spring-dao.xml里面涉及到了数据库连接,这里通过property引入一个数据库连接串配置文件:

<bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:application.properties" />
</bean>
对于java实战项目部署来说tomcat还是常用的容器,我们要把ssm工程打包成war包,需要在mvn中build节点中如下配置 ​:
<!--加载非资源目录的配置文件-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>dao/mapper/xml/*.xml</include>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
                <excludes>
                    <exclude>**/*-generator.xml</exclude>
                </excludes>
                <filtering>false</filtering>
            </resource>
        </resources>
由于我工程创建时候没有main入口,因此在打包时候是不会成功的,我们需要通过手动添加一个如下main入口class就可以完成这个基于JAVA实战项目的关于Spring+SpringMVC+Mybatis框架的实战项目了。默默的来23体验网给个评价吧!

猜你喜欢

转载自blog.csdn.net/du_23tiyanwang/article/details/80333541