2.Spring Boot整合Mybatis進(jìn)行CRUD

  1. 創(chuàng)建一個新的模塊
    注意模塊選擇羹铅,并選擇jdk版本至少為8


    模塊選擇.png
填元數(shù)據(jù).png

此處可以添加自身所需依賴


添加依賴.png
完成構(gòu)建.png
  1. 準(zhǔn)備工作
    添加所需依賴
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
            <optional>true</optional>
        </dependency>
    </dependencies>

在application.properties中添加配置,其中中username和password為自身數(shù)據(jù)庫的用戶名和密碼(以my sql為例)

## 數(shù)據(jù)源配置
spring.datasource.url=jdbc:mysql://localhost:3306/db_spring?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=**
spring.datasource.password=**
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#指定實(shí)體類映射的包
mybatis.type-aliases-package=com.springboot.mybatis.entity

構(gòu)建包結(jié)構(gòu)


包的結(jié)構(gòu).png
  1. 進(jìn)行編碼
  • 編寫entity實(shí)體類,其中屬性對應(yīng)數(shù)據(jù)庫中表的數(shù)據(jù)
@Data
public class User {
    private Long userId;
    private String mobile;
    private String password;
    private String username;
    private String avatar;
}
  • 在Mapper中編寫需要使用到的sql語句愉昆,在結(jié)果集中column為數(shù)據(jù)庫屬性名职员,property為idea中屬性名,還有就是sql語句在最后空一格為了方便拼接
public interface UserMapper {
    @Results({@Result(column = "user_id",property = "userId"),
            @Result(column = "mobile",property = "mobile"),
            @Result(column = "password",property = "password"),
            @Result(column = "username",property = "username"),
            @Result(column = "avatar",property = "avatar")
    })
    @Select("SELECT * FROM t_sys_user ")
    List<User> selectAll();

    @Results({@Result(column = "user_id",property = "userId"),
            @Result(column = "mobile",property = "mobile"),
            @Result(column = "password",property = "password"),
            @Result(column = "username",property = "username"),
            @Result(column = "avatar",property = "avatar")
    })
    @Select("SELECT * FROM t_sys_user WHERE user_id = #{userId} ")
    User getOne(Long userId);

    @Delete("DELETE FROM t_sys_user WHERE user_id =#{userId} ")
    void delete(Long userId);

    @Insert("INSERT INTO t_sys_user(mobile,password,username,avatar)"+
            "VALUES(#{mobile},#{password},#{username},#{avatar}) ")
    void insert(User user);

    @Update("UPDATE t_sys_user SET password=#{password},avatar=#{avatar} WHERE user_id=#{userId} ")
    void updata(User user);
}
  • service中寫個實(shí)現(xiàn)mapper中方法的接口
public interface UserService {
    List<User> selectAll();

    User getOne(long userId);

    void delete(long userId);

    User  insert(User user);

    void updata(User user);
}
  • 在serviceimpl中實(shí)現(xiàn)service中接口的方法
@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;

    @Override
    public List<User> selectAll() {
        return userMapper.selectAll();
    }

    @Override
    public User getOne(long userId) {
        return userMapper.getOne(userId);
    }

    @Override
    public void delete(long userId) {
          userMapper.delete(userId);
    }

    @Override
    public User insert(User user) {
        userMapper.insert(user);
        return user;
    }

    @Override
    public void updata(User user) {
        userMapper.updata(user);
    }
}
  • 對serviceImpl中的方法進(jìn)行測試跛溉,以便排查錯誤

  • 在controller中寫入RESTful請求

@RestController
@RequestMapping(value = "/api")
public class UserController {
    @Resource
    private UserService userService;

    @RequestMapping(value = "/users",method = RequestMethod.GET)
    public List<User> selectAll(){
        return userService.selectAll();
    }

    @RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
    public User getOne(@PathVariable("id") long id){
        return userService.getOne(id);
    }

    @RequestMapping(value = "/user/{id}",method = RequestMethod.DELETE)
    public void deleteUser(@PathVariable("id") long id){
        userService.delete(id);
    }

    @RequestMapping(value = "/user",method = RequestMethod.POST)
    public User addUser(@RequestBody User user){
        return userService.insert(user);
    }

    @RequestMapping(value = "/user",method = RequestMethod.PUT)
    public void update(@RequestBody User user){
        userService.updata(user);
    }

}
  • 打開啟動類焊切,記得加上注釋,不然可能找不到mapper芳室,最后運(yùn)行
@SpringBootApplication
@MapperScan("com.springboot.mybatis.mapper")
public class SpringBootMybatisApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootMybatisApplication.class, args);
    }

}
  • 出現(xiàn)以下結(jié)果說明運(yùn)行成功


    啟動.png
  1. 使用postman驗(yàn)證
    其中有幾點(diǎn)要注意
  • 要注意動作如get,put芽死,delete卖毁,post等的區(qū)別
  • 結(jié)果為200即為成功
  • 使用put和post時要注意一下幾處


    post.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌株旷,老刑警劉巖齿尽,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卡骂,死亡現(xiàn)場離奇詭異唯笙,居然都是意外死亡七嫌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門腿倚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了肾砂?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵砖瞧,是天一觀的道長。 經(jīng)常有香客問我,道長啃洋,這世上最難降的妖魔是什么逮壁? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上亚斋,老公的妹妹穿的比我還像新娘。我一直安慰自己栏饮,他們只是感情好伺通,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般蜓耻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上籍琳,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天眉踱,我揣著相機(jī)與錄音霜威,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛模聋,可吹牛的內(nèi)容都是我干的链方。 我是一名探鬼主播暂题,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼取试,長吁一口氣:“原來是場噩夢啊……” “哼萨赁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起精置,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤计寇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脂倦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體番宁,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年赖阻,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝶押。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡火欧,死狀恐怖棋电,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苇侵,我是刑警寧澤赶盔,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站榆浓,受9級特大地震影響于未,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陡鹃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一烘浦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萍鲸,春花似錦闷叉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蹬叭,卻和暖如春藕咏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秽五。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工孽查, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坦喘。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓盲再,卻偏偏與公主長得像西设,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子答朋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容