Spring data jpa操作数据库

来源:互联网 发布:javascript ajax例子 编辑:程序博客网 时间:2024/05/16 23:58

application.properties数据库连接信息

###########################################################datasource -- \u6307\u5b9amysql\u6570\u636e\u5e93\u8fde\u63a5\u4fe1\u606f.########################################################spring.datasource.url = jdbc:mysql://localhost:3306/db01spring.datasource.username = chenspring.datasource.password = ******spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.max-active=20spring.datasource.max-idle=8spring.datasource.min-idle=8spring.datasource.initial-size=10########################################################### Java Persistence Api --  Spring jpa\u7684\u914d\u7f6e\u4fe1\u606f.######################################################### Specify the DBMSspring.jpa.database = MYSQL# Show or not log for each sql queryspring.jpa.show-sql = true# Hibernate ddl auto (create, create-drop, update)spring.jpa.hibernate.ddl-auto = update# Naming strategy#[org.hibernate.cfg.ImprovedNamingStrategy  #org.hibernate.cfg.DefaultNamingStrategy]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.MySQL5Dialectmybatis.type-aliases-package=com.csl.demo.entity

pom.xml依赖文件

<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.csl.demo</groupId>    <artifactId>demo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>demo</name>    <description></description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.4.5.RELEASE</version>    </parent>    <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>            <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>        <!-- 添加MySQL数据库驱动依赖包. -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <!-- 添加Spring-data-jpa依赖. -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-jpa</artifactId>        </dependency>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.1.1</version>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <fork>true</fork>                </configuration>            </plugin>        </plugins>    </build></project>

实体类

package com.csl.demo.entity;import javax.persistence.*;/** *  * @author Cherry * @date 2017年10月6日 * */@Entitypublic class Music {        @Id        @GeneratedValue(strategy=GenerationType.AUTO)        private Integer id;        private String name;        private String Singer;        //..........}

JpaRepository接口继承了PagingAndSortingRepository可以实现分页,接口中有crud之操作

package com.csl.demo.dao;import org.springframework.data.jpa.repository.JpaRepository;import com.csl.demo.entity.Music;/** *  * @author Cherry * @date 2017年10月6日 * */public interface MusicRepository extends JpaRepository<Music, Integer> {    //自定义方法    Music findById(Integer id);}

Music业务类

package com.csl.demo.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.stereotype.Repository;import com.csl.demo.dao.MusicRepository;import com.csl.demo.entity.Music;/** *  * @author Cherry * @date 2017年10月6日 * */@Repositorypublic class MusicServices {        @Autowired        private MusicRepository musicRepository;        public void save(Music music){            musicRepository.save(music);        }        public Page<Music> list(PageRequest Page){            return musicRepository.findAll(Page);        }        public Music findById(Integer id){            return musicRepository.findOne(id);        }        public void delById(Integer id){            musicRepository.delete(id);        }        public Music ListIds(Integer id){            return musicRepository.findById(id);        }}

Controller类

package com.csl.demo.controller;import java.util.List;import javax.transaction.Transactional;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.PageRequest;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.csl.demo.entity.Music;import com.csl.demo.service.MusicServices;/** *  * @author Cherry * @date 2017年10月6日 * */@RestController@RequestMapping("/music")public class MusicController {        @Autowired        private MusicServices musicServices;        @Transactional        @RequestMapping("/save")        public String save(){            musicServices.save(new Music("路边的野花","邓丽君"));            musicServices.save(new Music("爱你在心口难开","邓丽君"));            musicServices.save(new Music("月亮代表我的心","邓丽君"));            musicServices.save(new Music("海韵","邓丽君"));            musicServices.save(new Music("月如钩","邓丽君"));            return "ok !";        }        @RequestMapping("/list")        public List<Music> list(Integer i){            PageRequest page = new PageRequest(i,4);            return musicServices.list(page).getContent();        }        @RequestMapping("/find")        public Music findOne(Integer id){            return musicServices.findById(id);        }        @RequestMapping("/del")        @Transactional        public String del(Integer id) {            musicServices.delById(id);            return "Delete Success !";        }        @RequestMapping("/show")        public Music listIds(Integer id){            return musicServices.ListIds(id);        }}

启动类

package com.csl;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** *  * @author Cherry * @date 2017年10月6日 * */@SpringBootApplicationpublic class App {    public static void main(String[] args) {        SpringApplication.run(App.class, args);    }}