здравствуйте. не могу разобраться. нужно с помощью GWT,HSQLDB, Apache Cayenne 3.0 сделать добавление в базу,редактирование и сохранение. БД состоит из одной таблицы TREE, содержащей данные о посаженных деревьях: name – наименование сорта дерева, plant_date – дата посадки дерева и alive (true/false) – живо ли дерево мне не понятно как вообще подключиться к базе и в нее предавать что-то? и где этот код вставить?в класс клиента или еще куда? и где писать создание экранных форм,тоже в клиенте? вот имеющийся код: для сервера | Код | package com.nic.test.server;
import java.util.Date;
import org.apache.cayenne.DataObjectUtils; import org.apache.cayenne.access.DataContext;
import com.nic.test.server.data.Tree;
public class CayenneBenchmark { static final DataContext context = DataContext.createDataContext(); public static void main(String[] args) { Object id = createTestData(); updateTestData(id); removeTestData(id); } private static Object createTestData() { //create and register new object Tree tree = context.newObject(Tree.class); //set properties tree.setName("Pine"); tree.setPlantDate(new Date()); tree.setAlive(true); //commit changes context.commitChanges(); //return new object's ID return DataObjectUtils.pkForObject(tree); }
private static void updateTestData(Object id) { //fetch object Tree tree = DataObjectUtils.objectForPK(context, Tree.class, id); //update properties tree.setAlive(false); //commit changes context.commitChanges(); } private static void removeTestData(Object id) { //fetch object Tree tree = DataObjectUtils.objectForPK(context, Tree.class, id); //remove it context.deleteObject(tree); //commit changes context.commitChanges(); } }
|
для параметров дерева: | Код | package com.nic.test.server.data.auto;
import java.util.Date;
import org.apache.cayenne.CayenneDataObject;
/** * Class _Tree was generated by Cayenne. * It is probably a good idea to avoid changing this class manually, * since it may be overwritten next time code is regenerated. * If you need to make any customizations, please use subclass. */ public abstract class _Tree extends CayenneDataObject {
public static final String ALIVE_PROPERTY = "alive"; public static final String NAME_PROPERTY = "name"; public static final String PLANT_DATE_PROPERTY = "plantDate";
public static final String TREE_ID_PK_COLUMN = "tree_id";
public void setAlive(Boolean alive) { writeProperty("alive", alive); } public Boolean getAlive() { return (Boolean)readProperty("alive"); }
public void setName(String name) { writeProperty("name", name); } public String getName() { return (String)readProperty("name"); }
public void setPlantDate(Date plantDate) { writeProperty("plantDate", plantDate); } public Date getPlantDate() { return (Date)readProperty("plantDate"); }
}
|
и сам скрипт БД: | Код | CREATE SCHEMA PUBLIC AUTHORIZATION DBA CREATE CACHED TABLE TREE(ALIVE BOOLEAN NOT NULL,NAME VARCHAR(100) NOT NULL,PLANT_DATE TIMESTAMP NOT NULL,TREE_ID BIGINT NOT NULL PRIMARY KEY) CREATE MEMORY TABLE AUTO_PK_SUPPORT(TABLE_NAME CHAR(100) NOT NULL PRIMARY KEY,NEXT_ID BIGINT NOT NULL) CREATE USER SA PASSWORD "" GRANT DBA TO SA SET WRITE_DELAY 20 SET SCHEMA PUBLIC INSERT INTO AUTO_PK_SUPPORT VALUES('TREE',200)
|
буду благодарен за помощь. или подобный пример и полезные ссылки. Это сообщение отредактировал(а) stan90 - 25.10.2011, 23:32
|