一、环境
二、Mybatis+mysql搭建
1—构建 Step 1
使用spring initialtor建立一个jdk8的项目,架构选择基本即可
建立项目后,修改pom.xml,如下图(其中部分为可选):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.50</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
resource目录中新建application.yml
spring:
profiles:
active: dev
新建对应的application-dev.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useSSL=true&characterEncoding=utf-8&useUnicode=true&serverTimezone=UTC&allowMultiQueries=true
username: root
password: hahaha
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
type-aliases-package: com.sboot.redis01.entity
mapper-locations: classpath:mapping/*.xml
#showsql
logging:
level:
com:
sboot:
redis01:
mapper: debug
2—编写 Step 2
目录结构如下图:
声明数据库表实体
@Alias("person")
public class Person implements Serializable {
private int Id;
private String name;
private String gender;
private String phone;
//省略getter和setter
}
编写mapper接口
//注解必需有
@Repository
public interface log2Mapper {
List<tlog2> getAll();
}
对应的resource的mapping\log2Mapper.xml
<mapper namespace="com.sboot.redis01.mapper.log2Mapper">
<!-- 使用insert,update,delete,select标签sql -->
<!-- id值取自Dao接口中的方法名称 -->
<select id="getAll" resultType="log2">
select * from t_log2;
</select>
</mapper>
相应的service类
@Service
public class log2Service {
//注解参数required,布尔值。默认为true,false表示log2Map可为null,可忽略取值
@Autowired
log2Mapper log2Map;
public List<tlog2> GetAll(){
return log2Map.getAll();
}
}
修改启动类(添加映射扫描)
@SpringBootApplication
@MapperScan("com.sboot.redis01.mapper")
public class Redis01Application {
public static void main(String[] args) {
SpringApplication.run(Redis01Application.class, args);
}
}
3—junit测试 Step 3
@SpringBootTest
class Redis01ApplicationTests {
@Autowired
log2Service log2Serv;
@Test
void getlog2(){
List<tlog2> logs=log2Serv.GetAll();
if(logs!=null && logs.size()>0){
for(tlog2 item:logs){
System.out.println("记录--------------------"+item.toString());
}
}else{
System.out.println("------------------结果为空");
}
}
}
比springMVC的配置简化不少。
三、Mybatis Junit测试
1—基本用法
搭建springBoot基本框架。
pom.xml添加 :mybatis依赖,junit依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
下为启动类代码
@ComponentScan({"com.study.myexam.controller","com.study.myexam.dao","com.study.myexam.service"})
@SpringBootApplication
public class MyexamApplication {
public static void main(String[] args) {
SpringApplication.run(MyexamApplication.class, args);
}
}
新增测试自定义类。注意:@SpringBootTest属性classess值为启动类名称。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyexamApplication.class)
public class AppTest {
@Autowired
private acctService acctServ;
@Before
public void startup(){
System.out.println("--------------------开始了-----------------------");
}
@After
public void termain(){
System.out.println("-----------------------结束了-----------------------------");
}
@Test
public void testMybatis01(){
try {
List<tAccount> list=acctServ.List();
if(list!=null && list.size()>0){
for ( tAccount item :list){
System.out.println("值----------------------"+item.toString());
}
}else{
System.out.println("结果---------------为空");
}
} catch (Exception e) {
System.out.println("ERR--------------------------------"+e.getMessage());
}
}
}
控制台显示如下
四、lombok使用
1—简介
一段用来简化实体类属性代码的辅助工具。有了它,不用再书写Getter/Setter,toString()等代码,便得实体类的代码极为精炼。
2—用法
在pom.xml引入依赖
<dependencys>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<optional>true</optional>
</dependency>
</dependencys>
然后再设置中添加相应插件,否则代码将不能自动形成Getter/Setter代码。
简单实体类写法:
import lombok.*;
@Data
public class t_log2 {
private int Id;
private String name;
private String sex;
private String address;
private int tage;
private String FEmail;
}
如果想具体使用lombok部分注解,如下图:
import lombok.*;
@ToString(of = {"Id","name","sex","tage","address","FEmail"})
@Setter(AccessLevel.PUBLIC)
@Getter(AccessLevel.PUBLIC)
public class t_log2 {
private int Id;
private String name;
private String sex;
private String address;
private int tage;
private String FEmail;
}
3—子类重载toString(),如何引入父类toString()值?
在@toString()的注解中,添加callSuper=true参数,即可实现输出父类属性。