数据库对象

jango 模型管理数据model,数据库外键主键与一对一,一对多,多对多关系

核能气质少年 提交于 2019-12-02 18:24:10
四.models.py 定义和管理模型: 4.1模型class的属性就映射与数据库的字段参数 继承models.Model class TestClass(models.Model): 4.2在数据库生成数据表: #django默认在makemigrations会为表对象创建主键id,id = models.AutoField(primary_key=True) 你也可以自定义一个主键对象: 4.2.1: 生成迁移文件python manage.py makemigrations 4.2.2执行迁移python manage.py migrate show tables; 检查数据库mysql mysql> desc app_grade; +------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------------+------+-----+---------+-------+ | grade_id | int(11) | NO | PRI | NULL | | | grade_good | int(11) | NO | | NULL | | | grade_bad | int(11) | NO

python之ORM(对象关系映射)

不羁的心 提交于 2019-12-02 16:51:58
实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要更改代码。orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句。所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可。 来源: https://www.cnblogs.com/xiximayou/p/11755804.html

Mybatis面试题汇总

老子叫甜甜 提交于 2019-12-02 16:32:56
1、什么是Mybatis? Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和 statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。 2、Mybaits的优点: 基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。 与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接; 很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持) 能够与Spring很好的集成; 提供映射标签

Python之路【第二十九篇】:django ORM模型层

依然范特西╮ 提交于 2019-12-02 15:36:56
ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 ORM是“对象-关系-映射”的简称。 如果进行数据库迁移,不同数据库的sql语句是有差别的,而ORM是上层封装,只需按照指定的数据库引擎就可以翻译为相对应的sql语句,便于数据库迁移。但是它的效率不高。 不需要调用sqmysql,django的上层封装;它只能做到表这一层 sql表----->python的 类 字段------>类的属性 表记录---->python类对象 #sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (20), gender BIT default 1, birthday DATA , department VARCHAR (20), salary DECIMAL (8,2) unsigned, ); #sql中的表纪录 #添加一条表纪录: INSERT employee (name,gender,birthday,salary,department) VALUES ("alex",1,

二十五、clob与blob的区别。

扶醉桌前 提交于 2019-12-02 15:21:48
CLOB 定义   数据库中的一种保存文件所使用的类型。   Character Large Object   SQL 类型 CLOB 在 JavaTM 编程语言中的映射关系。SQL CLOB 是内置类型,它将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。默认情况下,驱动程序使用 SQL locator(CLOB) 实现 Clob 对象,这意味着 CLOB 对象包含一个指向 SQL CLOB 数据的逻辑指针而不是数据本身。Clob 对象在它被创建的事务处理期间有效。   在一些数据库系统里,也使用Text 作为CLOB的别名,比如SQL Server BLOB的含义   BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。   在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。   BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。   根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。 但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大

Java连接MySQL数据库 JBDC接口

落花浮王杯 提交于 2019-12-02 15:20:52
1.准备MySQL驱动jar包 可以去官网下载 这里就不说了 2.把驱动jar包引入idea工程 第一步 点击idea右上角这个图标 第二部 点击加号 选择java 第三部 选择驱动jar地址 然后一直点击ok 驱动jar就被导入external libraries了 3.增删查改的代码 这里使用的表 create table EMP ( EMP_ID int(10) not null auto_increment, ENAME varchar(50), GENDER int(2) comment '1男,2女', HIREDATE date, primary key (EMP_ID) ); import java.sql.*; public class JDBCDemo { //准备连接数据库的四大要素 (驱动 url 用户名 密码)Driver是驱动jar包里的一个类 mydb是本地创建的一个数据库 密码root是自己改的,请输入自己的密码 private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost:3306/mydb"; private static final String USERNAME =

Spring整合MongoDB(转)

China☆狼群 提交于 2019-12-02 14:32:06
1.认识Spring Data MongoDB 之前还的确不知道Spring连集成Nosql的东西都实现了,还以为自己又要手动封装一个操作MongoDB的API呢,结果就发现了Spring Data MongoDB。不愧是Spring,真是给了我们春天,佩服的渣渣我目瞪狗呆…… 废话少说,看招。Spring Data其实是一个高级别的Spring Source项目,而Spring Data MongoDB仅仅是其中的一个子项目。Spring Data旨在为关系型数据库、非关系型数据、Map-Reduce框架、云数据服务等等提供统一的数据访问API。 无论是哪种持久化存储, 数据访问对象(或称作为DAO,即Data Access Objects)通常都会提供对单一域对象的CRUD (创建、读取、更新、删除)操作、查询方法、排序和分页方法等。Spring Data则提供了基于这些层面的统一接口(CrudRepository,PagingAndSortingRepository)以及对持久化存储的实现。 Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 POJO 编程模型的 MapReduce 作业 Key-Value - 集成了 Redis 和

数据库---JDBC的解析

一曲冷凌霜 提交于 2019-12-02 11:36:47
一、JDBC是什么? JDBC:Java Database Connectivity(Java数据库连接池)。指 定了统一的访问各种关系型数据库的标准接口-----桥梁作用。    功能:【与数据库建立连接】【向数据库发送SQL请求】【处理从数据库返回的结果】  步骤如下:A . 加载并注册数据库驱动----【数据库不同驱动链接不同】               Class.forName("com.mysql.cj.jdbc.Driver");       B. 通过DriverManager获取数据库连接           Connection conn=DriverManager.getConnection(String url,String username,String password);        C. 通过Connection对象获取Statement对象           stat=conn.createStatement();     D. 使用Statement执行SQL语句                     int num1=sta.executeUpdate(sql);  或者  res = stat.executeQuery(sql);        E. 操作ResultSet结果集                 ResultSet

MyBatis 开发手册

自闭症网瘾萝莉.ら 提交于 2019-12-02 07:52:54
摘自: https://www.cnblogs.com/ZhuChangwu/p/11734347.html MyBatis 开发手册 这一遍看Mybatis的原因是怀念一下去年的 10月24号我写自己第一个项目时使用全配置文件版本的MyBatis,那时我们三个人刚刚大二,说实话,当时还是觉得MyBatis挺难玩的,但是今年再看最新版的Mybatis3.5.3, 还是挺有感觉的 Mybatis的官网一级棒... Mybatis的核心组件及其生命周期 # SqlSessionFactoryBuider: # 作用 : 构建器,根据配置信息生成SqlSessionFactory 生命周期 : 这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。 你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但是最好还是不要让其一直存在,以保证所有的 XML 解析资源可以被释放给更重要的事情。 SqlSessionFactory # 作用 : 生成sqlSession 生命周期 : SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在

07 Django 单表操作

依然范特西╮ 提交于 2019-12-02 07:05:20
目录 一、前言 二、模型层的概念 三、ORM简介 四、Django 配置数据库 五、使用ORM 六、数据库表迁移 七、打印ORM在转换过程中的SQL 八、配置好数据库报错时 九、数据库中生成的表 十、django操作数据库 10.1 添加记录 10.2 查询数据 10.3 神奇的双下划线查询 10.4 修改数据 10.5 删除数据 一、前言 前面基础部分学习的差不多了,是不是感觉卧槽,Django牛逼啊,哈哈哈,前面的部分内容还不是django的重头戏呢,接下来的部分才是精彩来袭,此处需要你擦亮自己的眼睛啦 下面讲的部分是我们django模型层的内容,此处插一嘴,想问一下之前django学习了那几层你还记得不,不记得自己回去找去,下面正式介绍模型层了: 大家听模型层这个名字,脑子里是否闪过模型飞机?哈哈哈,反正我有,来现在模型层的概念就来了 二、模型层的概念 这里先来说说django的ORM吧,不过不瞒你们说之前我自己也写过ORM,自己封装了一个建议版本的,当然,功能当然不能和Django的ORM比啦,敌方大强大,打不过呀! 那什么是ORM呢?很好奇吧! ORM就是我们现在要说的模型层,大家以前都学过数据库吧,学数据库的时候,是不是觉得哇塞SQL语句好难写啊,好多啊,在python里面我们要是需要用到数据库的话,不仅要和数据库进行连接,连接过后还要创建游标对象,然后还要写SQL语句