版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、 JOOQ 概念详解JOOQ (Java Object Oriented Querying-jave面向对象查询 )Code Generation (自动生成代码):JOOQ可自动化生成 基于java对象的数据库模式(Database Schema),在JOOQ框架里每一个表、视图、储存过程、枚举、UDT(User Defination Dype-用户定义类型 )都将被自动生成是一个java类。1、 Active records(灵活记录模式):JOOQ实现了一种简单使用的【灵活记录映射模式】,它并不是OR(Object-Relation)映射,不过也提供了一种 表/视图与java_cla
2、ss、字段与成员变量之间的1:1 对应关系,2、 Typesafe SQL (类型安全的SQL):JOOQ基于内建的DSL ,允许编写编译时期类型安全的查询语句。面向管理业务的DSL(Domain_Specific Language,领域特定语言)JOOQ提供的数据类型异常丰富3、 SQL standard ( 标准的SQL ):JOOQ支持所有支持SQL语言标准特性的操作,像包括复复杂的联合join查询,内嵌的select子查询,当然SQL会话机身采用的是预编译性,避免sql注入的PreparedStatement5、Vendor-specific feature support (供应商特
3、定的一些支持):JOOQ鼓励使用供应商制定的一些扩展功能,如stored procedure,UDTs 和ARRAYS 以及其它JOOQ不仅提供了对符合SQL标准数据库的简单CRUD操作,不仅如此,JOOQ做得更周到,为了满足不周数据库之间的差异,又提供了对特定数据库访问的特定接口原因:通用类型的Factory实例Factory create = new Factory(connection, SQLDialect.MYSQL);通用的实例,有其同性,但差异的东西并未考虑在内特定类型的Factory实例MySQLFactory create = new MySQLFactory(connect
4、ion);数据库与数据库之间的差异还是有的,特别是在一些很细微的方面,因此采用特定领域的工厂实例模式会更准确更细微化功能也会更健全化1、 Oracle一些特有的分析funtion,并不是其它数据库所具体有2、 任何基于RDMS(Relation Database Management System)所内建的功能funtion3、 特定领域内的东西(speficial dialect)2、 JOOQ能帮你做什么?1、可使你的code更容易维护2、不必再为了ORM 的复杂所苦恼3、不必关心查询SQL inquery语句里是否有语法错误4、不必记住正确绑定变量、当然了SQL 注入也不必关心5、不必关
5、心数据库的结构模式schema,因为这一些都是通过java代码及你所使用的IDE自动生成的6、不必去自行创建关于value object 值对象,自动生成功能可以帮你做到这一点7、不必关心数据库date type 与java_class 成员变量的数据类型安全问题8、一旦你的数据库发生变化,那么编译是不通过的,因此,防错机制比较高,较快较早的可以发现问题9、忘掉JDBC吧3、 什么时候用JOOQ?1、如果你偏爱通过RDBMS(relational database management system 关系型数据库管理系统)做程序时,当然包括一些特定的功能应用。2、你想完全掌握你的code3、数
6、据库是关系型数据库时4、SQL非用不可时5、储存过程使用频率较高时4、 什么时候别用JOOQ?另一方面,很多人也因为其简单性,更喜欢用像hibernate等产品。如果在用于一些简单基于平常数据模型的持久时,不推介使用.1.、不关心数据库或数据库的persisitence时2、实在是不需要SQL时3.、数据库模式常常发生变化时而非通过基于JOOQ的自动生成方式时4、因为JOOQ只支持数据库操作语言(DML Databse Manipulate Language),因此在有DDL(Database Defination Language)数据库定义语言时Schema在JOOQ的作用:在属性.XXX
7、 .properties配置文件中,有jdbc.URL=jdbc:sqlserver:/localhost:1433;DatabaseName=Elecjdbc.Schema=dboschema在数据库中的概念:1、 schema与user 由于在架构上有一种隐含的关系,但它们是完全不同的两个概念2、 在DBMS中,database就由如一个大的仓库,而schema就是置于其中的房间,而user就是用户,user用户的权限不同,所以他能进入的房间也就不同。3、 在server-2005数据库中,如果我们用create user为数据库创建用户的话,我们可以为用户指定一个已存在的schema作为
8、其默认schema,如果没被指定,那么系统都用户的schema默认设置为dbo schema(通常都是dbo作为默认的schema的),dbo作为一个公共的大房间,只能用户没有指定db的schema时,默认都是dbo代码自动生成实例(数据库schema-到-java_class)Schema:包括数据库里的表、视图、储存过程、枚举、UDT等都将被生成相应的.java文件1、 SQLServer2005建数据库Elec 表t_danwei 字段 单位编码器dwbm primar key 单位名称dwbm 所属schema为dbo2、 新建java项目-名为JOOQ3、 导入JOOQ所需要jar包
9、4、 在src目录加入lo4j.xml文件5、 编写属性配置文件perties 本例为perties 内容如下:#Configure the database connection herejdbc.Driver=com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc.URL=jdbc:sqlserver:/localhost:1433;DatabaseName=Elecjdbc.Schema=dbojdbc.User=sajdbc.Password=laji8018419#The default code gene
10、rator. You can override this one, to generate your own code style#Defaults to org.jooq.util.DefaultGeneratorgenerator=org.jooq.util.DefaultGenerator#The database type. The format here is:#generator.database=org.util.database.databaseDatabasegenerator.database= org.jooq.util.sqlserver.SQLServerDataba
11、se#All elements that are generated from your schema (several Java regular expressions, separated by comma)#Watch out for case-sensitivity. Depending on your database, this might be important!generator.database.includes=.*#All elements that are excluded from your schema (several Java regular expressi
12、ons, separated by comma). Excludes match before includesgenerator.database.excludes=#Primary key / foreign key relations should be generated and used. #This will be a prerequisite for various advanced features#Defaults to falsegenerator.generate.relations=true#Generate deprecated code for backwards
13、compatibility #Defaults to truegenerator.generate.deprecated=false#The destination package of your generated classes (within the destination directory) 将目标java文件生成到哪个包里,可自动创建generator.target.package=#The destination directory of your generated classes此目录不要乱动,当前、#工程的src目录下。固定generator.target.directory=src6、 在项目新增加jooq代码自动生成包里找到org.jooq.util.Gen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年质量知识竞赛考试题库50题带答案
- 2026年科室医院感染管理度质控工作总结(2篇)
- 2026年妇幼保健院传染病诊疗知识培训考试题(附答案)
- 2026年初级化妆师资格证考试备考试题及答案
- 2026年安全标志、标识、标语管理制度
- 2026年村官考试农业农村工作知识模拟题(含答案)
- 2025年随州职业技术学院单招综合素质考试题库及参考答案1套
- 办公室软件课件
- 建材行业ESG评价结果分析:环境议题表现较强披露形式与气候议题分化明显
- 把歌曲加入课件
- 烟草专卖局(公司)招聘考试试题题库(含答案)
- 6.4民生福祉持续增进 议题式教学课件(共24张)+内嵌视频 2026-2027学年统编版道德与法治9年级上册
- 2026年多旋翼无人机超视距驾驶员执照考试题库(新版)
- 2026年广西(高考)化学考试真题附答案
- 旧房翻新施工方案模板(3篇)
- 牧羊少年奇幻之旅
- 消毒供应设施配置和医疗废处置方案
- 2025医院收费员考试试题及参考答案
- 采购帽子合同协议
- 资产分类管理制度制度
- 研发中心组织架构和部门职能及各岗位职责说明书
评论
0/150
提交评论