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 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中 ⼆、插⼊build标记⽤来打包mapper接⼝的myBatis映射⽂件 三、编写实体类并实现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 映射⽂件: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 List 六、编写启动器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)》》在测试类注⼊ 需要使⽤的对象即可 ⼀、添加起步依赖 ⼆、实体类、操作数据库接⼝及配置⽂件使⽤上⽅的 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 //根据获得的⽤户对象修改姓名 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 } } //修改 @Test public void updateTest(){ userService.updateUsername(); }} 四、springBoot使⽤技巧 事物管理 在开启事物的⽅法上添加@Transactional 注解即可 如果springBoot版本是2.0以下 需要 在启动类上添加注解@EnableTransactionManagement 因篇幅问题不能全部显示,请点此查看更多更全内容