Spring Boot JPA访问Mysql示例

网友投稿 226 2023-06-01


Spring Boot JPA访问Mysql示例

上篇演示了通过Maven构建Spring Boot 项目,引用web模块启动应用,完成简单的web 应用访问,本章内容在此基础上面加入数据访问与端口修改,下文代码与演例(本用例纯手工测试通过,放心入坑)。

修改默认端口

在src\main\resources下加入application.properties内容如下

server.port=8888

项目目录结构

启动应用,日志显示:

端口已经由默认的8080 变更为8888

JPA访问mysql数据库

1、POM中加入

org.springframework.boot

spring-boot-starter-data-jpa

RELEASE

mysql

mysql-connector-java

2、在src\test\resources下加入application.properties内容如下(正式应用中请把配置加入至src\main\resources下application.properties中):

server.port=8888

spring.datasource.url=jdbc:mysql://localhost:3306/test

spring.datasource.username=dbuser

spring.datasource.password=dbpass

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop

create : 会根据你的model类来生成表,但是每次运行都会删除上一次的表,重新生成表,哪怕2次没有任何改变 (生产禁用,不小心用了会哭的。。)

create-drop : 根据model类生成表,但是sessionFactory一关闭,表就自动删除 (生产禁用)

update : 最常用的属性,也根据model类生成表,即使表结构改变了,表中的行仍然存在,不会删除以前的行

validate : 只会和数据库中的表进行比较,不会创建新表,但是会插入新值

3、新建实体

src\main\java\com\entity\User.java

package com.entity;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

import java.io.Serializable;

@Entity

@Table(name="t_user")

public class User implements Serializable {

private static final long serialVersionUID = -3258839839160856613L;

@Id

@GeneratedValue

private Long id;

private String name;

private String moblie;

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getMoblie() {

return moblie;

}

public void setMoblie(String moblie) {

this.moblie = moblie;

}

}

新建数据访问接口(JPA)

src\main\java\com\dao\UserRepository .java

package com.dao;

import entity.User;

import org.springframework.data.jpa.repository.JpaRepository;

/**

* Description:

* date: 2017/3/15 16:28

*/

public interface UserRepository extends JpaRepository {

User findByName(String name);

}

从源码上面可以看出,JpaRepository已经实现了save(更新与保存)、delete、getOne、findAll等方法,所以对于基础数据的操作,接口上不需要再定义,直接使用就好。

//

// Source code recreated from a .class file by IntelliJ IDEA

// (powered by Fernflower decompiler)

//

package org.springframework.data.jpa.repository;

import java.io.Serializable;

import java.util.List;

import org.springframework.data.domain.Example;

import org.springframework.data.domain.Sort;

import org.springframework.data.repository.NoRepositoryBean;

import org.springframework.data.repository.PagingAndSortingRepository;

import org.springframework.data.repository.query.QueryByExampleExecutor;

@NoRepositoryBean

public interface JpaRepository extends PagingAndSortingRepository, QueryByExampleExecutor {

List findAll();

List findAll(Sort var1);

List findAll(Iterable var1);

List save(Iterable var1);

void flush();

S saveAndFlush(S var1);

void deleteInBatch(Iterable var1);

void deleteAllInBatch();

T getOne(ID var1);

List findAll(Example var1);

List findAll(Example var1, Sort var2);

}

4.编写对应的单元测试来验证编写的内容是否正确

POM中加入

org.springframework.boot

sprihttp://ng-boot-starter-test

创建单元测试用例

src\test\java\UserTest.java

import com.SampleController;

import com.dao.UserRepository;

import com.entity.User;

import org.junit.Assert;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

/**

* date: 2017/3/15 17:21

*/

@RunWith(SpringRunner.class)

@SpringBootTest(clhttp://asses = SampleController.class)

public cwvRxSGtVxxlass UserTest {

@Autowired

private UserRepository userRepository;

@Test

public void saveTest() {

User user = new User();

user.setName("王大锤");

user.setMoblie("13300000000");

userRepository.save(user);

Assert.assertEquals("13300000000", userRepository.findByName("王大锤").getMoblie());

}

}

运行结果示例


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Bootstrap警告框(Alert)插件使用方法
下一篇:Spring Boot如何解决Mysql断连问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~