喜歡的朋友可以關註下,粉絲也缺。 自從Spring推出Boot,Cloud系列之後,一度成為熱門的框架,現在大部分的招聘要求都要有相關的開發經驗,藉此我在這裡就給大家分享一下如何玩轉SpringBoot跟Mybatis。 這裡我給大家提供我創建的demo下載地址 https://download.c ...
喜歡的朋友可以關註下,粉絲也缺。
自從Spring推出Boot,Cloud系列之後,一度成為熱門的框架,現在大部分的招聘要求都要有相關的開發經驗,藉此我在這裡就給大家分享一下如何玩轉SpringBoot跟Mybatis。
這裡我給大家提供我創建的demo下載地址
https://download.csdn.net/download/dsn727455218/10539629
在這裡就不跟大家說廢話,我們實際操作一番。
使用工具:
eclipse 版本隨意
jdk 環境
mysql 資料庫
這個工具的安裝使用我就不給大家介紹,相信你們都能完成。
SpringBoot項目創建的方式:
1.訪問 http://start.spring.io/
這個是最為簡單的 輸入項目名,包名,以及項目類型後,版本現在基本都是2.0+,下載導入到開發工具即可
2.Spring Boot CLI cmd命令操作
下載安裝配置環境我就不多做介紹,很簡單的操作這不是我介紹的重點
3.利用eclipse來創建SpringBoot 這才是我介紹的重點
首先我們需要在eclipse上面集成STS,至於這是什麼,自己可以去Sping的官網看介紹。
eclipse安裝:
Help -> Eclipse Marketplace…
Search或選擇“Popular”標簽,選擇Spring Tool Suite (STS) for Eclipse插件,安裝
網路不好的可以下載有點慢,慢慢等安裝。
new project ,選擇spring -> spring starter project
按自己的信息填寫,我這裡項目名叫demo1
選擇版本和組件
我這裡選了2.0.3版本,現在基本都是2.0+的版本,選了mysql和web,mybatis,因為是web項目,都會選擇web這個選項,其他的可以按自己需要選擇,點擊 Finish ,就會有一個新項目,不過需要等待幾分鐘,sts工具會生成spring boot目錄的結構及文件
這就是我們最終的結構。
這裡需要提示一點如果沒有dependencies包,檢查一下項目目錄下.classpath 裡面是否有
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
沒有就加上,重啟eclipse即可,其他原因我就不做多的說明,相信你們能夠發現。
接下來我們就來創建包
controller :控制層
dao:數據介面
service:實現類
mapper:這裡是放dao層的xml文件 也就是mybatis的
entity:實體類
這幾個包是做什麼的你們應該能開明白
就是這個樣子的
pom.xml 配置文件
這裡我只是配置一個基礎的,如果需要更加詳細的配置文件可以參考我的另一篇文章
https://blog.csdn.net/dsn727455218/article/details/81028192
接下來我們就寫寫代碼try-try
首先我們需要先創建一個userinfo表 欄位(id,username,userpass,name)
對應的實體類UserInfo
/** * @author dsn * * @version 創建時間:2018年7月5日 上午11:30:00 */ package com.bootdemo.entity; /** * @author dsn * @version 創建時間:2018年7月5日 上午11:30:00 */ public class UserInfo { /** * @return the id */ public int getId() { return id; } /** * @param id * the id to set */ public void setId(int id) { this.id = id; } /** * @return the username */ public String getUsername() { return username; } /** * @param username * the username to set */ public void setUsername(String username) { this.username = username; } /** * @return the userpass */ public String getUserpass() { return userpass; } /** * @param userpass * the userpass to set */ public void setUserpass(String userpass) { this.userpass = userpass; } /** * @return the name */ public String getName() { return name; } /** * @param name * the name to set */ public void setName(String name) { this.name = name; } private int id; private String username; private String userpass; private String name; }
dao層介面UserInfoMapper 這裡我是繼承了BaseMapper父類,一些方法是可以共用的
/** * @author dsn * * @version 創建時間:2018年7月5日 上午11:35:10 */ package com.bootdemo.dao; import com.bootdemo.entity.UserInfo; /** * @author dsn * @version 創建時間:2018年7月5日 上午11:35:10 */ public interface UserInfoMapper extends BaseMapper<UserInfo> { //添加單個對象 // public int insert(User entity); }
BaseMapper
package com.bootdemo.dao; import java.util.List; import org.apache.ibatis.annotations.Param; public interface BaseMapper<T> { //添加單個對象 public int insert(T entity); //修改單個對象 public int update(T entity); //刪除單個對象 public int delete(T entity); public int deletebyname(T entity); //查詢單個對象 public T select(T entity); //查詢多個對象 public List<T> query(); //根據分頁查詢多個對象 public List<T> selectbypage(@Param(value = "pageSize") int pageSize, @Param(value = "currentPage") int currentPage); //根據搜索條件查詢 public List<T> searchbytj(@Param(value = "st") String st, @Param(value = "et") String et, @Param(value = "con") String con); //查詢總條數 public int selectCount(); }
service層UserInfoService 同樣的我繼承了BaseService
/** * @author dsn * * @version 創建時間:2018年7月5日 上午11:35:36 */ package com.bootdemo.service; import com.bootdemo.entity.UserInfo; /** * @author dsn * @version 創建時間:2018年7月5日 上午11:35:36 */ public interface UserInfoService extends BaseService<UserInfo> { }
BaseService
package com.bootdemo.service; import java.util.List; import org.apache.ibatis.annotations.Param; public interface BaseService<T> { // 添加單個對象 public int insert(T entity) throws Exception; // 修改單個對象 public int update(T entity) throws Exception; // 刪除單個對象 public int delete(T entity) throws Exception; public int deletebyname(T entity); // 查詢單個對象 public T select(T entity); //查詢多個對象 public List<T> query(); //分頁查詢多個對象 public List<T> selectbypage(@Param(value = "pageSize") int pageSize, @Param(value = "currentPage") int currentPage); //根據搜索條件查詢 public List<T> searchbytj(@Param(value = "st") String st, @Param(value = "et") String et, @Param(value = "con") String con); //查詢總條�? public int selectCount(); }
mapper文件UserInfoMapper.xml 這是mybatis的sql
<?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.bootdemo.dao.UserInfoMapper" > <resultMap id="userResultMap" type="com.bootdemo.entity.UserInfo" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> <result column="username" property="username" jdbcType="VARCHAR" /> <result column="userpass" property="userpass" jdbcType="VARCHAR" /> </resultMap> <select id="selectList" parameterType="UserInfo" resultMap="userResultMap"> select id,username,userpass,name from userinfo <where> disable='1' <if test="key!=null"> and ( username = #{key,jdbcType=VARCHAR} or name = #{key,jdbcType=VARCHAR} ) </if> </where> </select> <insert id="insert" parameterType="UserInfo" useGeneratedKeys="true" keyProperty="id"> insert into userinfo(name,username,userpass) values(#{name},#{username},#{userpass}) </insert> </mapper>
controller層UserInfoController
/** * @author dsn * * @version 創建時間:2018年7月12日 下午2:04:58 */ package com.bootdemo.controller; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.bootdemo.entity.UserInfo; import com.bootdemo.service.UserInfoService; /** * @author dsn * @version 創建時間:2018年7月12日 下午2:04:58 */ @RestController @RequestMapping("user") public class UserInfoController { @Resource public UserInfoService userinfoService; @RequestMapping("/add.do") @ResponseBody public String addUser(UserInfo user, String msg) { System.out.println(user.getUsername()); try { int insert = userinfoService.insert(user); if (insert == 1) { msg = "插入成功"; } else { msg = "插入成功"; } } catch (Exception e) { e.printStackTrace(); } return msg; } }
需要註意的是我們需要在DemoApplication裡面添加
掃描映射文件不然啟動項目會報錯的
同樣也可以再mapper介面類裡面加@Mapper註解,兩者皆可
我們只需要運行DemoApplication文件即可。
成功界面,我們會看到Spring大大的logo
平常我們web項目都是在tomcat等容器裡面啟動,這裡為什麼不需要呢,是SpringBoot已經集成了tomcat,所以不需要我們在配置了。
如果有的碼友需要看註解的源碼那麼打開dependencies
一些jdbc等等常用的配置文件信息都可以查看的。
這裡我給大家提供我創建的demo下載地址
https://download.csdn.net/download/dsn727455218/10539629
如有需要可以加我Q群【308742428】大家一起討論技術。
後面會不定時為大家更新文章,敬請期待。