详解在Spring Boot中使用Mysql和JPA
本文向你展示如何在SpringBoot的Web应用中使用Mysq数据库,也充分展示SpringBoot的优势(尽可能少的代码和配置)。数据访问层我们将使用SpringDataJPA和Hibernate(JPA的实现之一)。
1.Mavenpom.xml文件
在你的项目中增加如下依赖文件
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java
2.属性配置文件application.properties
在src/main/resources/application.properties中设置数据源和jpa配置。
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driverClassName=com.mysql.jdbc.Driver #SpecifytheDBMS spring.jpa.database=MYSQL #Showornotlogforeachsqlquery spring.jpa.show-sql=true #Hibernateddlauto(create,create-drop,update) spring.jpa.hibernate.ddl-auto=update #Namingstrategy spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy #strippedbeforeaddingthemtotheentitymanager) spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
全部的配置都在如上的文件中了,不需要另外的XML配置和Java配置。
上文中的数据库配置,你需要换成你的数据库的地址和用户名密码。
hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建(根据Java实体的熟悉),这里可以看到更多得hibernate配置。
3.User实体
创建一个User实体,User包含三个属性id,email和name。User实体和Mysql数据库的users表相对应。
@Entity
@Table(name="users")
publicclassUser{
//==============
//PRIVATEFIELDS
//==============
//Anautogeneratedid(uniqueforeachuserinthedb)
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
privatelongid;
//Theuseremail
@NotNull
privateStringemail;
//Theusername
@NotNull
privateStringname;
//==============
//PUBLICMETHODS
//==============
publicUser(){}
publicUser(longid){
this.id=id;
}
//Getterandsettermethods
//...
}//classUser
4.User实体的数据访问层UserDao
本例中UserDao非常简单,只需要继承CrudRespositroy即可,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll.(比较神奇的时这些方法其实CrudRespositroy中其实并没有实现,并且通过对dao方法的命名还可以实现新的方法)
@Transactional publicinterfaceUserDaoextendsCrudRepository{ publicUserfindByEmail(Stringemail); }
5.测试的控制器UserController
新建一个查询控制器UserController
@Controller
publicclassUserController{
@RequestMapping("/get-by-email")
@ResponseBody
publicStringgetByEmail(Stringemail){
StringuserId;
Useruser=userDao.findByEmail(email);
if(user!=null){
userId=String.valueOf(user.getId());
return"Theuseridis:"+userId;
}
return"user"+email+"isnotexist.";
}
}
你可以使用浏览器访问urlhttp://127.0.0.1:8080/get-by-email?email=qiyadeng@gmail.com,可以获得用户的Id(你可以先在Mysql数据库中新增一条记录)。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。