最近段时间正在学习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

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

  1. 3.springMVC+spring+Mybatis整合Demo(单表的增删该查,这里主要是贴代码,不多解释了)

    前面给大家讲了整合的思路和整合的过程,在这里就不在提了,直接把springMVC+spring+Mybatis整合的实例代码(单表的增删改查)贴给大家: 首先是目录结构: 仔细看看这个目录结构:我不详 ...

  2. SpringMVC+Spring+Mybatis整合

    SpringMVC+Spring+Mybatis整合 导包 配置jdbc.properties.log4j.properties jdbc.driver=com.mysql.jdbc.Driver j ...

  3. Springmvc+Spring+Mybatis整合开发(架构搭建)

    Springmvc+Spring+Mybatis整合开发(架构搭建) 0.项目结构 Springmvc:web层 Spring:对象的容器 Mybatis:数据库持久化操作 1.导入所有需要的jar包 ...

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

    在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,以下就仅仅贴出各层实现功能的代码: Jsp页面实现功能的js代码例如以下: <script ...

  5. 2.springMVC+spring+Mybatis整合

    前面已经说了,springMVC+spring+Mybatis的整合思路了,现在就照着这个思路来做一下: 在开始之前先来看一下工程的目录结构: config这个目录底下放的都是配置文件: mybati ...

  6. Spring + mybatis整合方案总结 结合实例应用

    Spring + mybatis整合实例应用 项目结构图 (Spring3.0.2 +mybatis3.0.4) 方案一: 通过配置文件整合Spring和mybatis 应用数据库 -- --数据库 ...

  7. mybatis学习(十一)——springmvc++spring+mybatis整合

    做任何一个项目都以一个需求,这里先定义一下需求:利用三大框架查询酒店列表. 一.搭建开发环境 1.创建一个web项目 我这里用的是 jdk1.8+tomact7.0 2.创建hotel表 CREATE ...

  8. JavaWeb_(SpringMVC框架)SpringMVC&Spring&MyBatis整合

    JavaWeb_(SpringMVC框架)测试SpringMVC&Spring&MyBatis三大整合 传送门 1.整合ssm 3大框架 过程 a)导包 -> spring_Ja ...

  9. SpringMVC Spring Mybatis整合篇

    1.创建WEB项目 创建项目:(ssmbuild)步骤略........ 给项目添加lib文件夹,用于存放jar包: 在WEB-INF目录下创建lib文件夹: 创建完成:运行项目时需要把jar导入到l ...

随机推荐

  1. Linux下常用程序的代理服务器(proxy)配置

    Linux下有很多程序都只有命令行接口,对于这类程序,它们通过代理服务器(proxy)访问网络的方式也不尽相同.在本文中Easwy总结了一些常用Linux程序配置代理服务器的方法. [ 通用代理服务器 ...

  2. poj 2709

    http://poj.org/problem?id=2709 题意:就是那个老师需要n瓶颜色的墨水,和1瓶颜色的灰色的墨水,但是灰色的墨水没得卖,只能由三种颜色相同的墨水混合而成,但是3瓶50ML的墨 ...

  3. tcp ip detatils

    tcp ip detatils 8.关于TCP协议,下面哪种说法是错误的()A.TCP关闭连接过程中,两端的socket都会经过TIME_WAIT状态B.对一个Established状态的TCP连接, ...

  4. 41.把数组排成最小的数[Sort array to smallest value]

    [题目] 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个.例如输入数组{3,32,  321},则输出这两个能排成的最小数字321323.请给出解决问题的算法,并证明该 ...

  5. codeforces B. Flag Day 解题报告

    题目链接:http://codeforces.com/problemset/problem/357/B 题目意思:输入n个人和m场舞蹈,给出每场舞蹈(只有3个人参与)中参与的舞者的编号,你需要为这些舞 ...

  6. jsp回车键登录代码

    $("body").keydown(function(event) { if (event.keyCode == "13") {// keyCode=13是回车 ...

  7. mybatis存入数据库后没有时分秒时间不全只有年月日

    对于Ibatis操作Date/Time/DateTime,总结如下: 将pojo的属性类型设置为java.sql.Date(或java.sql.Time, java.sql.Timestamp),此时 ...

  8. Maven使用笔记(七)Maven使用问题记录

    1.Java-maven异常-cannot be cast to javax.servlet.Filter 报错 tomcat 启动后先将tomcat/lib目录下的jar包全部读入内存,如果weba ...

  9. LeetCode之LRU Cache 最近最少使用算法 缓存设计

    设计并实现最近最久未使用(Least Recently Used)缓存. 题目描述: Design and implement a data structure for Least Recently ...

  10. 怎么判定一个mac地址是multicast还是unicast.

    MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置.MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique ide ...