java中ormlite 学习笔记

1, 能否直接使用外键id ?
# 声明一个外键对象 和 一样普通字段 新建表的时候会出错 , 查数据的时候也会出错
#  http://stackoverflow.com/questions/18988750/ormlite-android-setting-foreign-key-fields-directly
# 声明了两个类,分别处理对象和id
 
2, 对象自己有CRUD ,BaseDaoEnabled
 

对象的实例方法有对应的crud
只要有继承就行
使用起来如果是new 出来的对象就要setDao来指定对应dao
如果使用dao进行的query则自动已经set好了,直接进行update等操作
 
3,http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#foreignAutoRefresh
  感觉和eager差不多,就是一个是 一对多一边一个,不知道这么理解对不对
 
4, lazyload eager load
  4.1 配置操作
    @ForeignCollectionField(eager = true)
    查询的时候,直接把关联查出来设置进属性
  4.2 手动指定
    # http://stackoverflow.com/questions/7301418/ormlite-inner-join-on-three-tables
    http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_3.html#Join-Queries
    可以使用queryBuilder.join的方法
    注意要把有条件的加在join里,反过来之后似乎会遍历整个表
  4.3 eagerload 也只是没一个对象的关联查出来,似乎也存在n+1查询的情况,看来只有通过join来解决
 
5, raw query
http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_2.html#Raw-Queries
 
GenericRawResults<String[]> result 返回对象
result.getColumnNames() # column的数组
result.getResults() List<String[]> 每一个string[] 对应 columns

时间: 2024-10-09 20:34:07

java中ormlite 学习笔记的相关文章

Java中jqGrid 学习笔记整理——进阶篇(二)_java

相关阅读: Java中jqGrid 学习笔记整理--进阶篇(一) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache Tomcat-8.0.30 Mysql 5.7 Navicat for mysql 11.2.5(mysql数据库管理工具) 一.数据库部分 1.创建数据库 使用Navicat for mysql创建数据库(使用其他工具或直接使用命令行暂不介绍) 2. 2.创建表 双击打

java中字符串学习笔记

学过编程的都会知道,字符串是常量中的一种,然而java中的String不仅仅是常量,又是类,是一个特殊的类,是不可变和最终类: 1,不可变的String:说到不可变性,就要说java中String的内存分配了,如下图 当运行代码: String str = "abc"; 时,内存分布为 这时候看起来和一个int a = 26;很相似了,StringPool是常量池里面用来存放字符串常量的地方,里面的值不可修改 而如果代码是这样写的: String str = new String(&q

java泛型的学习笔记[2]—实际使用

继上一文<java泛型的学习笔记[1]-基础知识>之后,本文将介绍泛型的一些应用和应用过程中遇到的问题. 在此之前,我们先给出一张类图:   1)泛型类型的子类型问题 我们首先来看这样一句代码.该行代码正确,因为Cat是Animal的子类型 Animal animal=new Cat();// 但是再看下一句代码: AarrayList<Animal> animals=new ArrayList<Cat>();//编译出错        这句代码编译出错,因为虽然因为C

java对象序列化学习笔记

java对象|笔记 目前网络上关于对象序列化的文章不少,但是我发现详细叙述用法和原理的文章太少.本人把自己经过经验总结和实际运用中的体会写成的学习笔记贡献给大家.希望能为整个java社区的繁荣做一点事情.    序列化的过程就是对象写入字节流和从字节流中读取对象.将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管道到另一线程中或通过网络连接将对象数据发送到另一主机.对象序列化功能非常简单.强大,在RMI.Socket.JMS.EJB都有应用.对象序列化问题在网

java 数据库编程 学习笔记 不断更新

最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题.   一.数据库访问技术的简介                      应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序     ( ODBC         JDBC(两个常用的API))    java主要使用的 JDBC驱动程序进行数据库的编程 Java 应用程序 <------> JDBC   <------>  数据库     二.JDBC 的体系结构  

《深入理解Java虚拟机》学习笔记

自动内存管理机制 第2章 垃圾收集器与内存分配策略 1.Java虚拟机在执行java程序时会把它所管理的内存会分为若干个不同的数据区域, 这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是在以来用户线程的启动和结束而建立和销毁. 根据<Java虚拟机规范>,包括以下几个运行时数据区域: //此处应有类图,但是画起来太麻烦! 程序计数器(Program Counter Register) 方法区(Method Area) 虚拟机栈(VM Stack)

Java编程思想学习笔记——类型信息

前言 运行时类型信息(RTTI:Runtime Type Information)使得我们可以在程序运行时发现和使用类型信息. Java在运行时识别对象和类的信息的方式: (1)一种是RTTI,它假定我们在编译时已经知道了所有的类型. (2)另一种是反射机制,它允许我们在运行时发现和使用类的信息. 为什么需要RTTI 以使用了多态的类层次结构的例子举例: 如上图,泛型是基类Shape,而派生出来的具体类有Circle,Square和Triangle. 这是一个类层次结构图,基类位于顶部,而派生类

Java编程思想学习笔记——初始化与清理

初始化 构造器保证初始化 构造器采用与类相同的名称. 默认构造器(default constructor):不接受任何参数的构造器,也叫无参构造器. 构造器也能带有形式参数,就能在初始化对象时提供实际参数. class Foo{ Foo(){ System.out.println("Foo's no-arg Constructor Foo()"); } Foo(int i){ System.out.println("Foo's arg Constructor Foo (&qu

Java并发控制机制学习笔记

在一般性开发中,笔者经常看到很多同学在对待java并发开发模型中只会使用一些基础的方法.比如volatile,synchronized.像Lock和atomic这类高级并发包很多人并不经常使用.我想大部分原因都是来之于对原理的不属性导致的.在繁忙的开发工作中,又有谁会很准确的把握和使用正确的并发模型呢? 所以最近基于这个思想,本人打算把并发控制机制这部分整理成一篇文章.既是对自己掌握知识的一个回忆,也是希望这篇讲到的类容能帮助到大部分开发者. 并行程序开发不可避免地要涉及多线程.多任务的协作和数