您好,登錄后才能下訂單哦!
@[toc]
最大的優點是SQL語句靈活,適合調優情景,業務復雜情景
最大的劣勢是不同數據庫之間的遷移
pom.xml中加入
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
application.properties中加入
#dateSource
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# mybatis
# 下劃線轉駝峰開啟
mybatis.configuration.map-underscore-to-camel-case=true
# mapper掃描位置
mybatis.mapper-locations=classpath:mapper/*.xml
需要說明的是,我引入的mysql驅動為 com.mysql.cj.jdbc.Driver,而不是 com.mysql.jdbc.Driver。以下是一些參數的說明;
本地的 mysql 版本為 5.7.20。
建表語句
CREATE TABLE USER_INFO
(
user_id DECIMAL(10) PRIMARY KEY NOT NULL,
user_name VARCHAR(20) DEFAULT "" NOT NULL
);
CREATE UNIQUE INDEX USER_INFO_user_id_uindex ON USER_INFO (user_id);
ALTER TABLE USER_INFO COMMENT = '用戶基本信息表';
插入數據
INSERT INTO test.user_info (user_id, user_name) VALUES (1, '特朗普');
INSERT INTO test.user_info (user_id, user_name) VALUES (2, '唐納德');
現在的項目路徑為
在SpringBoot的入口類中加 @MapperScan 注解,以掃描 DAO 類,不用在每個dao接口加個@Mapper 注解。
package com.example;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.example.dao")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注:如果沒有分拆項目成微服務架構,或分布式架構,application主類中的@SpringBootApplication自動會掃描本包中的@Controller,@Service,@Resource等,是不需要浪費另一行@ComponentScan注解,配置路徑的。
UserController.java
package com.example.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.service.IUserService;
@Controller
@RequestMapping("user")
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("/queryUser")
@ResponseBody
void queryUser() {
this.userService.queryUser();
}
}
IUserService.java
package com.example.service;
public interface IUserService {
void queryUser();
}
UserServiceIml.java
package com.example.service;
import com.example.dao.UserDao;
import com.example.entity.UserEntity;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("userService")
public class UserServiceIml implements IUserService {
@Resource
private UserDao userDao;
@Override
public void queryUser() {
List<UserEntity> userList = this.userDao.queryUser();
System.out.println("================");
System.out.println(userList);
System.out.println("================");
}
}
注:如果是SSM架構過來的,這個@Resource注解可能比較陌生,因為我估計會和我之前一樣用@Autowired,但是我是沒有在dao層用 @Repository 注解的,之前用了在主類用了@MapperScan自動去掃描所有的dao,所以不能再用之前的@Autowired。
UserDao.java
package com.example.dao;
import com.example.entity.UserEntity;
import java.util.List;
public interface UserDao {
List<UserEntity> queryUser();
}
UserEntity.java
package com.example.entity;
public class UserEntity {
private long userId;
private String userName;
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "UserEntity{" +
"userId=" + userId +
", userName='" + userName + '\'' +
'}';
}
}
如果你運行不成功,請對比引入的包的版本,和數據庫配置是否是根據你本地的,順便看看注解是否和文中一樣。
效果圖如下;
注:如果是跟著本教程來的,因為一開始就引入了spring security,而新增的路徑不在剛才的權限中,所以我給zs用戶改成了皆可訪問。如果沒有跟著之前配置spring security,無需理會如下內容
//http.authorizeRequests().antMatchers("/user/addUser").hasRole("AAA")
http.authorizeRequests().antMatchers("/**").hasRole("AAA")
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。