Grails项目两周笔记

很多原因,做这么个项目( :twisted: )不爽

数据库设计由一位老师给做,没做过java项目
框架由自己选,鉴于学习之用,毫无疑问Grails
还有不知从那搞来一个详细设计模板。郁闷,总是很难适应那个模板设计方法
详细设计最起码要根据框架来觉得,怎么个设计风格。看样子那个是以前做vb用的。

受制于人的开发,呵呵,不说这个了,就说学习实践吧。

首先 DB 在Grail中就是模型,但是数据库不是本人做,那种设计出来的数据库几乎就是
跟移植旧项目一样,算了。忍了,就当移植了。刚开始是在model类中写mapping几乎快要完成了碰到非常郁闷的问题,数据库中类型是char(n)的,怎么也映射不了,最后还是全部写成hbm.xml了。建议以后要是移植,全部写成hbm.xml,省得麻烦。grails中好像还没有完全实现hibernate中的映射规则。

总结一下映射

table 'BOOKS_MST'
version false

id column:'BOOK_ID'
id generator:'assigned'

status column:'STATUS_FLG'
// createDatetime sqlType : 'char(14)'


table 名字可以映射
version 数据库中没有,去掉,乐观锁就被去掉了,疯掉 呵呵
数据库没有设计与业务无关主键,所以 id 改 generator 改
还有映射列名可以改
映射列类型可以改 但是好像只能是hibernate类型 ,没有sql-type,我就是这点跑到hbm.xml中去的。

然手说hbm.xml映射,基本上和java的一样,先贴代码
grails-app/conf/bibernate/hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<mapping resource="Book.hbm.xml"/>
<mapping resource="User.hbm.xml"/>
<mapping resource="BorrowInfo.hbm.xml"/>
</session-factory>
</hibernate-configuration>



hbm.xml和hibernate.cfg.xml在同一文件夹中 ,贴一个吧

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="BorrowInfo" table="RENTAL_TBL">
<id name="id">
<column name="RENTAL_ID" sql-type="CHAR(14)"></column>
<generator class="assigned"></generator>
</id>


<property name="reserveDate">
<column name="RESERVE_DATE" sql-type="CHAR(8)"/>
</property>
<property name="rentalDate">
<column name="RENTAL_DATE" sql-type="CHAR(8)"/>
</property>
<property name="returnDate">
<column name="RETURN_DATE" sql-type="CHAR(8)"/>
</property>

<property name="comment" column="COMMENT" type="string"/>

<many-to-one name="book" class="Book">
<column name="BOOK_ID" not-null="true"></column>
</many-to-one>
<many-to-one name="user" class="User" >
<column name="USER_ID" ></column>
</many-to-one>
<property name="gotDatetime">
<column name="GET_DATETIME" sql-type="CHAR(14)"/>
</property>

<property name="createDatetime">
<column name="CREATE_DATETIME" sql-type="CHAR(14)"/>
</property>
<property name="updateDatetime">
<column name="UPDATE_DATETIME" sql-type="CHAR(14)"/>
</property>

<property name="deleteFlag" column="DELETE_FLAG" type="character" />

</class>
</hibernate-mapping>



class name 直接写类名,我还没有试过在包里写东西,呵呵,写的东西太小了,有机会再试
剩下的事情,和以前的做法没有什么不同的,看见郁闷的映射了吧。时间全映射成字符什么yyyMMddHHmmss这都哪辈子的做法。提一下,这点到我最后写页面时候全写成标签。
映射 几乎没有什么问题了。

忘了说了,如果类的主键generator是 assigned 在BootStrap中初始化数据的时候一定要写成

def user = new User(userName:'zhangFei',password:'user',authCode : '0' as char)
user.userId = 'user'
user.save(insert:true)

要不然,有个什么异常,忘了,应该是跟groovy有关系,没研究过。groovy还没怎么学呢,准备看grails源码是在学。这东西总归还得看,要不然,写的代码就像漂着的一样总不踏实。
接下来说Filter吧
在conf下建个类结尾是Fiters就行,一个类里可以写好多fiter 也可以写成几个类,但是这个顺序在哪控制,目前还不知道。这没什么好说的,贴个模板


public class LoginFilters{
def filters = {
loginCheck(controller:'*', action:'*') {
before = {

}
}
authCheck(controller:'*',action:'*'){
before = {

}
}
}
}

就在这里定义fiter 这个有两个fiter loginCheck 和authCheck 很简单,以后用查文档吧。

下次再写吧

最后提醒一下,grails几乎是不需要重启就可以热部署的,但是出现莫名其妙的问题,建议重启后再确认问题。conf 和services中写的代码要重启才行,所以在写service是后先提出来放在action中调试,能跑通了,在移到service类中。fiter和taglib也不需要重启,这点非常方便,还是那句话,有莫名其妙的问题,先重启,再确认。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。
VR(Virtual Reality)即虚拟现实,是一种可以创建和体验虚拟世界的计算机技术。它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,使用户沉浸到该环境中。VR技术通过模拟人的视觉、听觉、触觉等感觉器官功能,使人能够沉浸在计算机生成的虚拟境界中,并能够通过语言、手势等自然的方式与之进行实时交互,创建了一种适人化的多维信息空间。 VR技术具有以下主要特点: 沉浸感:用户感到作为主角存在于模拟环境中的真实程度。理想的模拟环境应该使用户难以分辨真假,使用户全身心地投入到计算机创建的三维虚拟环境中,该环境中的一切看上去是真的,听上去是真的,动起来是真的,甚至闻起来、尝起来等一切感觉都是真的,如同在现实世界中的感觉一样。 交互性:用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取模拟环境中虚拟的物体,这时手有握着东西的感觉,并可以感觉物体的重量,视野中被抓的物体也能立刻随着手的移动而移动。 构想性:也称想象性,指用户沉浸在多维信息空间中,依靠自己的感知和认知能力获取知识,发挥主观能动性,寻求解答,形成新的概念。此概念不仅是指观念上或语言上的创意,而且可以是指对某些客观存在事物的创造性设想和安排。 VR技术可以应用于各个领域,如游戏、娱乐、教育、医疗、军事、房地产、工业仿真等。随着VR技术的不断发展,它正在改变人们的生活和工作方式,为人们带来全新的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值