spring-springmvc-mybatis项目介绍

本文介绍了一个基于Spring MVC和MyBatis的简单项目结构和配置,包括控制器、服务层和服务实现、DAO层及实体类的设计。项目通过Spring MVC进行前端请求处理,并利用MyBatis实现与数据库的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring-springmvc-mybatis项目介绍

单纯的spring整合springmvc+mybatis,整合所需算是最简配置
项目代码获取:https://github.com/pysasuke/s...

项目结构

 main

  • controller:控制层,UserController展示了两种返回而类型情况:跳转页面和返回对象

    //@RequestMapping("getUser")
    @RequestMapping(value = "getUser", method = RequestMethod.GET)
    public String getUser(@RequestParam("id") Long id, Model model) {
        User user = userServicre.getById(id);
        model.addAttribute("user", user);
        return "user";
    }

    @RequestMapping("getById")
    @ResponseBody
    /*
    POJO对象要转成Json,则要求POJO中的属性必须都有getter方法
    需要有json对应的包
    不加返回时406报错:
    The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.-->
    */
    public User getById(@RequestParam("id") Long id) {
        User user = userServicre.getById(id);
        return user;
    }
  • service:业务处理层,包含一个impl包,Service以接口类型存在,impl包下存放Service接口的实现类

  • dao:数据库交互层

  • model:实体对象层

resources

  • application.xml:spring配置文件入口,加载spring-config.xml

  • spring-mvc.xml:springmvc配置相关文件

    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
    <context:component-scan base-package="com.py.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!--注解方式(处理请求)-->
    <mvc:annotation-driven/>
 
    <!--静态资源默认servlet配置a
        1、加入对静态资源的处理:js,css,gif,png
        2、允许使用"/"做整体映射
    -->
    <mvc:default-servlet-handler/>
     <!-- 静态资源处理  css js imgs 可以直接访问而不被拦截-->
    <mvc:resources mapping="/html/**" location="/WEB-INF/html/"/>

    <!-- 定义跳转的文件的前后缀 ,视图模式配置  解析控制层return "index" 一类的操作-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
  • spring-config.xml:加载其他集成的配置文件,这里加载spring-mybatis.xml和db.properties

  • spring-mybatis.xml:mybatis相关配置文件

    <!-- 自动扫描(自动注入) -->
    <context:component-scan base-package="com.py.*"/>

    <!-- 配置数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          init-method="init" destroy-method="close">
        <property name="driverClassName" value="${db.driver}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.username}"/>
        <property name="password" value="${db.password}"/>
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="${initialSize}"></property>
        <!-- 连接池最大数量 -->
        <property name="maxActive" value="${maxActive}"></property>
        <!-- 连接池最大空闲 -->
        <!--<property name="maxIdle" value="${maxIdle}"></property>-->
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="${minIdle}"></property>
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="${maxWait}"></property>

        <property name="filters" value="stat,log4j,wall"/>

    </bean>


    <!-- myBatis文件 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描mapping.xml文件 -->
        <!--以mapper命名时报错:
        org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)-->
        <!--<property name="mapperLocations" value="classpath*:mapping/*.xml"/>-->
        <property name="mapperLocations" value="classpath*:mapping/*.xml"/>
    </bean>

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.py.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
  • db.properties:数据库相关参数

  • mapping:存放mybatis映射文件,以UserMapper.xml为例

<!--与dao中的接口类对应-->
<mapper namespace="com.py.dao.UserMapper">

    <select id="getById" resultType="com.py.model.User">
        select id,username,password,email from user where id=#{id,jdbcType=BIGINT}
    </select>

</mapper>

webapp

  • web.xml

    <!-- SpringMVC核心 -->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Spring的配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:application.xml</param-value>
    </context-param>

    <!-- Spring监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- SpringMVC拦截设置 -->
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <!-- 由SpringMVC拦截所有请求 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- SpringMVC拦截设置结束 -->
**smart-web2** 是一套相对简单的OA系统;包含了流程设计器,表单设计器,权限管理,简单报表管理等功能; 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuery+Bootstrap等主流技术; 流程引擎基于Snaker工作流;表单设计器基于雷劈网WEB表单设计器。 系统主要功能有: >1.系统管理 >>系统管理包含有:基础信息管理、系统权限管理、版本管理、子系统管理。 > >2.流程管理 >>流程管理包含有:流程设计器、流程实例管理、流程页面模版管理等功能。 > >3.表单管理 >>表单管理包含有:表单设计器、表管理、表单帮助信息管理等。 > >4.我的办公 >>我的待办、我的已办; > >5.简单报表管理 >>简单报表管理包含:简单报表的设计、报表管理等。 使用说明 ======= ------- ---数据库MySQL5.6以上 ---下载后把data目录下的smart-web2.zip解压;然后解压出来的脚本文件(“smart-web2.sql”)导入到mysql数据库中;注:建库时,字符集编码为:utf8(utf8_general_ci) ---修改配置文件“jdbc.properties”,改成对应数据库的用户名和密码 ---“sysconfig.properties”系统配置文件;需要修改“root.dir”属性,设置为系统上传文件时用来存放的根目录 ----系统管理员用户名为:admin;密码为:123456 ----linux类系统需要修改mysql的配置文件,改为数据库表名不区分大小写(lower_case_table_names=1) 环境要求 ------------ 1.jdk要求1.7及以上; 2.tomcat6或tomcat7; 3.eclipse版本4.4以上; 4.浏览器要求:IE8及以上(最理想的是IE10及以上),火狐,chrome等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值