python 做网站很快吗,雨灿网站建设,有个性的个人网站,asp 网站发布器第一章 grails框架简介
1.1 简介 Grails是一套用于快速Web应用开发的开源框架#xff0c;它基于Groovy编程语言#xff0c;并构建于Spring、Hibernate等开源框架之上#xff0c;是一个高生产力一站式框架。
第二章 grails使用
2.1 教程环境介绍
▲系统#xff1a;w…第一章 grails框架简介
1.1 简介 Grails是一套用于快速Web应用开发的开源框架它基于Groovy编程语言并构建于Spring、Hibernate等开源框架之上是一个高生产力一站式框架。
第二章 grails使用
2.1 教程环境介绍
▲系统windows 10
▲grails框架2.4.4
▲jdk版本
java version 1.8.0_45
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
○开发工具GGTS 32位
○数据库postgreSql 32位
2.2 GGTS中的工程
2.2.1 创建Grsils框架的工程
●打开GGTS ○创建工程 ○创建成功之后 ▲注意正常的是在上面这种视图中是没有红色的感叹号或者是红叉的
2.2.2 .m2文件夹及其其他文件夹说明
在正常的grails框架中去正常的创建完成一个工程就会在你的系统所对因个的用户的文件夹下面生成相应的文件夹
如下 △.m2文件夹说明 在此文夹下面的下一层中就是grails工程所需要的插件jar包
对于这个等同于C:\Users\Administrator\.grails\ivy-cache路径下面的插件但是最终去加载的始终还是.m2中的插件。
2.3 grails框架文档查阅的步骤
2.3.1 官网grails框架文档查阅
●grails官网地址http://www.grails.org/ ▲由于在github上面的版本比较全面 ▲对于点击此处可以看到帮助文档
下面我们找到本教程对应的grails2.4.4版本所对应的文档 ▲还可以下载文档到本地包括框架和源码 ■现在我们点击在线文档进入到框架说明文档 2.3.2 官网grails框架插件文档查阅 ●可以看到有很多的插件
点击序号1就可以进入该插件对应的位置 在此查阅官方文档说明到此结束
2.4 回到工程
2.4.1 配置
▲配置文件 配置数据源DataSource.groovy
插件配置BuildConfig.groovy
主配置log4j日志的配置Config.groovy
启动文件的配置刚开始不需要BootStrap.groovy
URL地址映射的配置UrlMappings.groovy
对于其他的配置在使用时再行添加
2.4.2 postgresql的链接
数据库驱动采用org.postgresql.Driver
数据库连接的URLjdbc:postgresql://127.0.0.1:5432/postgres
2.4.3 JPA
查询能力JPA的查询语言是面向对象而非面向数据库的它以面向对象的自然语法构造查询语句可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQLJava Persistence Query LanguageJPQL是EJB QL的一种扩展它是针对实体的一种查询语言操作对象是实体而不是关系数据库的表而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性甚至还能够支持子查询。
高级特性JPA 中能够支持面向对象的高级特性如类之间的继承、多态和类之间的复杂关系这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用而不需要自行处理这些特性在关系数据库的持久化。
第三章 grails域模型
创建一个domain类
命令create-domain-class com.by.pgsql.Person
给class中写入属性后
想要在数据库中看到此表有一种方法可以刷新在运行工程时时间长的情况
命令console 插入数据 简单的一种方法获取数据get load和read的区别 数据的更新 注意当直接使用save的时候里面没有参数的时候是不会实时的刷新到数据库中的要是有flush:true的时候会及时的刷新到数据库对应的表中的。
删除数据 说明还是上面的一样的情形。都是因为flush的缘故都是因为有没有刷新到数据库
●创建一个不同包中的domain来进行实验
命令grails create-domain-class org.bookstore.Book 2.2 一对一
创建两个domain
create-domain-class facecreate-domain-class Nose
face中有一个nose的情况 此时数据库表中的关系应该是 对于现在里面数据的管理:
在postfreSQL数据库中对于grails工程来说当配置中使用的是update或者是create-drop等可以使得自己创建数据库表的情况下在postgreSQL中生成了一个序列默认的话就只有这一个序列那么这有什么样的影响呢
影响若是在这个数据库中有不止一张表的情况那么在每个表中有数据的时候ID不可能是从1开始的而是从这个序列产生的1……n开始的某一个数。
插入数据
//one to onedef faceAndNose1 { //创建一个Face 先不创建Nose应该是不能被保存到数据库中的def f new Face()def rtn f.save(flush:true)println rtn}def faceAndNose2 {//创建Nose 先进行保存然后以创建出来的nose为创建face的参数进行传递然后进行保存facedef n new Nose()def rtn1 n.save(flush:true)def f new Face(nose:n)def rtn2 f.save(flush:true) println rtn1 ${rtn1} rtn2 ${rtn2}} //返回值并不是一个整数而是存入数据库的对象 要是去删除表中的数据
按照先删除表Face中的数据应该是可以删除成功的但是现在想要在这种情况之下先删除Nose表中的数据应该是不能被删除的情况下面进行实验
上面的1和2是正确的因为外键的关联致使不能这样做
2.2.1 beLongTo的说明
上面的难道就是书里面说的单向的。
在文档中有一个belongsTo的说明下面暂且试试
改变Nose中的内容 表中的数据还是没有发生改变表中的结构也没有发生改变
但是保存数据的时候是没有区别的但是在删除数据的时候是有很大的区别的之前说的删除数据的时候是直接删除的是Face表中的数据但是对Nose表中的数据是没有影响的。但是有了beLongTo之后删除表Face中的一条数据的同时由于和Nose表中的数据有关联外键关联由于现在是双向的所以外键关联的那个也会被删除这是相对于Nose表中的那条数据是和Face中的数据一一对应的那个。
但是Nose中的一个主键是Face中的多条数据中都有的情况下应该是不会被删除的。
也就是如图 删除别的相关的数据 要是想删除的话必须把Nose就是bolongto存在的那一方的给删除了
经过实验这样也是删除不了的。
那么应该怎么删除呢
在上面Nose中使用了belong之后不能用Nose.get()来获取数据了
2.2.2 hasOne的说明 数据的更新和删除
使用hasOne会在使用方逆方向上Nose上面创建一个face的外键也是双向的。和上面的belongto是相同的。
这种情况中nose unique: true所以在nose表中的外键face_id是唯一约束的。
2.2.3 Person中的Person 数据表中的数据