【springboot學習筆記】springboot+mybatis整合一
阿新 • • 發佈:2018-12-16
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層加註解了;