• SSM框架开发案例——铁大树洞后台管理系统


    写在前面

    在学习完了SSM框架后,想着写个案例来巩固一下,正好之前自己写的APP需要一个后台管理系统,于是就写了一个练练手。
    github地址:https://github.com/wushenjiang/TDTreeHoleWeb

    效果截图


    配置SSM框架

    要做SSM,首先要配置SSM框架的环境。详细请见上一篇博客:https://www.cnblogs.com/wushenjiang/p/12828812.html
    这里我再做进一步的解耦,将数据库配置和mybatis配置都独立出来,如下:

        <!-- 加载数据库连接池配置文件 -->
        <context:property-placeholder location="classpath:db.properties"/>
        <!-- 配置连接池-->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driver}"/>
            <property name="jdbcUrl" value="${jdbc.url}"/>
            <property name="user" value="${jdbc.user}"/>
            <property name="password" value="${jdbc.password}"/>
            <property name="maxIdleTime" value="${jdbc.maxIdleTime}"/>
        </bean>
        <!-- 配置SqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!-- 加载mybatis的全局配置文件-->
            <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
        </bean>
    

    数据库配置文件就不上了,这里发一下mybatis的全局配置:

    <?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>
        <mappers>
            <!-- xml配置文件必须和类在同一级package下,且同名 -->
            <package name="com.liuge.dao"/>
        </mappers>
    </configuration>
    

    主要是在这里设置了对应的包,要求我们的映射文件要和类在同一级package下。

    模块分工和思路

    主要有三大模块:用户模块,发帖模块,回帖模块。依次讲解各个模块:
    用户模块细分为查看用户和用户详情(可以查看用户发帖和回帖),具体实现思路很简单,就是把以前用servlet的东西都交给SpringMVC去做,设置一个方法和对应的注解即可。service和dao都交给Spring来管理。
    发帖模块细分为查看所有帖子和帖子详情(可以看帖子下有什么回复)。
    回帖模块只有查看所有回帖。

    踩坑记录

    • 1.首先就是Mybatis的设置了。一直设置不好映射文件和接口的自动映射,后来发现maven工程默认不会扫描除resources下的xml,我们要在pom.xml手动设置一下:
        <!-- maven默认不编译xml配置文件,需要手动指定-->
        <resources>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <!-- 是否替换资源中的属性 -->
            <filtering>false</filtering>
          </resource>
        </resources>
    
    • 2.再来就是sql注入问题。由于要写一个模糊查询,如果用字符串拼接必然会导致sql注入问题。这里用了mysql的自带函数concat,连接字符串的函数。sql语句如下示例:
    select * from post where title like concat('%',#{title},'%');
    

    总结

    经过这次开发,可以体会到SSM框架带来的诸多好处。就是初期的配置略繁琐,但配置好后写代码的速度和运行效率都大大提高了。以后会做更多的开发的

  • 相关阅读:
    Windows Azure Web Site (19) Azure Web App链接到VSTS
    Windows Azure Virtual Machine (35) Azure VM通过Linked DB,执行SQL Job
    Azure PowerShell (16) 并行开关机Azure ARM VM
    Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering
    Azure ARM (21) Azure订阅的两种管理模式
    Windows Azure Platform Introduction (14) 申请海外的Windows Azure账户
    Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
    Azure ARM (19) 将传统的ASM VM迁移到ARM VM (2)
    Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)
    Azure Automation (6) 执行Azure SQL Job
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/12838202.html
Copyright © 2020-2023  润新知