Spring boot app动态更新数据库表
2016-03-05 12:18
381 查看
原文地址:http://www.qiyadeng.com/post/spring-boot-mysql-jpa?utm_source=tuicool&utm_medium=referral
本文向你展示如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置)。数据访问层我们将使用Spring Data JPA和Hibernate(JPA的实现之一)。
在你的项目中增加如下依赖文件
在src/main/resources/application.properties中设置数据源和jpa配置。
全部的配置都在如上的文件中了,不需要另外的XML配置和Java配置。
上文中的数据库配置,你需要换成你的数据库的地址和用户名密码。
hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建(根据Java实体的熟悉),这里可以看到更多得hibernate配置。
创建一个User实体,User包含三个属性id,email和name。User实体和Mysql数据库的users表相对应。
本例中UserDao非常简单,只需要继承CrudRespositroy即可,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll.
(比较神奇的时这些方法其实CrudRespositroy中其实并没有实现,并且通过对dao方法的命名还可以实现新的方法)
新建一个查询控制器UserController
6.application-Context里面加
<context:component-scan base-package="com...."/>
你可以使用浏览器访问url http://127.0.0.1:8080/get-by-email?email=qiyadeng@gmail.com
,可以获得用户的Id(你可以先在Mysql数据库中新增一条记录)。
本文向你展示如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置)。数据访问层我们将使用Spring Data JPA和Hibernate(JPA的实现之一)。
1.Maven pom.xml文件
在你的项目中增加如下依赖文件<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies>
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 # 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 = update # Naming strategy 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
全部的配置都在如上的文件中了,不需要另外的XML配置和Java配置。
上文中的数据库配置,你需要换成你的数据库的地址和用户名密码。
hibernate的ddl-auto=update配置表名,数据库的表和列会自动创建(根据Java实体的熟悉),这里可以看到更多得hibernate配置。
3.User实体(
创建一个User实体,User包含三个属性id,email和name。User实体和Mysql数据库的users表相对应。@Entity @Table(name = "users") public class User { // ============== // PRIVATE FIELDS // ============== // An autogenerated id (unique for each user in the db) @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; // The user email @NotNull private String email; // The user name @NotNull private String name; // ============== // PUBLIC METHODS // ============== public User() { } public User(long id) { this.id = id; } // Getter and setter methods // ... } // class User
4.User实体的数据访问层UserDao
本例中UserDao非常简单,只需要继承CrudRespositroy即可,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll.(比较神奇的时这些方法其实CrudRespositroy中其实并没有实现,并且通过对dao方法的命名还可以实现新的方法)
@Transactional public interface UserDao extends CrudRepository<User, Long> { public User findByEmail(String email); }
5.测试的控制器UserController
新建一个查询控制器UserController@Controller public class UserController { @RequestMapping("/get-by-email") @ResponseBody public String getByEmail(String email) { String userId; User user = userDao.findByEmail(email); if (user != null) { 4000 userId = String.valueOf(user.getId()); return "The user id is: " + userId; } return "user " + email + " is not exist."; } }
6.application-Context里面加
<context:component-scan base-package="com...."/>
你可以使用浏览器访问url http://127.0.0.1:8080/get-by-email?email=qiyadeng@gmail.com
,可以获得用户的Id(你可以先在Mysql数据库中新增一条记录)。
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案