springboot mysql resp_详解在Spring Boot中使用Mysql和JPA

本文向你展示如何在spring boot的web应用中使用mysq数据库,也充分展示spring boot的优势(尽可能少的代码和配置)。数据访问层我们将使用spring data jpa和hibernate(jpa的实现之一)。

1.maven pom.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

# 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 {

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) {

userid = string.valueof(user.getid());

return "the user id is: " + userid;

}

return "user " + email + " is not exist.";

}

}

你可以使用浏览器访问url http://127.0.0.1:8080/get-by-email?email=qiyadeng@gmail.com,可以获得用户的id(你可以先在mysql数据库中新增一条记录)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值