对象关系映射

c# 常用框架整理

心不动则不痛 提交于 2019-12-12 10:49:57
原文: C#开源框架 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。 Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。 Faker.Net https://github.com/jonwingfield/Faker.Net 开发的时候是不是为测试数据烦恼?Faker.Net可以非常方便帮你生成大批量测试数据。例如人员表里面的姓名、性别什么的。 Html Agility Pack http://htmlagilitypack.codeplex.com/ Html Agility Pack 是CodePlex 上的一个开源项目。它提供了标准的DOM API 和XPath 导航--即使 HTML 不是适当的格式!HTML Agility Pack 搭配

Mybatis

故事扮演 提交于 2019-12-11 20:04:11
1.1Mybatis框架概述 Mybatis是基于Java的持久层框架,内部封装了jdbc,使开发者只需关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建Statement等繁杂的过程。采用的是ORM(对象关系映射)思想解决实体和数据库映射的问题。 1.2步骤 1.2.1导包 (Mybatis核心包) (Mybatis驱动包) (Mysql驱动包) 1.2.2 写数据表对应的实体类,例Student.java 1.2.3写核心配置文件(SqlMapConfig.xml) 1.2.4 写dao层的方法接口,例findAll(); insertStu(); updateStu(); deleteById(); 1.2.5 写映射配置文件,例student.xml 1.2.6 测试(动态代理的方式) 来源: https://www.cnblogs.com/xiaozhu1017/p/12015852.html

Mapper XML 文件

我只是一个虾纸丫 提交于 2019-12-11 16:12:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。 SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置。 cache-ref – 其他命名空间缓存配置的引用。 resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。 parameterMap – 已废弃!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除,这里不会记录。 sql – 可被其他语句引用的可重用语句块。 insert – 映射插入语句 update – 映射更新语句 delete – 映射删除语句 select – 映射查询语句 下一部分将从语句本身开始来描述每个元素的细节。 select 查询语句是 MyBatis 中最常用的元素之一,光能把数据存到数据库中价值并不大,如果还能重新取出来才有用,多数应用也都是查询比修改要频繁。对每个插入、更新或删除操作,通常对应多个查询操作。这是 MyBatis

MyBatis中resultMap的相关介绍

风格不统一 提交于 2019-12-11 16:11:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> resultMap 元素是 MyBatis 中最重要最强大的元素。它就是让你远离从结果集中取出数据的JDBC 代码的那个东西,而且在一些情形下允许你做一些JDBC不支持的事情。ResultMap 的设计就是对于一些简单的语句我们不需要明确它们的结果映射,但是到于复杂的语句确实需要描述它们的关系。 简单结果映射 对于一个普通的JavaBean: package com.someapp.model; public class User { private int id; private String username; private String hashedPassword; public int getId() { return id; } public void setId( int id) { this .id = id; } public String getUsername() { return username; } public void setUsername(String username) { this .username = username; } public String getHashedPassword() { return hashedPassword; } public

Mybatis

不打扰是莪最后的温柔 提交于 2019-12-11 16:09:48
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> <association property="author" column="blog_author_id" javaType="Author"> <id property="id" column="author_id"/> <result property="username" column="author_username"/> </association> 关联元素处理“有一个”类型的关系。比如,在我们的示例中,一个博客有一个用户。 关联映射就工作于这种结果之上。你指定了目标属性,来获取值的列,属性的 java 类型(很 多情况下 MyBatis 可以自己算出来) ,如果需要的话还有 jdbc 类型,如果你想覆盖或获取的 结果值还需要类型控制器。 关联中不同的是你需要告诉 MyBatis 如何加载关联。MyBatis 在这方面会有两种不同的 方式: 嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型。 嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集。首先,然让我们来查看这个元素的属性。所有的你都会看到,它和普通的只由 select 和 resultMap 属性的结果映射不同。 属性 描述 property 映射到列结果的字段或属性。如果匹配的是存在的,和给定名称相同的 property

【大厂面试真题350道】性能优化+微服务+并发编程+开源框架+分布式

两盒软妹~` 提交于 2019-12-11 08:28:37
一,性能优化专题: 1.tomcat性能调优 怎么给tomcat调优 如何加大comcat连接数 怎么加大tomcat的内存 tomcat中如何禁止列目录下的文件 Tomcat有几种部署方式 tomcat的优化经验 2.jvm性能优化专题: Java类加载过程 java内存分配 描述一下jvm加载class文件的原理机制 GC是什么?为什么要有GC? 简述java垃圾回收机制 如何判断一个对象是否存活?(或者GC对象的判定方法) 垃圾回收的优点和原理。并考虑2种回收机制。 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗? 有什么办法主动通知虚拟机进行垃圾回收? java中会存在内存泄漏吗,请简单描述。 深拷贝和浅拷贝 syatem,gc**() 和runtime,gc ()**会做做什么事情? finalize方法什么时候被调用?析构函数(finalizatinon)的目的是什么? 如何对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存? 什么是分布式垃圾回收(DGC)?它是如何工作的? 串行(serial)收集器和吞吐量(throughout)收集器的区别是什么? 在Java中,对象什么时候可以被垃圾回收? 简述Java内存分配与回收策率以及minor GC和majorGC。 jvm的永久代中会发生垃圾回收吗? Java中垃圾收集的方法有哪些?

FileChannel(API详解)

做~自己de王妃 提交于 2019-12-09 20:14:39
1、两种获取通道的方法 FileChannel.open()的方式 FileChannel channell = FileChannel.open(Paths.get("a.txt","c.txt"), StandardOpenOption.CREATE,StandardOpenOption.WRITE); FileChannel channel2 = FileChannel.open(new File("a.txt").toPath(), StandardOpenOption.CREATE_NEW,StandardOpenOption.WRITE,StandardOpenOption.READ); path获取 Paths.get() new File(“a.txt”).toPath() OpenOption接口的实现类通常由StandardOpenOption枚举进行代替。 public enum StandardOpenOption implements OpenOption { READ, WRITE, APPEND,//累加 TRUNCATE_EXISTING,//如果该文件已存在并且为写入访问而打开,则其长度将被截断为0。如果只为读取访问打开文件,则忽略此选项。 CREATE,//不能单独使用,要与WRITE配套使用,单独使用会报错java.nio.file

【原创】再谈基于注解运行时动态ORM映射

隐身守侯 提交于 2019-12-09 19:53:30
上一篇贴出 《基于注解运行时动态ORM映射》 的方案,到底哪些地方需要用?又该怎么用呢?!我想你会有这样的疑问,其实不瞒你说,我也有!呵呵~ 再谈一把,就成为“必须的”~ 因此,本文主要介绍动态ORM映射适用具体场景以及详细实现方案。 上篇文章提出来如何运行时动态修改注解的解决方案,它在那里好好的,我们干嘛没事修改它?到底有何企图?它的应用场景又是什么呢?让我们揭开它神秘的面纱吧~ 我的乖乖! 在面向对象(OO)软件产品设计中,设计者们在面对诸如MySQL、MSSQL、ORACLE这类由关系数据库组成的关系数据库管理系统(RDBMS)时,对象关系映射方案(ORM)逐渐成为主流技术。ORM系统管理着关系数据模型与对象模型(Object Model)的关系,通常关系数据模型(NRDM)与对象模型一一对应,NRDM中的一张表的结构对应对象模型中一个实体类的结构,表中的字段则对应实体对象的属性,表中的一行记录又对应着一个实体对象(Entity Object)。从而,ORM系统的对象模型灵活的对接了关系数据库管理系统,隔离了关系数据模型。开发人员无需关注关系数据模型与对象模型的矛盾,只需在数据访问层(DAO)传递对象模型,ORM会智能地把对象模型匹配到具体的关系数据模型上,触发关系数据库管理系统进行数据访问请求。如今业界也有很多成熟并且被广泛应用的ORM映射方案。比如Hibernate

Mybatis中输出映射resultType与resultMap的区别

给你一囗甜甜゛ 提交于 2019-12-09 16:35:14
(原文地址: http://blog.csdn.net/acmman/article/details/46509375 ) 1.resultType 使用resultType进行输出映射,只有查询出来的列名和pojo(实体bean)中的属性名一致,该列才可以映射成功。 如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。 只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。 1.1输出pojo对象和pojo列表 不管是输出的pojo单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型是一样的。 在mapper.java指定的方法返回值类型不一样: 1).输出单个pojo对象,方法返回值是单个对象类型 2).输出pojo对象list,方法返回值是List<Pojo> 生成的动态代理对象中是根据mapper方法的返回值类型确定是调用selectOne(返回单个对象调用)还是selectList (返回集合对象调用 ). 1.2输出HashMap 输出pojo对象可以改用HashMap输出类型,将输出的字段名称作为map的key,value为字段值。如果是集合,那就是list里面套了HashMap。 2.resultMap mybatis中使用resultMap完成高级输出结果映射。 2

Linux kernel device mapper

为君一笑 提交于 2019-12-09 14:26:35
Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。 图1 Device Mapper的内核体系架构 在内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driver 插件包括软 raid、软加密、逻辑卷条带、多路径、镜像、快照等,图中 linear、mirror、snapshot、multipath 表示的就是这些 target driver。Device mapper 进一步体现了在 Linux 内核设计中策略和机制分离的原则,将所有与策略相关的工作放到用户空间完成,内核中主要提供完成这些策略所需要的机制。Device mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,比如逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等,而具体过滤和重定向 IO 请求的工作由内核中相关代码完成。因此整个 device mapper 机制由两部分组成--内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具。在下文中,我们分内核和用户空间两部分进行介绍。 内核部分 Device mapper