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; + } +}