SpringBoot+JPA
1)pom.xml添加MySQL,spring-data-jpa依赖
<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.properties文件中配置MySQL连接配置文件
########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
########################################################
### Java Persistence Api
########################################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.generate.ddl = true
spring.jpa.hibernate.ddl-auto= update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
4)测试
实体类:@Entity标注类上,进行实体类的持久化操作,当JPA检测到我们的实体类当中有@Entity 注解的时候,会在数据库中生成对应的表结构信息。使用@Id指定主键, 使用代码@GeneratedValue(strategy=GenerationType.AUTO) 指定主键的生成策略,mysql默认的是自增长,例:@Id @GeneratedValue(strategy=GenerationType.AUTO)private int id;//主键.
Repository接口:Repository 接口是 Spring Data 的一个核心接口,它不提供任何方法,开发者需要在自己定义的接口中声明需要的方法 :public interface Repository<T, ID extends Serializable> { }
public interface CatRepository extends CrudRepository<Cat, Integer>{
/* 查询方法以find | read | get开头;涉及查询条件时,条件的属性用条件关键字连接,要注意的是条件属性以首字母大写;使用@Query注解可以自定义JPQL语句实现更灵活的查询 */
@Query("from Cat where catName=:cn")
public Cat findMyCatName(@Param("cn")String catName);
}
service实现类:
@Service
public class CatService {
@Resource
private CatRepository catRepository;//service的接口
@Transactional//事务的绑定.
public void save(Cat cat){
catRepository.save(cat);
}
}
如果jdk9 pom.xml添加
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId><version>2.3.0</version></dependency>