Artisan框架使用帮助

创建表 添加字段 表间关联

数据库操作相关

Entity写法

1. Entity标签  (等同一条sql语句,默认属性,共用表

<entity name="project" table="Artisan_Project" orderBy="CreateTime" asc="false">  </entity>//

 

与sql语句 create table if not exists Artisan_Project (…字段声明) order by CreateTime desc 同义。//如果不存在Atisan 工程创建表并按创建时间降序排列。

 

 

系统默认会添加四个字段 ID,CreateTime,ModifiedTIme,Version,其余字段根据业务逻辑自行添加

 

<entity name="designtask" extends="project"  conditions="IsDesignTask=1"></entity>

//符合条件字段值得记录创建表

 

这条语句声明designtask 实体类与 project 共用一张表(extends), project表中字段IsDesignTask值为1的记录为designtask,  designtask中声明的字段名也会在project表中添加对应字段名的表列

 

2. Field标签(新增字段)

<entity name="localproject" table="Artisan_Localproject" orderBy="CreateTime"

asc="false">

 

 

<field name="ProjectName" title="项目名称" />

  <field name="DesignAssignTime" type="datetime" />

</entity>

表明Artisan_Localproject表  中新增一列名为ProjectName,类型为String,新增一列名为DesignAssignTime,类型为yyyy-MM-dd HH:mm:ss 格式的日期加时间

 

Type属性默认为string, 其他可选属性为

date(yyyy-MM-dd 日期的格式)

clob(长文本)

id(uuid)

money(金额格式的浮点数)

number(数字格式,和size属性一起用、如type=”number” size=”(10,2)”表示总长度为10,精确到小数点后2位)

integer(整数)、boolean(布尔类型)

 

3. Relation标签

<entity name="localproject" table="Artisan_Localproject" orderBy="CreateTime"

asc="false">

 

 

 <relation name="comp1" table="Artisan_Company" local="CompanyID" />

<field name="CompanyName" title="客户" relation="comp1" column="Name" />

 

 

 

</entity>

表Artisan_localproject中存在外键CompanyID与Artisan_Company中的ID一对一关联,

 

根据以上关联,Artisan_localproject中CompanyName字段与Artisan_Company中的Name相等

 

4. Item标签(表间关联)

<entity name="localproject" table="Artisan_Localproject" orderBy="CreateTime"

asc="false">

<item name="morepersons1" table="Artisan_Project_More_Persons"

local="ProjectID">

 

 

<field name="PersonName" />

 

</item>

</entity>

表Artisan_Localproject与表Artisan_Project_More_Persons存在一对多关联,

Artisan_Project_More_Persons中外键为ProjectID与Artisan_Localproject中的ID关联

 

 

Artisan架构中数据库操作相关API

1.   加载表中指定ID的数据

BeanData designRequestData = DaoAction.load("projectrequest", dataset.getString("RequestID"));

 

通过DaoAction.load()方法加载某表中指定ID的一条数据,

实例代码为在projectrequest对应表中查找ID与第二个参数相等的数据

 

5. 查询表中符合条件的一条或多条数据

RowDatas<RowData> summarys = DaoAction.query("summary", Cnds.eq("ProjectID", data.getIdValue()));

 

通过DaoAction.query()方法去指定表中查询符合条件的数据,第一个参数为entity中的name属性,第二个参数为Cnds,可以调用Cnds类中的相关方法获取查询条件

实例代码与sql select * from Artisan_Summarys where ProjectID = ? 意义相同

 

6. 保存数据到数据库中

调用DaoAction.save()方法将数据保存到数据库中

7. 在表中新增一条数据

BeanData summary=DaoAction.create("summary");

summary.set("ProjectID", data.getIdValue());

summary.set("ExhName", data.get("Name"));

summary.set("Exh_Year", data.get("Exh_Year"));

summary.set("ReceivableAmount", 0);

summary.set("PayableAmount", 0);

summary.set("Net", 0);

DaoAction.save(summary);

 

调用DaoAction.create()方法新增数据,然后通过set方法设置各个字段的值,最后调用DaoAction.save()方法将数据保存到数据库中

 

 

 

界面相关代码

业务逻辑相关界面代码参见自定义Composer中,要查看数据绑定,事件定义等架构中的过程,自行查看架包中的源代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值