1、yaml文件格式:key-value形式;能夠表示對象 集合java
一、語法:key:value 冒號後面必須跟一個空格再寫value值mysql
key1:spring
key2:sql
key3:value數據庫
二、屬性取值:a、可使用@Valu註解取值--@Value("${page.rows}")springboot
b、使用 ConfigurationProperties把屬性的值批量綁定一個對象上mybatis
1、編寫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: true page: rows: 22 person: name: 張無忌 age: 14 sex: 男 address: 光明頂 myAddress: - "北京" - "地球" - "日本" #myAddress: ["北京","地球","日本"] 2、編寫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<String> myAddress; public String[] getMyAddress() { return myAddress; } public void setMyAddress(String[] myAddress) { this.myAddress = myAddress; } @Override public String toString() { return "Person{" + "name=" + name + '\'' + ", age='" + age + '\'' + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; } 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; } } 3、編寫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",rows); return map; } //yml格式配置文件讀取(定義實體類法) @RequestMapping("/person") public Person showPerson(){ return person; } }
2、springBoot整合myBatisapp
myBatis使用步驟:添加mybatis的起步依賴》》在配置文件中 配置數據源信息》》編寫實體 類 、mapper接口、 mapper 映射文件》》手動配置mybatis包的掃描器:在啓動類上加一個註解 @MapperScan(basePackages = "cn.zrf.mapper")、還須要在pom.xml文件中添加build 標記和裏面的內容》》編寫controlleride
1、添加起步依賴在pom中 <!--mybatis 起步依賴--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> 2、插入build標記用來打包mapper接口的myBatis映射文件 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> <filtering>false</filtering> </resource> </resources> </build> 3、編寫實體類並實現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 + ", username='" + username + '\'' + ", sex='" + sex + '\'' + '}'; } } 4、編寫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<MyBatisUser> getUserList(); } 映射文件:sql語句 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.zrf.mapper.MyBatisUserMapper"> <select id="getUserList" resultType="cn.zrf.entity.MyBatisUser"> select * from user </select> </mapper> 5、編寫controller @Autowired MyBatisUserMapper myBatisUserMapper; //整合MyBatis查詢全部 @RequestMapping("/mybatis/userList") public List<MyBatisUser> myBatisUserList(){ List<MyBatisUser> userList = myBatisUserMapper.getUserList(); return userList; } 6、編寫啓動器 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); } }
3、springBoot整合junit spring-boot
使用步驟:添加起步依賴》》建立一個測試類》》在測試類上添加註解:@SpringBootTest和@RunWith(SpringRunner.class)》》在測試類注入 須要使用的對象便可
1、添加起步依賴 <!--測試的起步依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 2、實體類、操做數據庫接口及配置文件使用上方的 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> optional = userDao.findById(2); User user = optional.get(); //根據得到的用戶對象修改姓名 user.setUsername("孫悟空"); userDao.save(user); } } 3、編寫測試類 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<MyBatisUser> userList = myBatisUserMapper.getUserList(); for (MyBatisUser myBatisUser:userList){ System.out.println(myBatisUser); } } //修改 @Test public void updateTest(){ userService.updateUsername(); } }
4、springBoot使用技巧