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://
框架整合——SpringMVC與MyBatis整合(超詳細)
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