慕課網連接java
項目建立完成以後能夠打開pom.xml看一下mysql
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.imooc</groupId> <artifactId>girl</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>girl</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> <relativePath/> </parent> <!--項目的編碼格式--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--爲項目添加web服務--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--項目測試使用--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!--項目編譯--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
1.直接在idea啓動 2.(命令行模式:進入到項目路徑下)mvn spring-boot:run 3.(命令行模式:進入到項目路徑下)編譯程序 mvn install 進入target java -jar XXXX.jar
在rescourse下面有屬性文件,可經過屬性文件對象的屬性進行配置(application.properties):web
server.port=8081 server.comtent-path=/demo girl.age=18 girl.name=小紅 girl.cupSize=F #配置文件中使用配置文件中的屬性 people: "age:${girl.age},cupSize:${girl.cupSize}"
也可使用application.yml配置文件:spring
server: port: 8080 context-path: /demo girl: age: 18 name: 小紅 cupsize: F
在java類中使用如下方法能夠得到配置文件的屬性sql
@Value("${girl.age}") //獲取.properties的屬性值 private String age; @Value("${girl.name}") private String name; @Value("${girl.cupSize}") private String cupSize;
girl每有一個屬性就須要使用一次@value註解數據庫
可以使用girl類一次性賦值進去apache
@Component @ConfigurationProperties(prefix = "girl") //獲取前綴是girl的屬性 public class Girl{ private int age; private String name; private String cupSize; /** * 添加屬性的setter和getter方法 */ }
經過下面代碼獲取配置文件屬性賦值以後的對象json
@Autowired private Girl girl;
總不能每次換版本都從新修改配置文件吧springboot
能夠在rescourses文件夾新建application-pro.yml和application-test.yml兩個配置文件app
並在兩個文件中分別配置產品和測試所須要的屬性及屬性值
並在application.yml修改配置。決定運行時使用的是哪個屬性配置文件(以下代碼,使用的是application-test.yml的屬性配置)
spring: profiles: active: test
@Controller //聲明控制器類 @RestController //該註解類的方法返回json數據;=@ResponseBody + @Controller @RequestMapping(value = {"/hello", "/hi"}, method = RequestMethod.GET) /* 兩個url路徑均可以訪問同一個方法 當不指定請求方式時,get/post均可以請求到,可是不推薦。 該註解能夠給整個類指定Url*/ //處理url裏面的參數: @PathVariable //獲取url中的數據 @RequestMapping("/hello/{id}") public void hello(@PathVariable Integer id){} @RequestParam //獲取請求參數的值 @GetMapping/PostMapping //組合註解
準備階段(添加依賴)
爲了使用數據庫,須要在pom.xml文件中,加入兩個依賴: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
添加配置
在application.yml文件中做相應配置: 1)mysql的相關配置 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/dbgirl username: root password: root 2)jpa的配置 spring: jpa: hibernate: ddl-auto: update show-sql: true ddl-auto:creat、update、none、creat-drop、validate creat每次運行時,都會建立新表(如有,刪除原有的,再建新的),update不會刪除原有的,保留改變的,更新,create-drop不運行時,刪表,none什麼也不做,validate驗證類裏面屬性是否與表結構一致,不一致報錯;
新建數據庫表
新建數據庫; 在main/imooc下新建Girl類,(和數據庫對應)包括: 1)類的前面有@Entity註解(表示此類對應數據庫中的一個表) 2)類中包含屬性,其前有註解@Id @GeneratedValue,(主鍵並自增) 3)有無參的構造方法,以及set和get方法;
數據庫操做
建立Dao接口繼承JpaRepository接口,該接口有泛型<Girl , id>
能夠用該接口實例進行數據庫操做
public interface GirlRepository extends JpaRepository<Girl, Integer> { }
數據庫的一系列操做
@Autowired private GirlRepository girlRepository; @GetMapping(value = "/girls") public List<Girl> girlList() { return girlRepository.findAll(); } @GetMapping(value = "/girls/{id}") public Girl girlFindOne(@PathVariable("id") Integer id) { return girlRepository.findOne(id); } ................
若是要實現本身添加的方法,有嚴格的命名規範(在接口GirlRepository中添加方法)
public interface GirlRepository extends JpaRepository<Girl, Integer> { //經過年齡來查詢 public List<Girl> findByAge(Integer age); }
事務的使用
實現事務,能夠在@Service中,指定方法前加@Transactional註解
mysql 表存儲引擎爲MyISAM ,不支持事物回滾,須要設置爲InnoDB