數據庫沿用上次的數據庫
1使用jpa鏈接數據庫
修改pom.xml文件,添加兩個依賴庫:
<!-- Spring Data JPA 依賴 :: 數據持久層框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- h2 數據源連接驅動 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
更新。
2 新建實體Author
在包com.example.demo.models新建類Author,Author.java代碼如下:
package com.example.demo.models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.alibaba.fastjson.JSON;
@Entity
@Table(name = "authors")
public class Author {
/**
* id
*/
@Id
@GeneratedValue
private Long id;
/**
* 作者名字
*/
@Column(nullable = false)
private String name;
/**
* 作者年齡
*/
@Column(nullable = false)
private int age;
/**
* 簡介
*/
@Column(nullable = false)
private String introduction;
/**
* 空參構造
*/
public Author() {
}
/**
* 有參構造
*/
public Author(String name, int age, String introduction) {
this.name = name;
this.age = age;
this.introduction = introduction;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getIntroduction() {
return introduction;
}
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return JSON.toJSONString(this);
}
}
3 創建dao
在包com.example.demo.dao創建AuthorRepository,AuthorRepository.java代碼如下:
package com.example.demo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.example.demo.models.Author;
@Repository
public interface AuthorRepository extends JpaRepository<Author, Long> {
}
4 業務處
在包com.example.demo.service創建接口IAuthorService,IAuthorService.java代碼如下:
package com.example.demo.service;
import java.util.List;
import com.example.demo.models.Author;
public interface IAuthorService {
/**
* 獲取所有 Author
*/
List<Author> findAll();
/**
* 新增 Author
*
* @param Author {@link Author}
*/
Author insertByAuthor(Author author);
/**
* 更新 Author
*
* @param Author {@link Author}
*/
Author update(Author author);
/**
* 刪除 Author
*
* @param id 編號
*/
void delete(Long id);
/**
* 獲取 Author
*
* @param id 編號
*/
Author findById(Long id);
}
5 實現業務
在包com.example.demo.service創建AuthorServiceImpl,實現業務接口IAuthorService,AuthorServiceImpl.java代碼如下:
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.dao.AuthorRepository;
import com.example.demo.models.Author;
@Service
public class AuthorServiceImpl implements IAuthorService {
@Autowired
private AuthorRepository authorRepository;
@Override
public List<Author> findAll() {
return authorRepository.findAll();
}
@Override
public Author insertByAuthor(Author author) {
return authorRepository.save(author);
}
@Override
public Author update(Author author) {
return authorRepository.save(author);
}
@Override
public void delete(Long id) {
authorRepository.deleteById(id);
}
@Override
public Author findById(Long id) {
return authorRepository.getOne(id);
}
}
6 jpa配置
修改application.properties文件,代碼如下:
#mysql\u914D\u7F6E
spring.datasource.url=jdbc:mysql://localhost:3306/itcaststore?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# config hibernate
#spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
7 測試
在src/test/java目錄下的包com.example.demo.service中,創建測試文件AuthorServiceTest,AuthorServiceTest.java代碼如下:
package com.example.demo.service;
import java.util.List;
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 com.example.demo.models.Author;
@RunWith(SpringRunner.class)
@SpringBootTest
public class AuthorServiceTest {
@Autowired
private IAuthorService service;
@Test
public void findAll() {
List<Author> list = service.findAll();
for (Author author : list) {
System.out.println(author.toString());
}
System.out.println("打印結束");
}
@Test
public void insert() {
Author a = new Author("張三", 42, "浙江工業職業技術學院");
service.insertByAuthor(a);
}
}
執行insert,成功後,再執行findAll,可以看到新增加的數據。
打開MySQL數據庫,可以看到數據庫中增加了一張authors表。