数据表

spring data jpa遇到的一些琐碎问题

核能气质少年 提交于 2019-12-03 19:51:24
jpa是几年前就已经接触过了,不过中间隔了好久没使用过,忘了不少细节上的问题。今天就来分享下在项目中遇到的一些坑吧,应该都比较基础,注意就好。 1.对象与表的映射。 全程采用注解形式,对象中的字段可以根据数据表的字段进行定义,但是在建数据表的时候要保证数据表字段都要是大写,否则在关联关系(如:一对多,多对一,多对多等)上一直会出错,说找不到对应的列。对于对象的get、set方法,可以直接采用简便的@Data在类上进行标注即可,然后在属性上添加字段的映射注解。 2.对象的构造方法的注入 很多时候,我们会根据业务来写HQL,但是HQL自身的功能有限不能完全满足业务,我们会根据需要来查询对象,有的时候要查询一张数据表中不存在的字段,这时候要在对象中添加需要的属性,并且要给该属性添加@Transient注解,同时给该对象添加一个构造方法public User(Long id,String deptName) { this...省略},显然默认的构造方法一定要加上public User() { },这样就可以实现多个对象的关系关联,查询的时候就可以这样select new User(u.id,d.deptName) from User u,Dept d where u.deptId = d.id; 3.聚合函数在构造器中的注入 在业务统计的时候,会涉及到一些数据的统计。这时候数据库的sum

创建数据表

爷,独闯天下 提交于 2019-12-03 16:42:22
CREATE TABLE [IF NOT EXISTS] table_name (column_name data_type,......) 有符号类型 signed 无符号类型 unsigned 如字段年龄 ,明显是不可能有负数类型 选择 unsigned CREATE TABLE tb1( username VARCHAR(20);//用户名称 字符型 age TINYINT UNSIGNED,//年龄 整型无负数 salary FLOAT(8,2) UNSIGNED//工资 浮点型 整数6位 小数2位 无负数 ); 来源: https://www.cnblogs.com/2019huha/p/11803069.html

SQL 创建表

坚强是说给别人听的谎言 提交于 2019-12-03 15:46:57
SQL 创建表是通过SQL CREATE TABLE 语句来实现,该语句是DDL SQL语句 。CREATE TABLE语句用于创建用于存储数据的表。在创建表时,可以为列定义主键、惟一键和外键等完整性约束。完整性约束可以在列级或表级定义。对于不同的RDBMS, CREATE语句的实现和语法是不同的。 CREATE TABLE语句语法 CREATE TABLE table_name (column_name1 datatype, column_name2 datatype,... column_nameN datatype); SQL table_name—是表的名称 column_name1, column_name2 ….-是列的名称 datatype -是列的数据类型,比如char、date、number等 例如:如果要创建employee表,语句应该是这样的: CREATE TABLE employee ( id number(5), name char(20), dept char(10), age number(2), salary number(10), location char(10)); SQL 在Oracle数据库中,整数列的数据类型表示为“number”。在Sybase中,它表示为“int”。 Oracle提供了另一种创建表的方法。 CREATE TABLE

SQL 查询 SELECT

℡╲_俬逩灬. 提交于 2019-12-03 15:46:44
SQL 查询是通过SELECT SQL 语句 来完成的。SELECT可以说是SQL中最常用的语句了。你可以把SQL语句看作是英语语句,SELECT就是SQL中的关键字之一,除了SELECT之外,还有INSERT、DELETE、UPDATE等关键字,这些关键字是SQL的保留字,这样可以很方便地帮助我们分析理解SQL语句。我们在定义数据库表名、字段名和变量名时,要尽量避免使用这些保留字。 SELECT的作用是从一个表或多个表中检索出想要的数据行。本文极客教程主要讲解SELECT的基础查询,后面极客教程会介绍如何通过多个表的连接操作进行复杂的查询。 SELECT查询的基础语法 SELECT可以帮助我们从一个表或多个表中进行数据查询。我们知道一个数据表是由列(字段名)和行(数据行)组成的,我们要返回满足条件的数据行,就需要在SELECT后面加上我们想要查询的列名,可以是一列,也可以是多个列。如果你不知道所有列名都有什么,也可以检索所有列。 创建了一个王者荣耀英雄数据表,这张表里一共有69个英雄,23个属性值(不包括英雄名name)。SQL文件见 Github地址 。 数据表中这24个字段(除了id以外),分别代表的含义见下图。 查询列 如果我们想要对数据表中的某一列进行检索,在SELECT后面加上这个列的字段名即可。比如我们想要检索数据表中都有哪些英雄。 SELECT name FROM

day38

丶灬走出姿态 提交于 2019-12-03 11:43:16
目录 exec模块 什么是exec? 是python的一个内置模块 它的作用? ''' x = 10 def func1(): pass ''' 怎么用: 参数1:字符串形式的python代码 参数2:全局名称空间字典 参数3:局部名称空间字典 调用exec() 元类 什么是元类? 元类就是类的类,Chinese类的类是type,type是所有类的类,type就是一个元类 元类的作用? 元类可以帮我们控制类的创建 元类可以帮我们控制类的调用 怎么自定义创建元类? 自定义一个元类,继承type,派生出自己的属性与方法 给需要使用的类,通过metaclass指定自定义好的元类 ​ -class Chinese(metaclass='自定义的元类'): 创建类的两种方式: 通过class关键字创建类,内部会自动调用type(),type帮我们创建一个自定义类 通过手动调用type()实例化得到自定义的类 ORM:对象关系映射——>映射到数据库MYSQL中的数据表 类名——>表名 对象——>一条记录 对象.属性——>字段 模拟Django的ORM,为了,将数据库的增删改查,全部封装成一个个的方式,比如,save,delete,updata,select 元类需要处理的问题: 给数据表类,强制必须要有一个主键 主键必须是唯一的 将数据表中,所有的字段对象,都存放在一个独立的字典中,存不是目的

thinkphp 字段定义

戏子无情 提交于 2019-12-03 11:00:03
通常每个模型类是操作某个数据表,在大多数情况下,系统会自动获取当前数据表的字段信息。 系统会在模型首次实例化的时候自动获取数据表的字段信息(而且只需要一次,以后会永久缓存字段信息,除非设置不缓存或者删除),如果是调试模式则不会生成字段缓存文件,则表示每次都会重新获取数据表字段信息。 广州大理石平台 字段缓存保存在 Runtime/Data/_fields/ 目录下面,缓存机制是每个模型对应一个字段缓存文件(注意:并非每个数据表对应一个字段缓存文件),命名格式是: 数据库名.模型名(小写).php 例如: demo . user . php // User模型生成的字段缓存文件 demo . article . php // Article模型生成的字段缓存文件 3.2.3版本开始,字段缓存的文件名调整为 数据库名.数据表前缀+模型名(小写).php 例如: demo . think_user . php // User模型生成的字段缓存文件 demo . top_article . php // Article模型生成的字段缓存文件 字段缓存包括数据表的字段信息、主键字段和是否自动增长,如果开启字段类型验证的话还包括字段类型信息等等,无论是用M方法还是D方法,或者用原生的实例化模型类一般情况下只要是不开启调试模式都会生成字段缓存(字段缓存可以单独设置关闭)。 可以通过设置 DB

thinkphp 模型定义

久未见 提交于 2019-12-03 07:23:45
模型定义 模型类并非必须定义,只有当存在独立的业务逻辑或者属性的时候才需要定义。 模型类通常需要继承系统的\Think\Model类或其子类,下面是一个Home\Model\UserModel类的定义: namespace Home \Model ; use Think \Model ; class UserModel extends Model { } 模型类的作用大多数情况是操作数据表的,如果按照系统的规范来命名模型类的话,大多数情况下是可以自动对应数据表。 模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认定义是Model),例如: 模型名 约定对应数据表(假设数据库的前缀定义是 think_) UserModel think_user UserTypeModel think_user_type 如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表。 数据表定义 在ThinkPHP的模型里面,有几个关于数据表名称的属性定义: 属性 说明 tablePrefix 定义模型对应数据表的前缀,如果未定义则获取配置文件中的DB_PREFIX参数 tableName 不包含表前缀的数据表名称,一般情况下默认和模型名称相同,只有当你的表名和当前的模型类的名称不同的时候才需要定义。

MySQL--数据表操作--行转列和列转行

风格不统一 提交于 2019-12-03 07:16:02
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11782549.html MySQL--数据表操作:   会用到的查询操作. 1. Limit的用法: 查询从下标5开始往后的10条数据(下标默认为0开始) SELECT * FROM stu_user LIMIT 5, 10; 查询从下标5开始往后的所有数据(下标默认为0开始) SELECT * FROM stu_user LIMIT 5,- 1; 查询前5条数据 SELECT * FROM stu_user LIMIT 5; 2. 行转列和列转行   a) 列转行 创建-->学生-科目分数表 (这种建表方式需要提前把所有的科目列都设计好,如果往后需要添加科目的话需要改动表结构) CREATE TABLE stu_score ( stu_id INT NOT NULL, sname VARCHAR ( 20 ) NOT NULL, chscore CHAR ( 3 ) DEFAULT '0', mathscore CHAR ( 3 ) DEFAULT '0', enscore CHAR ( 3 ) DEFAULT '0' ); 表结构 +-----------+-------------+------+-----+---------+-------+ | Field |

PowerDesigner使用介绍

本秂侑毒 提交于 2019-12-03 06:43:35
1.概述 2.创建物理模型 3.创建数据表 4.增加外键约束 5.生成SQL语句 6.生成设计文档 1.概述 PowerDesigner 是 Sybase 公司的 CASE 工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用 PowerDesigner 可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设备模型进行控制。 公司主要使用 PowerDesigner 创建以下两类模型文件: 逻辑模型( CDM ):描述了与任何软件和数据存储系统都无关的数据库整体逻辑结构,通常包含了与物理数据库无关的数据对象,提供了一种描述企业运行或业务行为的形象化的表达方式。 物理模型( PDM ):叙述数据库的物理实现。主要目的是把 CDM 中建立的现实世界模型生成特定的 DBMS 脚本,产生数据库中保存信息的储存结构,保证数据在数据库中的完整性和一致性。 我主要就物理模型来简单讲讲 PowerDesigner 的操作细节。 2.创建物理模型 图 2-1 为 PowerDesigner 的工作页面,点击文件 --> 创建新模型,弹出如图 2-2 的对话框: 图 2-1 图 2-2 选择左侧 Physical DataModel (即物理模型),右侧选择 Physical Diag

MySQL操作(三)数据表

为君一笑 提交于 2019-12-03 06:33:13
一、创建数据表 方式1 CREATE TABLE IF NOT EXISTS user( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT, sex TINYINT NOT NULL DEFAULT 0 )ENGINE=MyISAM DEFAULT CHARSET=utf8; 方式2 --1、 创建一个临时的新表,首先复制旧表的结构(包含索引) CREATE TABLE new_table LIKE old_table; -- 2、把旧表的数据复制过来 INSERT INTO new_table(filed1,filed2…) SELECT filed1,filed2,… FROM old_table; 二、删除数据表 DROP TABLE IF EXISTS user; -- 删除表中所有的数据 DELETE FROM ebn_roomsms; -- 删除表中指定条件的数据(带条件的删除都不是真删除,数据库文件大小没有变化,需加第二条命令) DELETE FROM `dh_user` where id > 15; OPTIMIZE TABLE dh_user; 三、表数据操作 1、添加数据 -- 1、插入单条 INSERT INTO user(id,name,sex,age)values(null,