真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springboot快速整合Mybatis組件的方法(推薦)

Spring Boot簡介

創(chuàng)新互聯(lián)公司專注于貴德網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供貴德營銷型網(wǎng)站建設(shè),貴德網(wǎng)站制作、貴德網(wǎng)頁設(shè)計、貴德網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造貴德網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供貴德網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導者。

原有Spring優(yōu)缺點分析

Spring的優(yōu)點分析

Spring是Java企業(yè)版(Java Enterprise Edition,JEE,也稱J2EE)的輕量級代替品。無需開發(fā)重量級的Enterprise JavaBean(EJB),Spring為企業(yè)級Java開發(fā)提供了一種相對簡單的方法,通過依賴注入和面向切面編程,用簡單的Java對象(Plain Old Java Object,POJO)實現(xiàn)了EJB的功能。

Spring的缺點分析

雖然Spring的組件代碼是輕量級的,但它的配置卻是重量級的。一開始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的組件掃描,這消除了大量針對應(yīng)用程序自身組件的顯式XML配置。Spring 3.0引入了基于Java的配置,這是一種類型安全的可重構(gòu)配置方式,可以代替XML。

所有這些配置都代表了開發(fā)時的損耗。因為在思考Spring特性配置和解決業(yè)務(wù)問題之間需要進行思維切換,所以編寫配置擠占了編寫應(yīng)用程序邏輯的時間。和所有框架一樣,Spring實用,但與此同時它要求的回報也不少。

除此之外,項目的依賴管理也是一件耗時耗力的事情。在環(huán)境搭建時,需要分析要導入哪些庫的坐標,而且還需要分析導入與之有依賴關(guān)系的其他庫的坐標,一旦選錯了依賴的版本,隨之而來的不兼容問題就會嚴重阻礙項目的開發(fā)進度。

MyBatis

@

簡介

優(yōu)點

最大的優(yōu)點是SQL語句靈活,適合調(diào)優(yōu)情景,業(yè)務(wù)復(fù)雜情景

劣勢

最大的劣勢是不同數(shù)據(jù)庫之間的遷移

引入mybatis組件

pom.xml中加入


 MySQL
 mysql-connector-java


 org.mybatis.spring.boot
 mybatis-spring-boot-starter
 2.1.1

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
# 下劃線轉(zhuǎn)駝峰開啟
mybatis.configuration.map-underscore-to-camel-case=true
# mapper掃描位置
mybatis.mapper-locations=classpath:mapper/*.xml

需要說明的是,我引入的mysql驅(qū)動為 com.mysql.cj.jdbc.Driver,而不是 com.mysql.jdbc.Driver。以下是一些參數(shù)的說明;

  • serverTimezone:該驅(qū)動需要指定某時區(qū)。
  • useUnicode:開啟指定編碼。
  • characterEncoding:指定讀取數(shù)據(jù)庫的編碼,因為項目采用UTF-8,存取數(shù)據(jù)庫信息時保持一致。
  • useSSL:是否建立SSL連接,我顯示選的否,因為這要為服務(wù)器證書驗證提供信任庫,暫時沒條件。

代碼實戰(zhàn)

本地的 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 = '用戶基本信息表';

插入數(shù)據(jù)

INSERT INTO test.user_info (user_id, user_name) VALUES (1, '特朗普');
INSERT INTO test.user_info (user_id, user_name) VALUES (2, '唐納德');

現(xiàn)在的項目路徑為

springboot快速整合Mybatis組件的方法(推薦)

在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);
 }
}

注:如果沒有分拆項目成微服務(wù)架構(gòu),或分布式架構(gòu),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 userList = this.userDao.queryUser();
  System.out.println("================");
  System.out.println(userList);
  System.out.println("================");
 }
}

注:如果是SSM架構(gòu)過來的,這個@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 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 + '\'' +
    '}';
 }
}

如果你運行不成功,請對比引入的包的版本,和數(shù)據(jù)庫配置是否是根據(jù)你本地的,順便看看注解是否和文中一樣。

效果圖如下;

springboot快速整合Mybatis組件的方法(推薦)

注:如果是跟著本教程來的,因為一開始就引入了spring security,而新增的路徑不在剛才的權(quán)限中,所以我給zs用戶改成了user下的皆可訪問。如果沒有跟著之前配置spring security,無需理會如下內(nèi)容

//http.authorizeRequests().antMatchers("/user/addUser").hasRole("AAA") 
http.authorizeRequests().antMatchers("/user/**").hasRole("AAA")

總結(jié)

以上所述是小編給大家介紹的springboot快速整合Mybatis組件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!


分享名稱:springboot快速整合Mybatis組件的方法(推薦)
URL鏈接:http://weahome.cn/article/pcohci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部