1. 程式人生 > 實用技巧 >Spring Boot學習02

Spring Boot學習02

本文在上一篇文章的基礎上,繼續完成Mybatis的“增、刪、改”的操作。

修改3.3的Mybatis對映檔案,新增三個新的sql語句:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 3 <!--        namespace 所對應的是一個介面的全限定名-->
 4 <mapper namespace
="com.example.demo.mapper.IUserMapper"> 5 <select id="getUserById" resultType="com.example.demo.model.Users"> 6 SELECT id,last_name,gender,email FROM tbl_employee WHERE id = #{id} 7 </select> 8 <update id="updateUser"> 9 UPDATE tbl_employee set last_name=#{last_name},gender=#{gender},email=#{email}
10 where id=#{id} 11 </update> 12 13 <delete id="delUser"> 14 DELETE from tbl_employee where id=#{id} 15 </delete> 16 17 <insert id="addUser"> 18 INSERT into tbl_employee values(#{id},#{last_name},#{gender},#{email}) 19 </insert
> 20 </mapper>

修改3.4節的介面檔案,增加三個方法:

 1 package com.example.demo.mapper;
 2 
 3 import com.example.demo.model.Users;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component
 7 public interface IUserMapper {
 8     //查詢
 9     public Users getUserById(Integer id);
10 
11     //更新
12     public boolean updateUser(Users user);
13 
14     //刪除
15     public boolean delUser(Integer id);
16 
17     //新增
18     public boolean addUser(Users user);
19 }

修改第4節的Mybatis介面檔案,增加45、75、105行的三個方法,對應對映檔案中的更新、刪除以及新增操作:

  1 package com.example.demo.service;
  2 import com.example.demo.mapper.IUserMapper;
  3 import org.apache.ibatis.io.Resources;
  4 import org.apache.ibatis.session.SqlSession;
  5 import org.apache.ibatis.session.SqlSessionFactory;
  6 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  7 import org.springframework.stereotype.Service;
  8 import java.io.IOException;
  9 import java.io.InputStream;
 10 @Service
 11 public class Users {
 12 
 13     public com.example.demo.model.Users getUserById(Integer id) throws IOException {
 14 
 15         // 讀取mybatis-config.xml檔案
 16         InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
 17 
 18         // 初始化mybatis,建立SqlSessionFactory類的例項
 19         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 20 
 21         // 建立Session例項
 22         SqlSession session = sqlSessionFactory.openSession();
 23 
 24         // 操作資料庫方法一:獲得xml對映檔案中定義的操作語句
 25         // com.example.demo.model.Users s = session.selectOne("com.example.demo.mapper.IUserMapper.getUserById", 1);
 26         // 列印Student物件
 27         // System.out.println(s);
 28 
 29         // 操作資料庫方法二:獲得mapper介面的代理物件
 30         IUserMapper sm = session.getMapper(IUserMapper.class);
 31         // 直接呼叫介面的方法,查詢id為1的Student資料
 32         com.example.demo.model.Users s2 = sm.getUserById(1);
 33         // 列印Peson物件
 34         // System.out.println(s2);
 35 
 36         // 提交事務
 37         session.commit();
 38         // 關閉Session
 39         session.close();
 40 
 41         return s2;
 42         //return userMapper.getUserById(id);
 43     }
 44 
 45     public boolean updateUser(com.example.demo.model.Users user) throws IOException {
 46         // 讀取mybatis-config.xml檔案
 47         InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
 48 
 49         // 初始化mybatis,建立SqlSessionFactory類的例項
 50         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 51 
 52         // 建立Session例項
 53         SqlSession session = sqlSessionFactory.openSession();
 54 
 55         // 操作資料庫方法一:獲得xml對映檔案中定義的操作語句
 56         // com.example.demo.model.Users s = session.selectOne("com.example.demo.mapper.IUserMapper.getUserById", 1);
 57         // 列印Student物件
 58         // System.out.println(s);
 59 
 60         // 操作資料庫方法二:獲得mapper介面的代理物件
 61         IUserMapper sm = session.getMapper(IUserMapper.class);
 62         // 直接呼叫介面的方法,查詢id為1的Student資料
 63         boolean b = sm.updateUser(user);
 64         // 列印Peson物件
 65         // System.out.println(s2);
 66 
 67         // 提交事務
 68         session.commit();
 69         // 關閉Session
 70         session.close();
 71 
 72         return b;
 73     }
 74 
 75     public boolean delUser(Integer id) throws IOException {
 76         // 讀取mybatis-config.xml檔案
 77         InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
 78 
 79         // 初始化mybatis,建立SqlSessionFactory類的例項
 80         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 81 
 82         // 建立Session例項
 83         SqlSession session = sqlSessionFactory.openSession();
 84 
 85         // 操作資料庫方法一:獲得xml對映檔案中定義的操作語句
 86         // com.example.demo.model.Users s = session.selectOne("com.example.demo.mapper.IUserMapper.getUserById", 1);
 87         // 列印Student物件
 88         // System.out.println(s);
 89 
 90         // 操作資料庫方法二:獲得mapper介面的代理物件
 91         IUserMapper sm = session.getMapper(IUserMapper.class);
 92         // 直接呼叫介面的方法,查詢id為1的Student資料
 93         boolean b = sm.delUser(1);
 94         // 列印Peson物件
 95         // System.out.println(s2);
 96 
 97         // 提交事務
 98         session.commit();
 99         // 關閉Session
100         session.close();
101 
102         return b;
103     }
104 
105     public boolean addUser(com.example.demo.model.Users user) throws IOException {
106         // 讀取mybatis-config.xml檔案
107         InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
108 
109         // 初始化mybatis,建立SqlSessionFactory類的例項
110         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
111 
112         // 建立Session例項
113         SqlSession session = sqlSessionFactory.openSession();
114 
115         // 操作資料庫方法一:獲得xml對映檔案中定義的操作語句
116         // com.example.demo.model.Users s = session.selectOne("com.example.demo.mapper.IUserMapper.getUserById", 1);
117         // 列印Student物件
118         // System.out.println(s);
119 
120         // 操作資料庫方法二:獲得mapper介面的代理物件
121         IUserMapper sm = session.getMapper(IUserMapper.class);
122         // 直接呼叫介面的方法,查詢id為1的Student資料
123         boolean b = sm.addUser(user);
124         // 列印Peson物件
125         // System.out.println(s2);
126 
127         // 提交事務
128         session.commit();
129         // 關閉Session
130         session.close();
131 
132         return b;
133     }
134 }

修改第5節的Controller中的內容,增加三個Action:

 1 package com.example.demo.controller;
 2 
 3 import com.example.demo.model.Users;
 4 import org.springframework.beans.factory.annotation.Autowired;
 5 import org.springframework.web.bind.annotation.PathVariable;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RestController;
 8 
 9 import java.io.IOException;
10 
11 @RestController
12 public class UserController {
13 
14     @Autowired
15     com.example.demo.service.Users userService;
16 
17     @RequestMapping("/user/{id}")
18     public String getUserById(@PathVariable Integer id) throws IOException {
19 
20         com.example.demo.model.Users users = userService.getUserById(id);
21         return users.getLast_name();
22     }
23 
24     @RequestMapping("/updateuser")
25     public String updateUser() throws IOException {
26         Users user = new com.example.demo.model.Users(1,"yangasen",1,"[email protected]");
27         boolean b = userService.updateUser(user);
28         return b + "";
29     }
30 
31     @RequestMapping("/deluser/{id}")
32     public String delUser(@PathVariable Integer id) throws IOException {
33         boolean b = userService.delUser(id);
34         return b + "";
35     }
36 
37     @RequestMapping("/newuser")
38     public String newUser() throws IOException {
39         Users user = new com.example.demo.model.Users(1,"yangasen",1,"[email protected]");
40         boolean b = userService.addUser(user);
41         return b + "";
42     }
43 }

測試:

更新操作:使用[http://localhost:8080/updateuser]

刪除操作:使用[http://localhost:8080/deluser/1]

新增操作:使用[http://localhost:8080/newuser]

Spring Boot + MyBatis連線MySQL資料庫的“增刪改查”基本操作,已經完成。