在IDEA中使用spring-boot,mySql,JPA

本篇介绍如何用最少的代码和配置在Spring Boot web application中使用Mysql,数据层使用Spring Data JPA

1.使用ItelliJ IDEA创建spring initializr工程 

2.在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>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
   </dependency>
</dependencies>
3.在resources下添加application.properties 添加配置信息

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
# 在控制台显示自动生成的sql语句
# Show or not log for each sql query
spring.jpa.show-sql = true
# 项目启动的时候Hibernate会自动创建表和更新表
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update
# 命名策略
# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# RDBMS 方言, 这里选用MySQL5Dialect
# stripped before adding them to the entity manager)
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
这里的数据库连接用自己的数据库
4.创建一个实体类
@Entity标注这个类为JPA的一个实体 
@Table来指定在数据库中的表名
@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
标注主键id自增 
package com.springboot1;

import javax.persistence.*;
import javax.validation.constraints.NotNull;

/**
 * Created by 340092 on 2017/11/20.
 */
@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    // The user email
    @NotNull
    private String email;
    // The user name
    @NotNull
    private String name;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
这个时候用spring-boot:run启动项目就可以看到这个表已经在数据库中生成了
5.User实体的数据访问层UserDao(
本例中UserDao非常简单,只需要继承CrudRespositroy即可,CrudRespositroy已经实现了save,delete,deleteAll,findOne和findAll
 注意,只要接口,不需要任何实现)
package com.springboot1;

import org.springframework.data.repository.CrudRepository;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public interface UserDao  extends CrudRepository<User, Long> {
   
    public User findByEmail(String email);
}

紧紧以上这些代码和配置就可以访问数据库了,非常的简单,下面通过控制器来测试一下 
package com.springboot1;

/**
 * Created by 340092 on 2017/11/20.
 */

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * @RestController 相当于@ControllerRequestBody
 * Created by 340092 on 2017/11/16.
 */
@RestController
public class HelloController {
    @Autowired
    UserDao userDao;

    /**
     * GET /create  --> Create a new user and save it in the database.
     */
    @RequestMapping(value = "/create",produces="text/html;charset=UTF-8",method = RequestMethod.GET)
    public String create(String email, String name) {
        String userId = "";
        try {
            User user = new User(email, name);
            userDao.save(user);
            userId = String.valueOf(user.getId());
        }
        catch (Exception ex) {
            return "Error creating the user: " + ex.toString();
        }
        return "User succesfully created with id = " + userId;
    }
}
访问http://localhost:8080/create?email=qq.com&name=张三即可.


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值