九.Spring Boot JPAHibernateSpring Data

一、項目結構html

clipboard

二、導入jar包java

<!-- 添加Spring-data-jpa依賴. -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

三、添加並編輯 文件:application.propertiesmysql

clipboard

spring.datasource.url = jdbc:mysql://localhost:3306/AppleforWindows_test1?characterEncoding=utf8&useSSL=true
說明:5.7的mysql必須加入:characterEncoding=utf8&useSSL=true
spring.datasource.username = root
spring.datasource.password = AppleforWindows
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
自動在數據庫建立table表
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
#[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.MySQL5Dialect

四、添加實體類set\getweb

package com.ld.bean;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import com.alibaba.fastjson.annotation.JSONField;

/*建立了一個實體類。
* 
* 如何持久化呢?
* 
* 一、使用@Entity進行實體類的持久化操做,當JPA檢測到咱們的實體類當中有
* 
* @Entity 註解的時候,會在數據庫中生成對應的表結構信息。
* 
* 
* 如何指定主鍵以及主鍵的生成策略?
* 
* 二、使用@Id指定主鍵.*/
@Entity
public class SysUser {
    
    /*設置爲主鍵*/
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String name;
    private String phone;
    private String mail;
    @JSONField(format="yyyy-MM-dd HH:mm")
    private Date createTime;
    private String remark;
    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 getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getMail() {
        return mail;
    }
    public void setMail(String mail) {
        this.mail = mail;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    

}

六、建立serverspring

提示:可根據自定義查看(DAORepository 接口並繼承 CrudRepository<T, Integer>該類的源碼)sql

package com.ld.service;

import javax.annotation.Resource;
import javax.transaction.Transactional;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import com.ld.bean.SysUser;
import com.ld.repository.SysUserRepository;


@Service("sysUserService")
public class SysUserService {
    static final Logger logger = LoggerFactory.getLogger(SysUserService.class);

    @Resource
    private SysUserRepository sysUserRepository;

    public Iterable<SysUser> findAll() {
        logger.info("=>:findAll");
        return sysUserRepository.findAll();
    }

    public SysUser findOne(Integer id) {
        logger.info("=>:findOne");
        return sysUserRepository.findOne(id);
    }
    
    @Transactional
    public SysUser save(SysUser sysUser) {
        logger.info("=>:save");
        return sysUserRepository.save(sysUser);
    }

    public long count() {
        logger.info("=>:count");
        return sysUserRepository.count();
    }
    @Transactional
    public void delete(Integer id) {
        logger.info("=>:delete");
        sysUserRepository.delete(id);
    }
}

七、測試controller數據庫

package com.ld.controller;

import java.util.Date;

import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.ld.bean.SysUser;
import com.ld.service.SysUserService;
import com.ld.util.CommonTool;

@RestController
@RequestMapping("sysUserWeb")
public class SysUserWeb {
    @Resource
    private  SysUserService sysUserService;
    @RequestMapping("/index")
    public ModelAndView index(){
        ModelAndView mv = new ModelAndView("redirect:AmazeUI/error.html");
        return mv;
    }
    @RequestMapping("/getAll")
    @ResponseBody
    public Iterable<SysUser> getAll(){
        return sysUserService.findAll();
    }
    @RequestMapping("/save")
    @ResponseBody
    public SysUser save(){
        SysUser sysUser = new SysUser();
        sysUser.setName(CommonTool.getRandomString(6));
        sysUser.setPhone(CommonTool.getRandomPhone());
        sysUser.setMail(CommonTool.getRandomMail());
        sysUser.setCreateTime(new Date());
        sysUserService.save(sysUser);
        return sysUser;
    }
    @RequestMapping("/queryOne")
    @ResponseBody
    public SysUser queryOne(){
        return sysUserService.findOne(1);
    }
}
相關文章
相關標籤/搜索