在具體介紹以前,先了解下什麼是JPAjava
JPA全稱JavaPersistence API.JPA經過JDK5.0註解或XML描述對象-關係表的映射關係,並將運行期的實體對象持久化到數據庫中。mysql
下面具體介紹怎麼配置spring
第一種方式(最簡單最快速的實現鏈接 推薦使用第二種)sql
1.引入jar包數據庫
pom.xml配置:瀏覽器
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
2.配置application.propertiesspringboot
關於application.properties app
springboot中容許修改默認的配置,通常在resource文件下添加application.properties文件,修改相關的配置spring-boot
########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://123.206.228.200:3306/test
spring.datasource.username = shijunjie
spring.datasource.password = *******
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
### Java Persistence Api
########################################################
# Specify the DBMS
spring.jpa.database = MYSQL
# Show or not log for each sql query
spring.jpa.show-sql = true
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = create-drop
# Naming strategy
#[org.hibernate.cfg.ImprovedNamingStrategy #org.hibernate.cfg.DefaultNamingStrategy]
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQL5Dialect
3.編寫實體類
package me.shijunjie.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity //加入這個註解,Demo就會進行持久化了 @Table(name="t_demo") public class Demo { public Demo() { } public Demo(long id, String name) { this.id = id; this.name = name; } @Id @GeneratedValue private long id; @Column(name="tname") private String name; 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; } }
4.編寫DAO
package me.shijunjie.dao; import org.springframework.data.jpa.repository.JpaRepository; import me.shijunjie.entity.Demo; public interface DemoDao extends JpaRepository<Demo, Long> { }
5.編寫Service接口及其實現類
接口:
package me.shijunjie.service; import me.shijunjie.entity.Demo; public interface DemoService { public void save(Demo demo); }
實現類:
package me.shijunjie.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import me.shijunjie.dao.DemoDao; import me.shijunjie.entity.Demo; import me.shijunjie.service.DemoService; @Service public class DemoServiceImpl implements DemoService { @Autowired private DemoDao demoDao; public void save(Demo demo){ demoDao.save(demo); } }
6.編寫Controller
package me.shijunjie.controller; import javax.annotation.Resource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import me.shijunjie.entity.Demo; import me.shijunjie.service.DemoService; @RestController @RequestMapping("/demo") public class DemoController { @Resource private DemoService demoService; /** * 測試保存數據方法. * @return */ @RequestMapping("/save") public String save(){ Demo d = new Demo(); d.setName("Angel"); demoService.save(d);//保存數據. return "ok.DemoController.save"; } }
7.編寫入口
package me.shijunjie.controller; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.web.SpringBootServletInitializer; import org.springframework.boot.orm.jpa.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.scheduling.annotation.EnableScheduling; @ComponentScan(basePackages={"me.shijunjie"}) // 掃描該包路徑下的全部spring組件 @EnableJpaRepositories("me.shijunjie.dao") // JPA掃描該包路徑下的Repositorie @EntityScan("me.shijunjie.entity") // 掃描實體類 @SpringBootApplication @EnableScheduling public class App extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(App.class, args); } }
輸入spring-boot:run進行測試
打開瀏覽器輸入http://localhost:8080/demo/save
查看數據庫表中是否存入了數據
運行成功!
第二種方式(推薦)