Vaadin Web应用开发教程(48): SQLContainer-编辑

和普通Container修改其中Item项类似,SQLContainer 可以使用类似的方法来编辑其中的Item。RowItem的ColumnProperties 会自动通知SQLContainer关于数据的变化并应用到数据库。
添加Item
向SQLContainer中添加一项是通过方法addItem()来完成的。这个方法将创建一个新的Item,新创建的Item可以在内存中缓存或直接添加到数据库中。这取决于SQLContainer的auto commit 模式。

实际也只能通过addItem() 方法向SQLContainer中添加记录,其它由Container定义的方法SQLContainer并不支持:

public boolean addContainerProperty(Object propertyId,
                                    Class<?> type,
                                    Object defaultValue)
public boolean removeContainerProperty(Object propertyId)
public Item addItem(Object itemId)
public Object addItemAt(int index)
public Item addItemAt(int index, Object newItemId)
public Object addItemAfter(Object previousItemId)
public Item addItemAfter(Object previousItemId, Object newItemId)
此外RowItem 不支持的Item方法有:

public boolean addItemProperty(Object id, Property property)
public boolean removeItemProperty(Object id)

下面的例子向Customer 表中添加一个记录 James ,Shen, Tribute Street, Perth

void addCustomer(SQLContainer sqlContainer){
		
	sqlContainer.setAutoCommit(false);
	TemporaryRowId rowId=(TemporaryRowId)sqlContainer.addItem();
	if(rowId!=null){
		RowItem rowItem=(RowItem)sqlContainer.getItem(rowId);
		ColumnProperty firstName=(ColumnProperty)rowItem.getItemProperty("FIRSTNAME");
		firstName.setValue("James");
		ColumnProperty lastName=(ColumnProperty)rowItem.getItemProperty("LASTNAME");
		lastName.setValue("Shen");
		ColumnProperty street=(ColumnProperty)rowItem.getItemProperty("STREET");
		street.setValue("Tribute Steet");
		ColumnProperty city=(ColumnProperty)rowItem.getItemProperty("CITY");
		city.setValue("Perth");
		ColumnProperty Id=(ColumnProperty)rowItem.getItemProperty("ID");
		Id.setValue(50);
		rowItem.commit();
		
	}
}

整体感觉使用SQLContainer编辑数据并不十分方便,还不如直接使用SQL语句或是使用hibernate.来的方便。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值