搜索
您的当前位置:首页正文

springBoot第二种配置文件yaml书写方式及读取数据、整合myBatis和整合junit

来源:意榕旅游网
springBoot第⼆种配置⽂件yaml书写⽅式及读取数据、整合

myBatis和整合junit

⼀、yaml⽂件格式:key-value形式;可以表⽰对象 集合  1、语法:key:value 冒号后⾯必须跟⼀个空格再写value值    key1:      key2:

        key3:value

  2、属性取值:a、可以使⽤@Valu注解取值--@Value(\"${page.rows}\")

         b、使⽤ ConfigurationProperties把属性的值批量绑定⼀个对象上

⼀、编写yaml格式⽂件,并配置数据库链接#DB Configuration:spring:

datasource:

driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/springboot username: root password: 169695#JPA Configuration: jpa:

database: mysql show-sql: true generate-ddl: truepage: rows: 22person:

name: 张⽆忌 age: 14 sex: 男

address: 光明顶 myAddress: - \"北京\" - \"地球\" - \"⽇本\"

#myAddress: [\"北京\地球\⽇本\"]

⼆、编写person实体类;page:rows:22这个不⽤写实体类可以直接取直package cn.zrf.entity;

import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;

import java.util.List;@Component

@ConfigurationProperties(prefix = \"person\")把属性的值批量绑定对象person上public class Person { private String name; private String age; private String sex; private String address;

private String[] myAddress;

// private List myAddress; public String[] getMyAddress() { return myAddress; }

public void setMyAddress(String[] myAddress) { this.myAddress = myAddress; }

@Override

public String toString() { return \"Person{\" +

\"name=\" + name + '\\'' + \ \

\ '}'; }

public String getName() {

return name; }

public void setName(String name) { this.name = name; }

public String getAge() { return age; }

public void setAge(String age) { this.age = age; }

public String getSex() { return sex; }

public void setSex(String sex) { this.sex = sex; }

public String getAddress() { return address; }

public void setAddress(String address) { this.address = address; }

}

三、编写controller取出数据@RestController

public class ShowUserController { @Value(\"${page.rows}\") private String rows; @Autowired Person person;

//yml格式读取数据配置⽂件数据 @RequestMapping(\"/page/rows\")// @ResponseBody

public Map showRows(){

Map map = new HashMap(); map.put(\"rows\ return map; }

//yml格式配置⽂件读取(定义实体类法) @RequestMapping(\"/person\") public Person showPerson(){ return person; }}

⼆、springBoot整合myBatis

  myBatis使⽤步骤:添加mybatis的起步依赖》》在配置⽂件中 配置数据源信息》》编写实体 类 、mapper接⼝、 mapper 映射⽂件》》⼿动配置mybatis包的扫描器:在启动类上加⼀个注解 @MapperScan(basePackages = \"cn.zrf.mapper\")、还需要在pom.xml⽂件中添加build 标记和⾥⾯的内容》》编写controller

⼀、添加起步依赖在pom中

org.mybatis.spring.boot

mybatis-spring-boot-starter 1.1.1

⼆、插⼊build标记⽤来打包mapper接⼝的myBatis映射⽂件

src/main/java

**/*.properties **/*.xml

false

src/main/resources

**/*.*

false

三、编写实体类并实现Serializable 序列化接⼝package cn.zrf.entity;import java.io.Serializable;

public class MyBatisUser implements Serializable { private int id;

private String username; private String sex; public int getId() { return id; }

public void setId(int id) { this.id = id; }

public String getUsername() { return username; }

public void setUsername(String username) { this.username = username; }

public String getSex() { return sex; }

public void setSex(String sex) { this.sex = sex; }

@Override

public String toString() { return \"MyBatisUser{\" + \"id=\" + id +

\ \ '}'; }}

四、编写myBatis的操作数据库接⼝(mapper包也就是原先的dao层)及映射⽂件接⼝:

package cn.zrf.mapper;

import cn.zrf.entity.MyBatisUser;

import org.springframework.stereotype.Repository;

import java.util.List;@Repository

public interface MyBatisUserMapper { //查询所有

List getUserList();}

映射⽂件:sql语句

PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">

五、编写controller @Autowired

MyBatisUserMapper myBatisUserMapper;//整合MyBatis查询所有

@RequestMapping(\"/mybatis/userList\")

public List myBatisUserList(){

List userList = myBatisUserMapper.getUserList(); return userList; }

六、编写启动器package cn.zrf;

import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication

@MapperScan(basePackages = \"cn.zrf.mapper\")public class HelloApplication {

public static void main(String[] args) {

SpringApplication.run(HelloApplication.class,args); }}

三、springBoot整合junit

  使⽤步骤:添加起步依赖》》创建⼀个测试类》》在测试类上添加注解:@SpringBootTest和@RunWith(SpringRunner.class)》》在测试类注⼊ 需要使⽤的对象即可

⼀、添加起步依赖

org.springframework.boot spring-boot-starter-test test

⼆、实体类、操作数据库接⼝及配置⽂件使⽤上⽅的

service层写了个修改的⽅法也就是测试类内容,在测试类掉⽤直接修改;可在测试类直接书写package cn.zrf.service;

import cn.zrf.dao.UserDao;import cn.zrf.entity.User;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.Optional;@Service

public class UserService { @Autowired

UserDao userDao;

public void updateUsername(){ //根据ID查找⽤户;获得⽤户对象

Optional optional = userDao.findById(2); User user = optional.get();

//根据获得的⽤户对象修改姓名 user.setUsername(\"孙悟空\"); userDao.save(user); }}

三、编写测试类package cn.zrf;

import cn.zrf.entity.MyBatisUser;

import cn.zrf.mapper.MyBatisUserMapper;import cn.zrf.service.UserService;import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import java.util.List;

@RunWith(SpringRunner.class)

@SpringBootTest(classes = HelloApplication.class)public class UserTest { @Autowired

private MyBatisUserMapper myBatisUserMapper; @Autowired

UserService userService;

//查询所有 @Test

public void userListTest(){

List userList = myBatisUserMapper.getUserList(); for (MyBatisUser myBatisUser:userList){ System.out.println(myBatisUser);

} }

//修改 @Test

public void updateTest(){

userService.updateUsername(); }}

四、springBoot使⽤技巧

  事物管理

  在开启事物的⽅法上添加@Transactional 注解即可   如果springBoot版本是2.0以下

  需要 在启动类上添加注解@EnableTransactionManagement

因篇幅问题不能全部显示,请点此查看更多更全内容

Top