1. 程式人生 > >【springboot學習筆記】springboot+mybatis整合一

【springboot學習筆記】springboot+mybatis整合一

1、pom.xml maven依賴引入

        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!--lombok自動生成程式碼-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.14</version>
		</dependency>

2、資料庫資料簡單的準備,這張表只有簡單的兩個欄位,name,id。(建立表過程略)

3、配置檔案引入-編輯,application.properties,或者application.yml

配置mybatis

配置的內容分別為:資料庫地址,資料庫名稱,資料庫密碼,資料庫驅動

#mybatis
spring.datasource.url=jdbc:mysql://localhost:3306/db?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

4、簡單的程式碼實現

目錄結構:

實體建模:

這個例子很簡單,一個實體User,具有name,id,進行增刪改查;

4.1 新建com.mybatis.entity包- 新建User,實體類

@Data:依賴於lombok外掛,相當於@GETTER @SETTER,簡化了set get方法;

@Data
public class User {
    private String name;
    private Integer id;

    public static void main(String[] args) {
    }
}

4.2 新建com.mybatis.mapper包-新建interface-UserMapper類,mapper層,對資料庫進行資料持久化操作,他的方法語句是直接針對資料庫操作的

@Mapper
public interface UserMapper {
    //查詢
    @Select("SELECT * FROM MYBATIS WHERE NAME=#{name}")
    User findByName(@Param("name") String name);

    //查詢所有
    @Select("SELECT * FROM MYBATIS")
    List<User> findUsersList();

    //插入
    @Insert("INSERT INTO MYBATIS ( NAME, ID) VALUES ( #{name}, #{id})")
    int insert(@Param("name") String name, @Param("id") Integer id);
}

4.3 新建com.mybatis.service-UserService服務類,service層,存放業務邏輯處理,也是一些關於資料庫處理的操作,但不是直接和資料庫打交道,他有介面還有介面的實現方法,在介面的實現方法中需要匯入mapper層

@Service
@Slf4j
public class UserService {

    @Autowired
    private  UserMapper userMapper;

    @Transactional
    public int insetUser(String name, Integer id) {
        int insetUserResult = userMapper.insert(name,id);
        log.info("##########insetUserResult########",insetUserResult);
        return insetUserResult;
    }

    @Transactional
    public User findName(String name) {
        User  findResutName = userMapper.findByName(name);
        return findResutName;
    }
}

4.4 新建com.mybatis.controller -UserController,控制器,需要匯入service層,因為service中的方法是我們使用到的,controller通過接收前端傳過來的引數進行業務操作,在返回一個指定的路徑或者資料表。這邊是簡單的,預設get的方式,@RestController返回json

@RestController
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping("/insetser")
    public Integer insertUser(String name, Integer id) {
        return userService.insetUser(name,id);
    }

    @RequestMapping("/name")
    public User getName(String name) {
        return userService.findName(name);
    }
}

5、執行

6、其他

mapper層註解的時候可以新增@Mapper 註解,也可以在執行的main方法中加掃描mapper的註解,這樣就不需要在每個mapper層加註解了;