1. 程式人生 > >spring+springMvc+Mybatis簡單案例超詳細

spring+springMvc+Mybatis簡單案例超詳細

上一篇文章介紹了spring+springMvc+Mybatis的搭建,地址https://blog.csdn.net/niqinge/article/details/79280204

現在來仔細介紹一個簡單的案例。

在搭建完ssm框架之後,不懂搭建的朋友可以先看看我的上一篇文章地址https://blog.csdn.net/niqinge/article/details/79280204

1、先建立一些必要的資料夾,如下圖,其中base檔案是存放一些公共常用到的介面/類等,controller資料夾主要用來存放controller類,dao資料夾主要用來存放dao檔案(包括dao層的xml檔案的dao介面),model主要是用來存放一些實體類,service資料夾用來存放service層類,utils資料夾用來存放工具類;當然這些資料夾可以視情況而建。在webapp下新建一個testPages資料夾,用於存放我們的測試頁面檔案。


2、新建完資料夾後,我們開始新建檔案。

2.1、在剛才新建的dao資料夾中 新建一個名為TMgtUserDAO的介面和一個名為TMgtUserDAO.xml的檔案,兩個名稱要一樣哦TMgtUserDAO.java的內容如下:

package manage.dao;

import manage.model.TMgtUser;

import java.util.Map;

public interface TMgtUserDAO {

    public TMgtUser login(Map<String, Object> map);

}
package manage.utils;

/**
* Created by Novice on 2017/12/13. * * 靜態常量 */ public class ConstantSrting { public static String STATUS_SUCCESS = "S00001"; //成功狀態 public static String STATUS_FAIL = "S00002"; //失敗狀態 public static String STATUS_other = "S00003"; //其他狀態 }
TMgtUserDAO.xml的檔案的內容如下所示:當然BaseResultMap
<?
xml version="1.0" encoding="UTF-8"?> <!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="manage.dao.TMgtUserDAO"> <resultMap id="BaseResultMap" type="manage.model.TMgtUser"> <id column="USER_ID" jdbcType="VARCHAR" property="userId"/> <result column="USER_NAME" jdbcType="VARCHAR" property="userName"/> <result column="EN_NAME" jdbcType="VARCHAR" property="enName"/> <!--<result column="PASSWORD" jdbcType="VARCHAR" property="pw"/> 不查密碼--> <result column="SEX" jdbcType="VARCHAR" property="sex"/> <result column="BIRTHDAY" jdbcType="VARCHAR" property="birthday"/> <result column="EMAIL" jdbcType="VARCHAR" property="email"/> <result column="PHONE" jdbcType="VARCHAR" property="phone"/> <result column="ADDR" jdbcType="VARCHAR" property="addr"/> <result column="HOME_TOWN" jdbcType="VARCHAR" property="homeTown"/> <result column="CHANESE_ID" jdbcType="VARCHAR" property="chaneseId"/> <result column="DEPT_ID" jdbcType="VARCHAR" property="deptId"/> <result column="JOB_ID" jdbcType="VARCHAR" property="jobId"/> <result column="USER_LEVEL" jdbcType="VARCHAR" property="userLevel"/> <result column="STATUS" jdbcType="VARCHAR" property="status"/> <result column="IMG" jdbcType="VARCHAR" property="img"/> <result column="CREATOR" jdbcType="VARCHAR" property="creator"/> <result column="CREATE_TIME" jdbcType="VARCHAR" property="createTime"/> <result column="MENDER" jdbcType="VARCHAR" property="mender"/> <result column="MEND_TIME" jdbcType="VARCHAR" property="mendTime"/> <result column="REMARK" jdbcType="VARCHAR" property="remark"/> <result column="SEX_NAME" jdbcType="VARCHAR" property="sexName"/> <result column="DEPT_NAME" jdbcType="VARCHAR" property="deptName"/> <result column="JOB_NAME" jdbcType="VARCHAR" property="jobName"/> </resultMap> <sql id="Base_Column_List"> USER.USER_ID USER_ID, USER_NAME, /*PASSWORD, 不查密碼*/ EN_NAME, SEX, BIRTHDAY, EMAIL, PHONE, USER.ADDR ADDR, HOME_TOWN, CHANESE_ID, USER.DEPT_ID DEPT_ID, USER.JOB_ID JOB_ID, USER_LEVEL, USER.STATUS STATUS, IMG, USER.CREATOR, USER.CREATE_TIME, USER.MENDER, USER.MEND_TIME, USER.REMARK </sql> <sql id="order_Column_List"> CD.VALUE_NAME AS SEX_NAME, DEPT.DEPT_NAME AS DEPT_NAME, JOB.JOB_NAME AS JOB_NAME </sql> <!-- 登入 --> <select id="login" parameterType="java.util.Map" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from t_mgt_user USER where (USER_NAME = #{userName,jdbcType=VARCHAR} || EN_NAME = #{userName,jdbcType=VARCHAR} ) AND PASSWORD = #{pw,jdbcType=VARCHAR} </select> <!-- 根據主鍵查詢使用者資訊 --> <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/>, <include refid="order_Column_List"/> FROM t_mgt_user USER LEFT JOIN t_mgt_department DEPT ON DEPT.DEPT_ID = USER.DEPT_ID LEFT JOIN t_mgt_job JOB ON JOB.JOB_ID = USER.JOB_ID LEFT JOIN codedata CD ON CD.CODE_VALUE = USER.SEX where USER_ID = #{userId,jdbcType=VARCHAR} </select> <!-- 根據主鍵刪除使用者 --> <delete id="deleteByPrimaryKey" parameterType="java.lang.String"> delete from t_mgt_user where USER_ID = #{userId,jdbcType=VARCHAR} </delete> </mapper>
2.2、在剛才新建的model資料夾中新建一個類名為TMgtUser的類,內容如下所示:
package manage.model;

public class TMgtUser {
    private String userId;      //使用者編號
private String userName;    //使用者名稱稱
private String enName;      //英文名字
private String pw;          //密碼
private String sex;         //性別
private String birthday;    //出生日期
private String email;       //郵箱
private String phone;       //聯絡方式
private String addr;        //現住址
private String homeTown;        //家鄉
private String chaneseId;       //身份證號
private String deptId;          //部門編號
private String jobId;           //崗位編號
private String userLevel;       //使用者等級
private String status;          //狀態
private String img;             //圖片地址
private String creator;

    private String createTime;

    private String mender;

    private String mendTime;

    private String remark;

    /* 其它表字段  */
private String sexName;     //性別名稱
private String deptName;    //部門名稱
private String jobName;     //崗位名稱
public String getSexName() {
        return sexName;
    }

    public void setSexName(String sexName) {
        this.sexName = sexName;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public String getPw() {
        return pw;
    }

    public void setPw(String pw) {
        this.pw = pw;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId == null ? null : userId.trim();
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName == null ? null : userName.trim();
    }

    public String getEnName() {
        return enName;
    }

    public void setEnName(String enName) {
        this.enName = enName == null ? null : enName.trim();
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex == null ? null : sex.trim();
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday == null ? null : birthday.trim();
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone == null ? null : phone.trim();
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr == null ? null : addr.trim();
    }

    public String getHomeTown() {
        return homeTown;
    }

    public void setHomeTown(String homeTown) {
        this.homeTown = homeTown == null ? null : homeTown.trim();
    }

    public String getChaneseId() {
        return chaneseId;
    }

    public void setChaneseId(String chaneseId) {
        this.chaneseId = chaneseId == null ? null : chaneseId.trim();
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId == null ? null : deptId.trim();
    }

    public String getJobId() {
        return jobId;
    }

    public void setJobId(String jobId) {
        this.jobId = jobId == null ? null : jobId.trim();
    }

    public String getUserLevel() {
        return userLevel;
    }

    public void setUserLevel(String userLevel) {
        this.userLevel = userLevel == null ? null : userLevel.trim();
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status == null ? null : status.trim();
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img == null ? null : img.trim();
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator == null ? null : creator.trim();
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime == null ? null : createTime.trim();
    }

    public String getMender() {
        return mender;
    }

    public void setMender(String mender) {
        this.mender = mender == null ? null : mender.trim();
    }

    public String getMendTime() {
        return mendTime;
    }

    public void setMendTime(String mendTime) {
        this.mendTime = mendTime == null ? null : mendTime.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }
}
2.3、在service資料夾中新建一個serviceInterface資料夾,在serviceInterface資料夾裡新建一個介面名為
IUserService,這個介面的內容如下所示:
package manage.service.serviceInterface;

import manage.model.TMgtUser;

/**
 * Created by Novice on 2017/12/12.
 */
public interface IUserService {

    public TMgtUser login (String userName, String pw) throws Exception;

}
新建完service層的介面以後,在service資料夾中新建一個名為UserService的類,UserService類實現剛才你新建的

IUserService介面,UserService內容如下所示:

package manage.service;

import manage.dao.TMgtUserDAO;
import manage.model.TMgtUser;
import manage.service.serviceInterface.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Novice on 2017/12/12.
 */
@Service
public class UserService implements IUserService {

    @Autowired
private TMgtUserDAO tMgtUserMapper;

    @Override
public TMgtUser login(String userName, String pw) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put( "userName", userName);
        map.put( "pw", pw );
        return tMgtUserMapper.login( map );
    }
}

2.4、在剛才新建的controller檔案中新建一個名為UserController的類,內容如下所示:

package manage.controller;

import manage.model.TMgtUser;
import manage.utils.resultUtils.BaseResult;
import manage.service.serviceInterface.IUserService;
import manage.utils.ConstantSrting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by Novice on 2017/12/12.
 */
@Controller
@RequestMapping(value = "/manage/user/")
public class UserController {
    @Autowired
private IUserService userService;

    private static Logger logger = LoggerFactory.getLogger(UserController.class);

    /**
     * 登入
*
     * @param userName 使用者名稱
* @param pw       密碼
* @return
*/
@ResponseBody
    @RequestMapping(value = "login")
    public BaseResult<TMgtUser> login(String userName, String pw) {

        BaseResult<TMgtUser> br = new BaseResult<TMgtUser>();
        if (userName == null || userName.length() == 0 || pw == null || pw.length() == 0) {
            logger.error("使用者名稱和密碼不能為空!");
            br.setStatus(ConstantSrting.STATUS_FAIL);
            br.setMessage("使用者名稱和密碼不能為空!");
            return br;
        }
        if( userName.length() < 3 || userName.length() > 16 ){
            br.setStatus(ConstantSrting.STATUS_FAIL);
            br.setMessage("使用者名稱只能包含中文、英文字元、數字和下橫線,且長度在4~16字元之間!");
            return br;
        }

        if( userName.length() < 6 || userName.length() > 16 ){
            br.setStatus(ConstantSrting.STATUS_FAIL);
            br.setMessage("密碼只能包含英文字元和數字,且長度在6~16字元之間!");
            return br;
        }

        try {
            TMgtUser user = userService.login(userName, pw);
            if (user == null) {
                br.setStatus(ConstantSrting.STATUS_FAIL);
                br.setMessage("使用者名稱或密碼不正確!");
                return br;
            }
            br.setEntity(user);
            br.setStatus(ConstantSrting.STATUS_SUCCESS);
        } catch (Exception e) {
            logger.error("登入時發生異常:" + e);
            e.printStackTrace();
            br.setStatus(ConstantSrting.STATUS_FAIL);
            br.setMessage("登入時發生異常!");
        }
        return br;
    }

}

3、新建完這些類後你可能會發現一些錯誤,可能是因為有些工具類找不到導致的,下面我們來新建工具類。

在剛才新建的utils資料夾中新建名為resultUtils的資料夾,然後再這個剛建的資料夾中新建一個名為BaseResult的類,其內容如下所示:

package manage.utils.resultUtils;

import java.util.List;

/**
 * Created by Novice on 2017/12/13.
 *
 * 返回結果類
*
 * 包含一個List<T> * 狀態status
 * 某個類物件 T
 *
 */
public class BaseResult<T> {


    private String status;       //處理結果狀態
private String message;      //返回資訊
private T entity;            //返回實體物件
private List<T> list;        //返回結果集
public BaseResult(String status, String message) {
        this.status = status;
        this.message = message;
    }

    public BaseResult(String status, String message, T entity, List<T> list) {
        this.status = status;
        this.message = message;
        this.entity = entity;
        
            
           

相關推薦

spring+springMvc+Mybatis簡單案例詳細

上一篇文章介紹了spring+springMvc+Mybatis的搭建,地址https://blog.csdn.net/niqinge/article/details/79280204現在來仔細介紹一個簡單的案例。在搭建完ssm框架之後,不懂搭建的朋友可以先看看我的上一篇文章

SSM(Spring+SpringMVC+Mybatis)框架搭建詳細教程【附源代碼Demo】

oid rep images end 訪問靜態文件 into *** 寫到 where http://www.cnblogs.com/qixiaoyizhan/p/7751732.html 【前言】   應某網絡友人邀約,需要一個SSM框架的Demo作為基礎學習資料,於

SSM(Spring+SpringMVC+Mybatis)框架整合Demo+詳細講解

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

spring+springMVC+myBatis——小案例

通過SSM框架簡單的實現一個對學生類的增刪改查 一、主要步驟 1.建立名為showstudents的Web專案,匯入相應的jar包 2.在包下建立實體類Student 3.dao層建立StudentDAO,建立StudentDAO.xml 4.配置檔案log4j.prope

spring+springMVC+mybatis簡單整合

tor use prefix contex 初始化 jsp ref 三大框架整合 別名 spring+springMVC+mybatis簡單整合, springMVC框架是spring的子項目,所以框架的整合方式為,spring+Mybatis或springMVC+myb

SSM(Spring+SpringMVC+Mybatis)框架詳細搭建指南(利用Maven構建專案)

其實這是我實習生涯開始後的第一個任務,但是當時太忙了一直沒有時間記錄,就按照教程走了。剛好現在實習結束了有些時間,把整個搭建的過程還有一些坑記錄下來還是很有必要的。 DEMO https://github.com/mgsky1/aboutSpring/tree/ma

SSM:spring+springmvc+mybatis框架中的XML配置文件功能詳細解釋

con initial -m and 整理 .get 尺寸 internal 頁面 SSM:spring+springmvc+mybatis框架中的XML配置文件功能詳細解釋 2016-04-14 23:40 13030人閱讀 評論(2) 收藏 舉報

spring+springmvc+mybatis詳細運轉流程

har pop color bits overflow one tom common jdbc spring+springmvc+mybatis詳細運轉流程 2016-04-14 23:38 1892人閱讀 評論(0) 收藏 舉報 分類: SSM

SSM框架Spring+SpringMVC+MyBatis——詳細整合教程

servle aps files framework l數據庫 建立 blank onf pin 摘要: 包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的... 摘要:

SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis)轉載(http://blog.csdn.net/zhshulin/article/details/23912615)

rop 用戶名 file .org 我們 XML model lib targe 這兩天需要用到MyBatis的代碼自動生成的功能,由於MyBatis屬於一種半自動的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由於手寫映射文件很容易出錯,所以可利用MyBa

SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis

r.js lai action body south 日誌輸出 aop pes 完整 使用SSM(Spring、SpringMVC和Mybatis)已經有三個多月了,項目在技術上已經沒有什麽難點了,基於現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地方。之前沒有

SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis

json轉換 需要 acc log4 err ppi junit測試 日誌 enc 使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已經有三個多月了,項目在技術上已經沒有什麽難點了,基於現有的技術就可以實現想要的功能,當然肯定有很多可以改進的地

spring+springMvc+mybatis框架簡單實例

username span tty 添加 localhost name cee rop lns web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://

框架整合——SpringMVCMyBatis整合(詳細

SpringMVC與MyBatis是我們現在最流行的開發框架組合之一,這裡我來整理一下框架的整合搭建過程 前言 使用IDE:IntelliJ IDEA JDK:1.8 開啟IDEA,新建maven工程 第一步:開啟IDEA,點選Create New Pro

uploadify在火狐下上傳不了的解決方案,java版(Spring+SpringMVC+MyBatis詳細解決方案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

SSM:spring+springmvc+mybatis框架中的XML配置檔案功能詳細解釋

SSM:spring+springmvc+mybatis框架中的XML配置檔案功能詳細解釋 這幾天一直在整合SSM框架,雖然網上有很多已經整合好的,但是對於裡面的配置檔案並沒有進行過多的說明,很多人知其然不知其所以然,經過幾天的搜尋和整理,今天總算對其中的XML配置檔案有了一定的瞭解,所以拿

maven中spring+springmvc+mybatis整合詳細配置

首先配置mybatis,可以參考這篇部落格的前期基礎配置使用。 https://blog.csdn.net/qq_41520636/article/details/84146699 下面配置結構:  需要的jar,在pom.xml中引入 <!--統一j

新手入門java中Spring+SpringMVC+MyBatis框架整合詳細步驟

Springmvc+spring+mybatis環境搭建 注意:這裡我是用Spring的famerwork的參考文件聯合搭建 搭建spring環境 Spring的基本包+SpringMVC基本+MyBatis基本+mybatis-spring整合,增加tx包,aop包,c

SSM框架整合Maven工程整合Spring+Springmvc+Mybatis(詳細教程,附程式碼)

一、基本概念 1、Spring Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中闡述的部分

spring+springmvc+mybatis實現簡單使用者註冊和登入

一.建立Dynamic Web Project 專案結構: mysql建立: 二.程式碼 首先配置web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="htt