1、在github上已有配置环境,如下链接,(需要环境JDK1.8及以上版本,Tomcat1.8及以上版本,搭建maven库,使用编译器IntellJ IDEA)

https://github.com/liushaoye/rent-shop/tree/master

2、进行修改application.properties

 ##############################服务器端口############################################
server.port=6000
#####################################################################################数据库连接设置################################################
spring.datasource.dbcp2.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/renttest?useUnicode=true&characterEncoding=UTF-8
spring.datasource.password=123456
###########################################################################数据库内部设置############################################################
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
####可以查看sq语句###
spring.jpa.show-sql=true
######################去除数据库表格生成的下划线############################
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

3、搭建对应表格的实体类

表格样式

对应实体类

 package com.easylab.rentshop.pojo;

 import com.easylab.base.SuperEntity;
import org.hibernate.annotations.*; import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Table; /**
* Created by
*
* @author: liuya
* @Date: 2018/5/23 9:44
* @Description: rent-shop
*
* 主类型实体类
*
*
*/ @Entity
@Table(name = "bommain")
public class BomMain extends SuperEntity { @Id
@GenericGenerator(strategy = "uuid", name = "mainId")
@GeneratedValue(generator = "mainId")
@Column(length = 40)
public String mainId; @Column(nullable = false, length = 50)
public String mainName; /**
* 所有字段的是否存在
*/
@Column(nullable = false, columnDefinition="int(1) default 1 COMMENT '当前是否删除'")
public Integer deleted; public BomMain() {
} public String getMainId() {
return mainId;
} public void setMainId(String mainId) {
this.mainId = mainId;
} public String getMainName() {
return mainName;
} public void setMainName(String mainName) {
this.mainName = mainName;
} public Integer getDeleted() {
return deleted;
} public void setDeleted(Integer deleted) {
this.deleted = deleted;
}
}

@Entity

标记在类名上面,作为实体类的标识

@Table

当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,

由于java中采用驼峰命名,而数据库中表的名字不是,所以这里使用了@Table注解

注解有属性  @Table(name=“”)使用注解名称后接括号的形式,使用内部属性,name用于指明数据库的表名,没用到的暂时不叙述

@Id
设置对象表示符,标识的实体类的属性映射对应表中的主键,mainId是表格的主键,所以采用此注解
@GeneratedValue
设置标识符的生成策略,常与@Id一起使用,参数:strategy指定具体的生成策略
@GenericGenerator注解是hibernate所提供的自定义主键生成策略生成器,由@GenericGenerator实现多定义的策略。所以,它要配合@GeneratedValue一起使用,并且@GeneratedValue注解中的”generator”属性要与@GenericGenerator注解中name属性一致,strategy属性表示hibernate的主键生成策略
这里想要实现字符型的主键,可以自动生成uuid,所以采用,如上配置,在@GenericGenerator配置属性是strategy = "uuid",同时,给@GeneratedValue应用,应用的名字就是name=generator="mainId"
@Column
描述数据库表中该字段的定义,具有一下属性
name:表示数据库表中该字段的名称,默认情形属性名称一致。
nullable:表示该字段是否允许为null,默认为true。
unique:表示该字段是否是唯一标识,默认为false。
length:表示该字段的大小,仅对String类型的字段有效。
insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为true。
updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为true。对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段。
columnDefinition:表示该字段在数据库中的实际类型。通常ORM框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是TIMESTAMP。此外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的BLOB或TEXT字段类型,该属性非常有用。
这里主要设置了字段的长度,所以选用了@Column(length=40),注意这个length只能是字符型才能生效,非字符,比如long和int,使用这个属性是无效的(关于其他类型的如下讲解,想了很久奥)
@Column(nullable = false, columnDefinition="int(1) default 1 COMMENT '当前是否删除'")
 

这里就是靠这个columnDefinition属性来设置非字符型字段的类型长度,因为这个注解可以实现拼接sql语句的作用,就是在当前这个字段下,可以添加其之后的sql语句,所以增强了字段的复合和自定义功能,

一般建立表格的语句就是下边这样

columnDefinition的作用就是(比如subId) varchar(40) NOT NULL COMMENT '子类型ID',它就是可以拼接一个varchar(40) NOT NULL COMMENT '到这个字段上.即可以设置长度,类型,是否为空,说明文字,默认值这些情况

IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA环境搭建,JPA实现非字符型设置长度的更多相关文章

  1. Spring Boot2.0 设置拦截器

    所有功能完成 配置登录认证 配置拦截器 在spring boot2.0 之后 通过继承这个WebMvcConfigurer类 就可以完成拦截 新建包com.example.interceptor; 创 ...

  2. Spring Boot2.0 静态资源被拦截问题

    在Spring Boot2.0+的版本中,只要用户自定义了拦截器,则静态资源会被拦截.但是在spring1.0+的版本中,是不会拦截静态资源的. 因此,在使用Spring Boot2.0+时,配置拦截 ...

  3. Spring Boot2.0使用Spring Security

     一.Spring Secutity简介     Spring 是一个非常流行和成功的 Java 应用开发框架.Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性 ...

  4. spring boot2.0(一 ) 基础环境搭建

    1.基础配置 开发环境:window jdk版本:1.8(spring boot2.0最低要求1.8) 开发工具:eclipse 构建方式:maven3 2.POM配置文件 <project x ...

  5. Spring Boot2.0 整合 Kafka

    Kafka 概述 Apache Kafka 是一个分布式流处理平台,用于构建实时的数据管道和流式的应用.它可以让你发布和订阅流式的记录,可以储存流式的记录,并且有较好的容错性,可以在流式记录产生时就进 ...

  6. Spring Boot2.0自定义配置文件使用

    声明: spring boot 1.5 以后,ConfigurationProperties取消locations属性,因此采用PropertySource注解配合使用 根据Spring Boot2. ...

  7. Spring boot2.0 设置文件上传大小限制

    今天把Spring boot版本升级到了2.0后,发现原来的文件上传大小限制设置不起作用了,原来的application.properties设置如下: spring.http.multipart.m ...

  8. spring boot 2.0(一)权威发布spring boot2.0

    Spring Boot2.0.0.RELEASE正式发布,在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误,然后Spring ...

  9. 【spring cloud】spring cloud2.X spring boot2.0.4调用feign配置Hystrix Dashboard 和 集成Turbine 【解决:Hystrix仪表盘Unable to connect to Command Metric Stream】【解决:Hystrix仪表盘Loading...】

    环境: <java.version>1.8</java.version><spring-boot.version>2.0.4.RELEASE</spring- ...

随机推荐

  1. Python: 浅淡Python中的属性(property)

    起源:项目过程中需要研究youtube_dl这个开源组件,翻阅其中对类的使用,对比c#及Delphi中实现,感觉Python属性机制挺有意思.区别与高级编程语言之单一入口,在类之属性这一方面,它随意的 ...

  2. Linux系统挂载只读改成读写

    1.mount命令可用于查看哪个模块输入只读,一般显示为: [root@localhost ~]# mount /dev/cciss/c0d0p2 on / type ext3 (rw) proc o ...

  3. opencv版本的问题

    opencv版本的问题(由于我安装了两个版本opencv-2.4.9 and opencv-3.1.0),搜了相关问题,可以通过修改了CMakeList.txt解决此问题. 参考了这个博客:http: ...

  4. mysql5.7 生成列 generated column

    生成列的值是根据列定义中的表达式计算得出的. mysql5.7支持两种类型的生成列: 1.virtual 生成列:当从表中读取记录时,才计算该列值.不会把数据持久化在硬盘上. 2.stored 生成列 ...

  5. YII2中验证码的使用

    验证码的使用是比较频繁的.YII2中已经帮我们做好了封装. 首先我们在控制器里创建一个actions方法,用于使用yii\captcha\CaptchaAction <?php namespac ...

  6. python 数据类型 总结

    按存储空间的占用分(从低到高) 数字 字符串 集合:无序,即无序存索引相关信息 元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的增删改 字典:无序,需要存k ...

  7. Oracle_PL/SQL(5) 包

    包1.定义:包用于逻辑组合相关的PL/SQL类型,项和子程序,由包规范和包体组成 建立包规范:包规范是包与应用程序之间的接口,用于定义包的公用组件, 包括常量,变量,游标,过程,函数等 建立包体:用于 ...

  8. angular2.0学习笔记4.npm常用指令记录及angular语法

    以下命令,都需要在命令行窗口中,先切入到项目文件夹目录,再执行 1.npm start 这个命令会在“监听”模式下运行TypeScript编译器,当代码变化时,它会自动重新编译. 同时,该命令还会在浏 ...

  9. nodejs 开发服务端 child_process 调试方法(1)

    由于最近正在做一个服务端项目,采用了nodejs引擎开发,主要是master-worker工作机制;主进程可以直接调试,但是子进程调试好像有点麻烦,我没有找到好的方法; worker这里,我分拆成了几 ...

  10. 6.26实力测试(小错笑cry)

    6.26测试 本次考试的粗心不忍吐槽(自带贴吧喷水表情),本次考试主要考察的知识点如下: 算法的分析与精简 暴力枚举输出字符 判断与枚举的综合考察 题目 第一题 [问题描述] 在一口井里,有一只神牛( ...