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也不需要重启,这点非常方便,还是那句话,有莫名其妙的问题,先重启,再确认。
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值