SpringMVC+Spring+MyBatis整合完整版Web实例(附数据)

  最近段时间正在学习Spring MVC和MyBatis的一些知识。自己也在网络上面找了一些例子来练习。但是都不是很完整。所以,今天,自己也抽空写了个完成的关于Spring MVC + Spring + MyBatis(简称 SSM)的一个CRUD的完整Web 演示例子。如果你也是刚好学习这几个框架的新手,或许我做的这个例子对你刚好有所帮助哦!

演示工程的目录结构

添加数据页面

修改数据的页面

查询出的数据列表

  下面来说下这个演示的小例子。首先,我是使用MyEclipse工具做的这个例子,整合了Sping 3 、Spring MVC 3 、MyBatis框架,演示数据库采用MySQL数据库。例子中主要操作包括对数据的添加(C)、查找(R)、更新(U)、删除(D)。我在这里采用的数据库连接池是来自阿里巴巴的Druid,至于Druid的强大之处,我在这里就不做过多的解释了,有兴趣的朋友们可以去网上谷歌或者百度一下哦!好了下面我就贴上这次这个演示例子的关键代码:

BaseController:

package com.bky.controller;

import java.util.List;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.bky.model.Add;
import com.bky.service.BaseService;

@Controller
public class BaseController {

    private BaseService baseService;

    public BaseService getBaseService() {
        return baseService;
    }
    @Autowired
    public void setBaseService(BaseService baseService) {
        this.baseService = baseService;
    }

    @SuppressWarnings("finally")
    @RequestMapping("addInfo")
    public String add(Add add,HttpServletRequest request){
        try {
            add.setId(UUID.randomUUID().toString());
            System.out.println(add.getId() + ":::::" + add.getTname() + ":::::" + add.getTpwd());
            String str = baseService.addInfo(add);
            System.out.println(str);
            request.setAttribute("InfoMessage", str);
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("InfoMessage", "添加信息失败!具体异常信息:" + e.getMessage());
        } finally {
            return "result";
        }
    }

    @RequestMapping("getAll")
    public String getAddInfoAll(HttpServletRequest request){
        try {
            List<Add> list = baseService.getAll();
            System.out.println(list);
            request.setAttribute("addLists", list);
            return "listAll";
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
            return "result";
        }
    }

    @SuppressWarnings("finally")
    @RequestMapping("del")
    public String del(String tid,HttpServletRequest request){
        try {
            String str = baseService.delete(tid);
            request.setAttribute("InfoMessage", str);
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("InfoMessage", "删除信息失败!具体异常信息:" + e.getMessage());
        } finally {
            return "result";
        }
    }
    @RequestMapping("modify")
    public String modify(String tid,HttpServletRequest request){
        try {
            Add add = baseService.findById(tid);
            request.setAttribute("add", add);
            return "modify";
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("InfoMessage", "信息载入失败!具体异常信息:" + e.getMessage());
            return "result";
        }
    }
    @SuppressWarnings("finally")
    @RequestMapping("update")
    public String update(Add add,HttpServletRequest request){
        try {
            String str = baseService.update(add);
            request.setAttribute("InfoMessage", str);
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("InfoMessage", "更新信息失败!具体异常信息:" + e.getMessage());
        } finally {
            return "result";
        }
    }

}

Service的实现:

package com.bky.service.impl;

import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.bky.dao.AddMapper;
import com.bky.model.Add;
import com.bky.service.BaseService;

@Service("baseService")
public class BaseServiceImpl implements BaseService {

    private AddMapper addMapper;

    public AddMapper getAddMapper() {
        return addMapper;
    }
    @Autowired
    public void setAddMapper(AddMapper addMapper) {
        this.addMapper = addMapper;
    }

    @Override
    public String addInfo(Add addInfo) {
        if (addMapper.insertSelective(addInfo) == 1) {
            return "添加成功";
        }
        return "添加失败";
    }
    @Override
    public List<Add> getAll() {
        return addMapper.getAll();
    }
    @Override
    public String delete(String id) {
        if (addMapper.deleteByPrimaryKey(id) == 1) {
            return "删除成功";
        }
        return "删除失败";
    }
    @Override
    public Add findById(String id) {
        return addMapper.selectByPrimaryKey(id);
    }
    @Override
    public String update(Add addInfo) {
        if (addMapper.updateByPrimaryKeySelective(addInfo) == 1) {
            return "更新成功";
        }
        return "更新失败";
    }

}

Mapper:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.bky.dao.AddMapper" >
  <resultMap id="BaseResultMap" type="com.bky.model.Add" >
    <id column="id" property="id" jdbcType="VARCHAR" />
    <result column="tname" property="tname" jdbcType="VARCHAR" />
    <result column="tpwd" property="tpwd" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Base_Column_List" >
    id, tname, tpwd
  </sql>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select
    <include refid="Base_Column_List" />
    from tadd
    where id = #{id,jdbcType=VARCHAR}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
    delete from tadd
    where id = #{id,jdbcType=VARCHAR}
  </delete>
  <insert id="insert" parameterType="com.bky.model.Add" >
    insert into tadd (id, tname, tpwd
      )
    values (#{id,jdbcType=VARCHAR}, #{tname,jdbcType=VARCHAR}, #{tpwd,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.bky.model.Add" >
    insert into tadd
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        id,
      </if>
      <if test="tname != null" >
        tname,
      </if>
      <if test="tpwd != null" >
        tpwd,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="id != null" >
        #{id,jdbcType=VARCHAR},
      </if>
      <if test="tname != null" >
        #{tname,jdbcType=VARCHAR},
      </if>
      <if test="tpwd != null" >
        #{tpwd,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.bky.model.Add" >
    update tadd
    <set >
      <if test="tname != null" >
        tname = #{tname,jdbcType=VARCHAR},
      </if>
      <if test="tpwd != null" >
        tpwd = #{tpwd,jdbcType=VARCHAR},
      </if>
    </set>
    where id = #{id,jdbcType=VARCHAR}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.bky.model.Add" >
    update tadd
    set tname = #{tname,jdbcType=VARCHAR},
      tpwd = #{tpwd,jdbcType=VARCHAR}
    where id = #{id,jdbcType=VARCHAR}
  </update>

  <select id="getAll" resultMap="BaseResultMap">
      SELECT * FROM tadd
  </select>
</mapper>

  以上就是几个关键位置的代码,我全部贴出来了。至于配置文件什么的,由于时间原因没有贴出。如果大家要是感兴趣的话,可以下载我的这个演示项目包,里面的东西都齐全着,导入到MyEclipse上面直接部署到服务器上面就可以运行。数据库就是里面的那个.sql文件。建个库然后将数据导入就是。哦,对了。导完数据后,记得别忘了到config.properties里面去把数据库的连接信息换成你自己哦!

本次演示例子源码完整下载:http://pan.baidu.com/s/1jDA2q(百度网盘)

本文转自:http://www.baikeyang.com/code/96610.html

时间: 2024-08-08 12:11:26

SpringMVC+Spring+MyBatis整合完整版Web实例(附数据)的相关文章

SSM(springmvc+spring+mybatis)整合过程

问题?SSM(springmvc+spring+mybatis)整合过程 一.SSM框架比较S2SH框架的优缺点比较 站在个人使用这两个框架的观点儿上来说的话,我觉得这个不能定死的说,常用的S2SH,SpringMVC等,还可以考虑jFinal. 首先说S2SH,这个是用的比较多的,特别是在中小型项目中,针对大型项目就不行了,是Struts和hibernate过于庞大,过于重量级,项目大了之后配置文件多的也是麻烦事,配置文件多了之后一方面不好操作,另外比较蛋疼的是没法断点调试,特别是对底层数据库

ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)

在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,下面就只贴出各层实现功能的代码: Jsp页面实现功能的js代码如下: <script> //用于捕获分类编辑按钮的 click 事件,并且根据返回值确定是否允许进入名称编辑状态 function beforeEditName(treeId, treeNode) { var zTree = $.fn.zTree.getZTreeObj("treeDemo"); zTree.

SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置

一直对springmvc和mybatis挺怀念的,最近想自己再搭建下框架,然后写点什么. 暂时没有整合缓存,druid也没有做ip地址的过滤.Spring的AOP简单配置了下,也还没具体弄,不知道能不能用,log也不知道能不能用,`(*∩_∩*)′哈哈,有点不负责任...... 直接上代码: 使用的eclipse和eclipse自带的maven,参考了网上的资料,有些代码是拷贝的,不过都自己测试过了.嗯,可以跑起来... 先上项目结构: 新建maven项目,选择web,然后配置pom: <pro

springmvc+spring+mybatis 整合

1.其实我也是菜鸟一枚,以前ssm不会,所以花了一段时间,学习了mybatis spring又进行了整合,后来又学习springmvc算是都看了看,今天就把整个搭建好的框架整理一下,和大家分享,如果错误希望指正…… 2.整个项目的目录结构: 3.有了整体结构之后我们一步一步整合来实现,整合步骤: (1).配置前端控制器,web.xml配置 (2).创建处理映射器 springmvc-server.xml 配置 (3).创建控制层 (4).业务逻辑层 (5).dao层 (6).sqlmapper

SpringMVC+Spring+Mybatis整合

创建web工程 用eclipse或idea创建一个web工程,在这里演示使用idea,项目命名为ssm 建立工程目录框架 根据习惯,简历包目录,分别为 config 在其中创建两个子包mybatis和spring,分别用来放置spring.mybatis配置文件 mapper 用来放置mybatis的mapper接口和mapper.xml service service层的javabean controller controller的javabean pojo 简单的POJO类 在WEB-INF

JAVA springmvc+spring+mybatis整合

一.springmvc---controller  spring----service  mybatiss---dao pring(包括springmvc).mybatis.mybatis-spring整合包.数据库驱动.第三方连接池. 因为springmvc和spring属于同一个公司不需要整合包,而mybaits和spring需要整合包. 二.jar包列表 pom文件依赖: 1 <dependencies> 2 <dependency> 3 <groupId>org

SpringMVC+Spring+MyBatis 整合与图片上传简单示例

一.思路: (一) Dao层: 1. SqlMapConfig.xml,空文件即可.需要文件头.2. applicationContext_dao.xml. a) 数据库连接池b) SqlSessionFactory对象,需要spring和mybatis整合包下的.c) 配置mapper文件扫描器. (二)Service层: 1.applicationContext_service.xml包扫描器,扫描@service注解的类.2.applicationContext_trans.xml配置事务

SpringMVC + Spring + MyBatis 整合 + Spring shrio + easyUI + 权限管理框架,带shrio session和shrio cache集群实现方案

工作之余先来写了一个不算规范的简单架子 基于spring mvc + spring + mybatis + Spring shrio 基于redis的集群方案 系统权限部分,分成多个机构,其中每个机构也有自己的子机构,子机构继承的部分权限,其中每个机构拥有自己的角色和用户,角色的权限是机构中的权限,用户选择角色只能从对应机构中的角色进行选择,机构中的用户创建子机构对子机构进行授权,创建角色对角色进行授权,创建用户对用户设置角色,系统有一个超级管理员,对机构角色和用户拥有删除功能,其他机构中的管理

springmvc+spring+mybatis整合实例【转】

开发环境: System:Windows server 2003 WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5. IDE:eclipse.MyEclipse 6.5 Database:MySQL 开发依赖库: JavaEE5.Spring 3.0.5.Mybatis 3.0.2.myBatis-spring-1.0.0-rc2 1. 首先新建一个WebProject 命名为ssi,新建项目时,使用JavaEE5的lib库.然后手动添加需要的jar