SpringBoot和Mybatis是啥請自行百度,做者這裏也是花了幾天時間入門了這個框架用來完成任務,而且也算符合要求的完成了任務,期間也各類百度可是沒找到本身想要的那種簡單易懂的教程,因此踩了不少坑,寫這個博客的目的就是爲了讓你們少踩一點坑,開始。html
點開這個網站,建立一個Springboot項目,以下圖,這裏用的是2.1.5,學技術嘛,就是要學新的。
選擇依賴,點擊左下角的Dependencies前端
Web
咱們此次開發的是web應用因此選擇webThymeleaf
一款模板引擎,可以比較方便的展示後臺傳來的數據MySQL
咱們此次使用Mysql數據庫JDBC
Java 數據庫鏈接 Java Database Connectivity,簡稱JDBCMyBatis
請看第一段
最後點擊左下角的Generate Project,將會開始下載一個以你項目名稱開頭的zip文件,下載完成後解壓到你的工做目錄。java
這裏使用的是IDEA,別的啥也行好比eclipse,這裏只講解IDEA的操做,安裝破解IDEA百度一大堆,安裝好以後打開IDEA(發現IDEA有個問題,有的時候自動import包好用,有的時候很差用,坑!),而後選擇左上角的File->Open,找到你剛剛解壓的項目文件裏的pom.xml點擊ok以下圖
mysql
增長修改目錄結構爲下圖
web
這裏咱們就編寫一我的員信息的增刪改查spring
打開mysql數據庫建立一個叫test的數據庫以後建立person表,這裏使用的是Navicat百度有破解版,會命令用命令行也行,以下圖,記得設置主鍵自增,而後隨便加幾個數據以便以後查詢。
sql
路徑:/resources/application.yml數據庫
server: port: 8080 spring: datasource: name: url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC username: root password: root mybatis: mapper-locations: classpath:mapper/*.xml
路徑/model/Person.javaapache
package com.ljsh.test.model; public class Person { /* {id} 自增主鍵 {name} 人員姓名 {mobile} 人員電話 */ private int id; private String name; private String mobile; // 右鍵 Generate -> Setter and Getter -> Shift全選 -> ok 生成以下代碼 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } // 右鍵 Generate -> toString() -> 全選 -> ok 生成以下代碼 @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", mobile='" + mobile + '\'' + '}'; } }
路徑:/dao/PersonDao.javaspringboot
package com.ljsh.test.dao; import com.ljsh.test.model.Person; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper public interface PersonDao { /* 查全部 return List<Person> */ List<Person> getAll(); /* 根據ID查詢 {id} 要查詢人員的 id */ Person getPersonByID(int id); /* 刪除 {id} 要刪除人員的 id */ void delete(int id); /* 更新 {p} 要更新的Person實例 */ void update(Person p); /* 增長 {p} 要新增的Person實例 */ void newp(Person p); }
路徑:/mapper/PersonDao.xml
<?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" > <!-- 這裏填寫對應的Dao文件所在的路徑 --> <mapper namespace="com.ljsh.test.dao.PersonDao" > <!-- 填寫數據庫裏實例Person對應的表的表名 --> <!-- 這裏是做爲一個變量使用 --> <sql id="table">person</sql> <!-- id屬性填寫Dao文件裏的函數名稱 xxType是參數或是結果的類型根據狀況填寫 --> <!-- 查詢全部 --> <select id="getAll" resultType="com.ljsh.test.model.Person"> SELECT * FROM <include refid="table" /> </select> <!-- 根據id查詢 --> <select id="getPersonById" resultType="com.ljsh.test.model.Person"> SELECT * FROM <include refid="table"/> WHERE id = #{id} </select> <!-- 增 --> <insert id="newp" parameterType="com.ljsh.test.model.Person"> INSERT INTO <include refid="table"/> (name,phone) VALUES (#{name},#{phone}) </insert> <!-- 改 --> <update id="update" parameterType="com.ljsh.test.model.Person"> UPDATE <include refid="table"/> SET <!--<if test="name != null">name = #{name}</if>--> name = #{name},phone = #{phone},status = #{status} WHERE id = #{id} </update> <!-- 刪 --> <delete id="delete" parameterType="com.ljsh.test.model.Person"> DELETE FROM <include refid="table"/> WHERE id = #{id} </delete> </mapper>
路徑:/service/PersonService.java
package com.ljsh.test.service; import com.ljsh.test.dao.PersonDao; import com.ljsh.test.model.Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PersonService { @Autowired PersonDao personDao; /* Service層介於controller和dao之間做爲服務層進行一些邏輯處理, 這裏邏輯太簡單因此知識單純調用dao因此不作註釋 */ public List<Person> getAll(){ return personDao.getAll(); } public Person getPersonByID(int id){ return personDao.getPersonByID(id); } public void delete(int id){ personDao.delete(id); } public void update(Person p){ personDao.update(p); } public void newp(Person p){ personDao.newp(p); } }
路徑:/controller/PersonController.java
package com.ljsh.test.controller; import com.ljsh.test.model.Person; import com.ljsh.test.service.PersonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import java.util.List; @Controller public class PersonController { @Autowired PersonService personService; // 設置訪問路由值爲路徑 @RequestMapping("/") public ModelAndView index(){ // 顧名思義 實體和數據 同時返回頁面模板和數據 ModelAndView mav = new ModelAndView("index"); List<Person> list = personService.getAll(); mav.addObject("list",list); return mav; } }
路徑:/templates/index.html
<!DOCTYPE html> <html lang="en"> <!-- --> <!-- 使用thymeleaf需引入 --> <html xmlns:th="http://www.thymeleaf.org"> <head> </head> <body> <div id="tableP"> <table> <caption>人員信息</caption> <tr> <th>Name</th> <th>Phone</th> </tr> <!-- 經過th命令使用一些操做 --> <!-- 經過${} 使用變量 --> <tr th:each="item: ${list}"> <td th:text="${{item.name}}">尚未任何人員信息哦</td> <td th:text="${{item.mobile}}">你是否是想獨吞獎品</td> </tr> </table> </div> </div> </body> </html>
要是沒有這個能夠右側選擇TestApplication右鍵Run,結果圖以下
熄燈睡覺了,寫的有點慢,刪改查還沒來及寫,若是需求留言,我會繼續更新。