1.主要pom依赖:

<!--jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

2.userDao:

public interface UserDao extends JpaRepository<User, Long>{

    User findByUserName(String userName);
User findByUserNameAndPassword(String userName, String password);
}

这里继承JpaRepository后,会有主要的增删改查方法,还有查询所有list(), 分页查询list() 等基础方法。如果要自定义方法,可根据jpa标准来定义,比如:

//根据用户名查询单个用户:  User findOneByUserName(String userName);

//根据用户名查询多个用户:  List<User> findAllByUserName(String userName);

3.测试:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainApp.class)
public class ServiceTest { @Autowired
private UserDao userDao;
@Autowired
private UserService userService; private ObjectMapper objectMapper = new ObjectMapper(); @Test
public void testAll() throws JsonProcessingException { this.saveUser();
this.list(); } private void saveUser() throws JsonProcessingException {
User admin = new User();
admin.setUserName("admin");
admin.setPassword("admin");
User adminSave = userDao.save(admin);
System.out.println("admin save--->:" + objectMapper.writeValueAsString(adminSave));
User user = new User();
user.setUserName("user");
user.setPassword("user");
User userSave = userDao.save(user);
System.out.println("user save--->:" + objectMapper.writeValueAsString(userSave));
} private void list() throws JsonProcessingException {
List<User> userList = userService.userList();
System.out.println("用户列表:" + objectMapper.writeValueAsString(userList));
} }

结果:

Hibernate: insert into user (password, user_name) values (?, ?)
admin save--->:{"id":1,"userName":"admin","password":"admin"}
Hibernate: insert into user (password, user_name) values (?, ?)
user save--->:{"id":2,"userName":"user","password":"user"} Hibernate: select user0_.id as id1_0_, user0_.password as password2_0_, user0_.user_name as user_nam3_0_ from user user0_
用户列表:[{"id":1,"userName":"admin","password":"admin"},{"id":2,"userName":"user","password":"user"}]

源码地址:https://github.com/yangzhenlong/mySpringBootDemo

 

springboot08-jpa-mysql的更多相关文章

  1. Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...

  2. springboot+jpa+mysql+redis+swagger整合步骤

    springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在电脑上先安装redis: 一.在pom.xml中引入redis 二.在application.yml里配置r ...

  3. springboot+jpa+mysql+swagger整合

    Springboot+jpa+MySQL+swagger整合 创建一个springboot web项目 <dependencies> <dependency>      < ...

  4. SpringBoot入门系列:第五篇 JPA mysql(转)

    一,准备工作,建立spring-boot-sample-mysql工程1.http://start.spring.io/ A.Artifact中输入spring-boot-sample-mysql B ...

  5. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 方法一 使用原生sql查询 或者 为方法名增加 ...

  6. SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一

    SpringBoot 使用JPA+MySQL+Thymeleaf 总结 一 SpringBoot 使用JPA+MySQL+Thymeleaf 总结 二 pom引用 <?xml version=& ...

  7. spring-boot jpa mysql emoji utfmb4 异常处理

    spring-boot jpa mysql utf8mb4 emoji 写入失败 mysql database,table,column 默认为utf8mb4 Caused by: java.sql. ...

  8. IDEA SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统

    先放上github地址:spike-system,可以直接下载完整项目运行测试 SpringBoot+JPA+MySql+Redis+RabbitMQ 秒杀系统 技术栈:SpringBoot, MyS ...

  9. JPA mysql wildfly jboss 存储时乱码

    首先确保mysql的库,表创建时指定的字符集collation. 可以直接用命令行插入中文,看查询出来是不是中文. insert into live_main_sync (cn_name, creat ...

  10. Hibernate | Spring JPA | MySQL 使用过程遇到的一些问题

    1. 使用过程 2. 背景 3. 遇到问题 3.1 不指定Hibernate数据库方言,默认SQL生成方式 3.2 抛出异常Hibernate加入了@Transactional事务不会回滚 3.3 H ...

随机推荐

  1. POJ--1056 IMMEDIATE DECODABILITY && POJ--3630 Phone List(字典树)

    题目链接 题目大意 看输入的每个字符串中是否有一个字符串是另一个字符串的前缀 #include<iostream> #include<cstring> #include< ...

  2. spring boot 连接mysql mongodb with jpa

    https://github.com/bigben0123/gs-accessing-data-mysql-mongo-jpa

  3. Surface Pro 4 系统优化全教程及QA

    甲.如何根据你的需求选择相应版本的surface1.Core M3-6Y30,Core i5-6300U,Core i7-6650U的性能差距有多大?2.HD 515,HD520,Iris 540的性 ...

  4. VSCode删除重复的空行

    输入^\s\n 选择使用正则表达式

  5. Java基本类型占用字节数(或 bit数)

    背景:面试时候问到int类型占用几个字节,以及表示的大小,居然一脸懵逼,任何细节都不能放过. Java基本类型占用字节数(或 bit数) java是跨平台的语言,所以不论在什么系统中这些东西在内存中所 ...

  6. bs4抓取糗事百科

    抓取糗事百科内容及评论,不包含图片信息.user-agent填入浏览器的即可.user-agent对应的value,360极速浏览器的话,可以在地址栏输入about:version,回车,用户代理后面 ...

  7. jQuery ajax 传递JSON数组到Spring Controller

    jQuery ajax传递单个JSON对象到后台很容易,这里记录的是传递多个JSON对象组成的JSON数组到java 后台,并说明java如何解析JSON数组. 1.js代码 var relation ...

  8. vcf文件去除非变异的基因型(use GATK exclude nonvariant in vcf format,0|0,0/0)

    对于某些特殊vcf,想去除没有变异的基因型(主要形式为0|0或者0/0),则需要用到GATK的--excludeNonVariants参数,命令行如下: java -Xmx8g -jar Genome ...

  9. java 学习:在java中启动其他应用,由jenkins想到的

    在jenkins的实践中遇到了一个问题: 我的项目依赖其他第三方应用的地方比较多,而且会占用多个端口,如何处理端口和启动/关闭第三方应用成了难题. 初级解决方案:在服务端上面写一堆bat文件,,,,_ ...

  10. xrange与range的区别

    xrange属于类,继承自object. 用法: xrange(stop) -> xrange object xrange(start, stop[, step]) -> xrange o ...