草庐IT

day07-MyBatis的关联映射01

MyBatis的关联映射01Mybatis的关联映射实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系。针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好的处理对象与对象之间的关联关系。1.关联关系概述在关系型数据库中,多表之间存在着三种关系,分别是一对一,一对多,多对多。一对一:在任意一个表中引入另外一个表的主键作为外键。一对多:在多个表中都引入了某一个表的主键作为外键多对多:需要用一张中间表表示多对多的关系,这张中间表引入两张表的主键作为外键。一般来说一个对象映射一张表,因此一对一的关系就是在A类中定义B类属性,一对多的关

Object.defineProperty方法 与 数据代理

constperson={name:'Lydia'}Object.defineProperty(person,'age',{value:21,})console.log(person)console.log(Object.keys(person))输出结果原因:defineProperty方法提供给我们(getter)给对象添加一个新属性,或者通过(setter)修改已经存在的属性,当然上面的例子只涉及到最简单的修改。constperson={name:'Lydia'}letnumber=21;Object.defineProperty(person,'age',{//value:21,enu

Object.defineProperty方法 与 数据代理

constperson={name:'Lydia'}Object.defineProperty(person,'age',{value:21,})console.log(person)console.log(Object.keys(person))输出结果原因:defineProperty方法提供给我们(getter)给对象添加一个新属性,或者通过(setter)修改已经存在的属性,当然上面的例子只涉及到最简单的修改。constperson={name:'Lydia'}letnumber=21;Object.defineProperty(person,'age',{//value:21,enu

TypeScript(4)接口

介绍TypeScript的核心原则之一是对值所具有的结构进行类型检查。我们使用接口(Interfaces)来定义对象的类型。接口是对象的状态(属性)和行为(方法)的抽象(描述)接口初探声明接口需要使用关键字interface,接下来我们定义一个接口,需求如下需求:创建人的对象,需要对人的属性进行一定的约束id是number类型,必须有,只读的name是string类型,必须有age是number类型,必须有sex是string类型,可以没有 第一步:创建人的对象constperson:Person={id:1,name:'tom',age:20,sex:'男'}我们创建了一个类型为Person

TypeScript(4)接口

介绍TypeScript的核心原则之一是对值所具有的结构进行类型检查。我们使用接口(Interfaces)来定义对象的类型。接口是对象的状态(属性)和行为(方法)的抽象(描述)接口初探声明接口需要使用关键字interface,接下来我们定义一个接口,需求如下需求:创建人的对象,需要对人的属性进行一定的约束id是number类型,必须有,只读的name是string类型,必须有age是number类型,必须有sex是string类型,可以没有 第一步:创建人的对象constperson:Person={id:1,name:'tom',age:20,sex:'男'}我们创建了一个类型为Person

<四>MyVector中加入迭代器功能

我们之前有中的第节理解空间配置器allocator优化STL中的Vector我将在此基础上加入迭代器功能代码Iterator为什么可以遍历所有的容器的方式都一样?autoit=continer.beign();for(;it!=continer.end();++it){cout#includeusingnamespacestd;classperson{public: //构造函数 person(int_age=1,char*_pname=nullptr): age(_age) { if(_pname==nullptr){ pname=newchar[1]; pname[0]='\0'

<四>MyVector中加入迭代器功能

我们之前有中的第节理解空间配置器allocator优化STL中的Vector我将在此基础上加入迭代器功能代码Iterator为什么可以遍历所有的容器的方式都一样?autoit=continer.beign();for(;it!=continer.end();++it){cout#includeusingnamespacestd;classperson{public: //构造函数 person(int_age=1,char*_pname=nullptr): age(_age) { if(_pname==nullptr){ pname=newchar[1]; pname[0]='\0'

04章-类和对象--C++核心知识学习笔记

4类和对象C++面向对象的三大特性为:封装、继承、多态C++认为万事万物皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名,年龄,身高,体重,行为有走,跑,跳,吃饭,唱歌车也可以作为对象,属性有偶轮胎,方向盘,车灯,行为有载人,放音乐,开空调具有相同性质的对象,我们可以抽象为类,人属于人类,车属于车类4.1封装4.1.1封装的意义封装是C++面向对象三大特性之一封装的意义:将属性和行为作为一个整体,表现生活中的事务将属性和行为加以权限控制封装意义一:在设计类的时候,属性和行为写在一起,表现事务语法:class类名{访问权限:属性/行为};示例1:设计一个圆类,求圆的周长示例代码:#

04章-类和对象--C++核心知识学习笔记

4类和对象C++面向对象的三大特性为:封装、继承、多态C++认为万事万物皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名,年龄,身高,体重,行为有走,跑,跳,吃饭,唱歌车也可以作为对象,属性有偶轮胎,方向盘,车灯,行为有载人,放音乐,开空调具有相同性质的对象,我们可以抽象为类,人属于人类,车属于车类4.1封装4.1.1封装的意义封装是C++面向对象三大特性之一封装的意义:将属性和行为作为一个整体,表现生活中的事务将属性和行为加以权限控制封装意义一:在设计类的时候,属性和行为写在一起,表现事务语法:class类名{访问权限:属性/行为};示例1:设计一个圆类,求圆的周长示例代码:#

OOP in JavaScript

Js是函数式语言,并不是传统的面对对象语言,如Java等等,所以在js中有一些比较独特的面对对象实现方法。面对对象有多个特点,如封装,继承,多态等,由于js的oop特性并不明显,所以仅叙述继承在js中的实现。众所周知,js中函数也可以是类,通过new在堆中手动开辟空间就是对象的实例,而且,每个对象都天生有一个指针,指向原型,原型也可以理解为一个对象,可以定义自己的方法,如下图所示,不再赘述,详细可以参考廖雪峰教程。functionPerson(name){this.name=name||'unnamed';}functionStudent(name,grade){Person.call(thi