zoukankan      html  css  js  c++  java
  • 九.Spring Boot JPAHibernateSpring Data

    1、项目结构

    clipboard

    2、导入jar包

    <!-- 添加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>

    3、添加并编辑 文件:application.properties

    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

    4、添加实体类setget

    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;
    
    /*创建了一个实体类。
    * 
    * 如何持久化呢?
    * 
    * 1、使用@Entity进行实体类的持久化操作,当JPA检测到我们的实体类当中有
    * 
    * @Entity 注解的时候,会在数据库中生成对应的表结构信息。
    * 
    * 
    * 如何指定主键以及主键的生成策略?
    * 
    * 2、使用@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;
        }
        
    
    }

    6、创建server

    提示:可根据自定义查看(DAORepository 接口并继承 CrudRepository<T, Integer>该类的源码)

    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);
        }
    }

    7、测试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);
        }
    }
  • 相关阅读:
    【python】新创建一个列表,并向内添加元素 and 列表中查询最大值位置和最小值位置
    【python】python从命令行读入参数
    【开发环境安装笔记 】微软Visual Studio2012中文旗舰版(完美破解版)
    【Python笔记】Python读取word文本操作详解
    【安装---WIN7--cnpm】win7实测安装npm,cnpm
    【安装---WIN7--Vuejs】Vue.js 安装及其环境搭建
    【安装---WIN7--nodejs】win7安装 nodejs,npm
    【安装--达梦】Linux(中科方德服务器版4.0)安装达梦数据库V8
    【安装—ES】ES数据库安装6.6b版本
    【centos系统--安装--异常】server重装系统后,远程登录提示主机密钥验证失败的解决办法
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/6683672.html
Copyright © 2011-2022 走看看