Spring boot结合Mysql
来源:互联网 发布:mac拷贝文件到ntfs 编辑:程序博客网 时间:2024/06/05 07:55
刚接触SpringBoot之后才见识到他的强大
在搭建最基础的spring boot项目之后 结合数据库进行操作
spring boot 给我们提供了Spring data Jpa 是一个十分便利的功能
真的想感叹一下框架给我们开发带来的便利 下面是项目结构
首先在pom.xml中加入spring boot 数据库操作依赖
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
再加入spring boot test的依赖
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.12.RELEASE</version> </dependency>
最终的pom.xml是这样的
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.l</groupId> <artifactId>springBoot</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>springBoot Maven Webapp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <!-- Add typical dependencies for a web application --> <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>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.12.RELEASE</version> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <finalName>springBoot</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
新建application.java
package springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
在resource目录中新建application.properties配置文件来配置数据库属性,这里使用的是mysql数据库
在一开始时我使用database.properties来命名导致配置不加载 不知道是不是一定要命名成这个
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=truespring.datasource.username=rootspring.datasource.password=1234spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.jpa.properties.hibernate.hbm2ddl.auto=updatespring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialectspring.jpa.show-sql=true
新建User实体类
package springboot.domain;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import java.io.Serializable;@Entitypublic class User implements Serializable { private static final Long serialVersionUID = 1L; private Long id; private String userName; private String password; public User() { } public User(Long id, String userName, String password) { this.id = id; this.userName = userName; this.password = password; } @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } @Column public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
接口只需要实现JpaRepository就可以使用,实现接口之后,他的便利之处就显示出来了
接口会根据方法的名字进行sql语句的拼写,
package springboot.domain;import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface UserDao extends JpaRepository<User, Long> { User findByUserName(String name); User findByUserNameOrPassword(String username, String password); List<User> findAllByIdIsIn(List<Long> longList);}
直接调用接口操作,这里使用spring boot test来进行测试
package springboot.domain;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.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import springboot.Application;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)//// 指定我们SpringBoot工程的Application启动类@SpringBootTest(classes = Application.class)///由于是Web项目,Junit需要模拟ServletContext,///因此我们需要给我们的测试类加上@WebAppConfiguration。@WebAppConfigurationpublic class UserDaoTests { @Autowired private UserDao userDao; @Test public void test() { SimpleDateFormat sdf = new SimpleDateFormat("yy-mm-dd"); sdf.format(new Date());// userDao.save(new User(11L, "jack", "123"));// Assert.assertEquals(3, userDao.findAll().size()); System.out.println(userDao.findByUserName("jack").getPassword()); Assert.assertEquals("123", userDao.findByUserName("jack").getPassword()); List<Long> list = new ArrayList<Long>(); list.add(1L); list.add(2L); List<User> userList = userDao.findAllByIdIsIn(list); for (User user : userList){ System.out.println(user.getUserName()); } }}
从以上方法中可以看出 ,并没有重写 findAllByIdIsIn方法 但是却实现了想要的效果 这就是JpaRepository接口的效果,根据提示可以拼出各种方法而且可以一眼从方法名中了解到方法的实现
阅读全文
1 0
- Spring boot结合Mysql
- spring-boot结合mysql整合mybatis
- spring-boot结合mysql配置数据库连接池
- Spring boot结合Spring-Data-JPA操作MySQL数据库
- spring boot cxf 结合
- spring boot mybatis结合初探
- spring-boot与mybatis结合
- Spring boot 与RestEasy结合
- Spring Boot结合spring-data-jpa
- spring boot + gradle + mysql
- spring boot设定mysql
- spring boot mysql配置
- spring-boot集成mysql
- spring-boot结合logback日志框架
- eayui结合Spring Boot实现客户端分页
- spring boot与activemq的结合使用
- spring boot结合spring security实现注册后自动登录
- spring boot 安全关闭服务,结合spring security
- C语言的AT指令
- c语言文件读写
- Maven的基础安装和使用
- 构造方法与构造代码
- hibernate中@Entity和@Table的区别
- Spring boot结合Mysql
- 等差数列和等比数列的公式、法则、定理
- 自觉java
- Android之ndk编译出现这个错误error: unused variable 'a' [-Werror=unused-variable]
- android_GreenDao简单使用
- Java学习——面向对象之继承
- ArcGIS矢量数据模型
- js动态添加input按钮并给按钮增加onclick的函数事件(带参数)
- 使用时间序列分解模型预测商品销量