diff --git a/springboot-mybatis-quickstart/.gitignore b/springboot-mybatis-quickstart/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springboot-mybatis-quickstart/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springboot-mybatis-quickstart/pom.xml b/springboot-mybatis-quickstart/pom.xml
new file mode 100644
index 0000000..2def348
--- /dev/null
+++ b/springboot-mybatis-quickstart/pom.xml
@@ -0,0 +1,88 @@
+
+
+ 4.0.0
+ com.inmind
+ springboot-mybatis-quickstart
+ 0.0.1-SNAPSHOT
+ springboot-mybatis-quickstart
+ springboot-mybatis-quickstart
+
+ 11
+ UTF-8
+ UTF-8
+ 2.7.6
+
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.3.0
+
+
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 11
+ 11
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ com.inmind.SpringbootMybatisQuickstartApplication
+ true
+
+
+
+ repackage
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/springboot-mybatis-quickstart/src/main/java/com/inmind/SpringbootMybatisQuickstartApplication.java b/springboot-mybatis-quickstart/src/main/java/com/inmind/SpringbootMybatisQuickstartApplication.java
new file mode 100644
index 0000000..9e93577
--- /dev/null
+++ b/springboot-mybatis-quickstart/src/main/java/com/inmind/SpringbootMybatisQuickstartApplication.java
@@ -0,0 +1,13 @@
+package com.inmind;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SpringbootMybatisQuickstartApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringbootMybatisQuickstartApplication.class, args);
+ }
+
+}
diff --git a/springboot-mybatis-quickstart/src/main/java/com/inmind/mapper/UserMapper.java b/springboot-mybatis-quickstart/src/main/java/com/inmind/mapper/UserMapper.java
new file mode 100644
index 0000000..9671863
--- /dev/null
+++ b/springboot-mybatis-quickstart/src/main/java/com/inmind/mapper/UserMapper.java
@@ -0,0 +1,16 @@
+package com.inmind.mapper;
+
+import com.inmind.pojo.User;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/*
+专门操作用户表的Mapper接口
+ */
+@Mapper//mybatis在运行时,会自动生成该接口的实现类(代理对象),并且将该对象交给Spring容器管理(Bean对象)
+public interface UserMapper {
+ @Select("select * from user")
+ public List list();
+}
diff --git a/springboot-mybatis-quickstart/src/main/java/com/inmind/pojo/User.java b/springboot-mybatis-quickstart/src/main/java/com/inmind/pojo/User.java
new file mode 100644
index 0000000..3900ec6
--- /dev/null
+++ b/springboot-mybatis-quickstart/src/main/java/com/inmind/pojo/User.java
@@ -0,0 +1,71 @@
+package com.inmind.pojo;
+//对应User表的实体类
+public class User {
+ private Integer id;
+ private String name;
+ private Short age;
+ private Short gender;
+ private String phone;
+
+ public User() {
+ }
+
+ public User(Integer id, String name, Short age, Short gender, String phone) {
+ this.id = id;
+ this.name = name;
+ this.age = age;
+ this.gender = gender;
+ this.phone = phone;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Short getAge() {
+ return age;
+ }
+
+ public void setAge(Short age) {
+ this.age = age;
+ }
+
+ public Short getGender() {
+ return gender;
+ }
+
+ public void setGender(Short gender) {
+ this.gender = gender;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", age=" + age +
+ ", gender=" + gender +
+ ", phone='" + phone + '\'' +
+ '}';
+ }
+}
diff --git a/springboot-mybatis-quickstart/src/main/resources/application.properties b/springboot-mybatis-quickstart/src/main/resources/application.properties
new file mode 100644
index 0000000..12d0d9b
--- /dev/null
+++ b/springboot-mybatis-quickstart/src/main/resources/application.properties
@@ -0,0 +1,14 @@
+#下面这些内容是为了让MyBatis映射
+#指定Mybatis的Mapper文件
+mybatis.mapper-locations=classpath:mappers/*xml
+#指定Mybatis的实体目录
+mybatis.type-aliases-package=com.inmind.mybatis.entity
+
+#驱动类名称
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#数据库连接的url
+spring.datasource.url=jdbc:mysql://localhost:3306/mybatis2
+#连接数据库的用户名
+spring.datasource.username=root
+#连接数据库的密码
+spring.datasource.password=1234
diff --git a/springboot-mybatis-quickstart/src/test/java/com/inmind/SpringbootMybatisQuickstartApplicationTests.java b/springboot-mybatis-quickstart/src/test/java/com/inmind/SpringbootMybatisQuickstartApplicationTests.java
new file mode 100644
index 0000000..88b6f00
--- /dev/null
+++ b/springboot-mybatis-quickstart/src/test/java/com/inmind/SpringbootMybatisQuickstartApplicationTests.java
@@ -0,0 +1,31 @@
+package com.inmind;
+
+import com.inmind.mapper.UserMapper;
+import com.inmind.pojo.User;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+
+@SpringBootTest//在进行单元测试时,启动spring程序,启动IOC,将程序中Bean对象加载到容器
+class SpringbootMybatisQuickstartApplicationTests {
+
+ @Autowired
+ private UserMapper userMapper;//注入的是mybatis自动生成的UserMapper接口类型的实现类对象
+
+ @Test
+ void contextLoads() {
+ }
+
+ @Test
+ void testList(){
+ List userList = userMapper.list();
+ //通过集合获取Stream流,进行遍历消费,user就是集合中的每个元素,拿到每个元素进行打印消费
+// userList.stream().forEach(user -> System.out.println(user));
+ for (User user : userList) {
+ System.out.println(user);
+ }
+ }
+
+}
diff --git a/springboot-web-req-resp/src/main/java/com/inmind/SpringbootWebReqRespApplication.java b/springboot-web-req-resp/src/main/java/com/inmind/SpringbootWebReqRespApplication.java
index 08b0910..e7aec71 100644
--- a/springboot-web-req-resp/src/main/java/com/inmind/SpringbootWebReqRespApplication.java
+++ b/springboot-web-req-resp/src/main/java/com/inmind/SpringbootWebReqRespApplication.java
@@ -2,6 +2,7 @@ package com.inmind;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public class SpringbootWebReqRespApplication {
diff --git a/springboot-web-req-resp/src/main/java/com/inmind/controller/EmpController.java b/springboot-web-req-resp/src/main/java/com/inmind/controller/EmpController.java
index e2d9acc..97d3873 100644
--- a/springboot-web-req-resp/src/main/java/com/inmind/controller/EmpController.java
+++ b/springboot-web-req-resp/src/main/java/com/inmind/controller/EmpController.java
@@ -6,16 +6,22 @@ import com.inmind.service.EmpService;
import com.inmind.service.impl.EmpServiceImplA;
import com.inmind.utils.XmlParserUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
import java.util.List;
@RestController
public class EmpController {
- @Autowired //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量---依赖注入
+ /*@Autowired //运行时,IOC容器会提供该类型的bean对象,并赋值给该变量---依赖注入
+ @Qualifier("empServiceImplB")//当依赖注入EmpService类型的bean对象时,优先使用@Qualifier书写的bean对象名称对应的对象
+ private EmpService empService;*/
+
+ @Resource(name = "empServiceImplA")
private EmpService empService;
diff --git a/springboot-web-req-resp/src/main/java/com/inmind/dao/impl/EmpDaoImplA.java b/springboot-web-req-resp/src/main/java/com/inmind/dao/impl/EmpDaoImplA.java
index f029f90..81be27d 100644
--- a/springboot-web-req-resp/src/main/java/com/inmind/dao/impl/EmpDaoImplA.java
+++ b/springboot-web-req-resp/src/main/java/com/inmind/dao/impl/EmpDaoImplA.java
@@ -3,7 +3,6 @@ package com.inmind.dao.impl;
import com.inmind.dao.EmpDao;
import com.inmind.pojo.Emp;
import com.inmind.utils.XmlParserUtils;
-import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
diff --git a/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplA.java b/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplA.java
index 006bfbb..9480b74 100644
--- a/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplA.java
+++ b/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplA.java
@@ -1,11 +1,9 @@
package com.inmind.service.impl;
import com.inmind.dao.EmpDao;
-import com.inmind.dao.impl.EmpDaoImplA;
import com.inmind.pojo.Emp;
import com.inmind.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.util.List;
diff --git a/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplB.java b/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplB.java
new file mode 100644
index 0000000..6424eb7
--- /dev/null
+++ b/springboot-web-req-resp/src/main/java/com/inmind/service/impl/EmpServiceImplB.java
@@ -0,0 +1,43 @@
+package com.inmind.service.impl;
+
+import com.inmind.dao.EmpDao;
+import com.inmind.pojo.Emp;
+import com.inmind.service.EmpService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+//@Component //将当前类交给IOC容器管理,成为IOC容器的bean--控制反转
+@Service
+//@Primary//当依赖注入EmpService类型的bean对象时,优先使用EmpServiceImplB
+public class EmpServiceImplB implements EmpService {
+ @Autowired
+ private EmpDao empDao;
+
+ @Override
+ public List listEmp() {
+ //业务层从dao层获取数据
+ List emps = empDao.listEmp();
+
+ //2.对数据进行转换处理
+ emps.stream().forEach(emp->{
+ //处理性别
+ if (emp.getGender().equals("1")) {
+ emp.setGender("男生");
+ }else{
+ emp.setGender("女生");
+ }
+ //处理职务
+ if (emp.getJob().equals("1")) {
+ emp.setJob("班主任");
+ } else if ("2".equals(emp.getJob())) {
+ emp.setJob("讲师");
+ } else {
+ emp.setJob("辅导员");
+ }
+ });
+ return emps;
+ }
+}