**1.前台数据访问
使用IVOPersistence服务组件,进行增删改操作;
使用IUAPQueryBS服务组件,进行查询操作。
2.后台数据访问
使用BaseDAO工具类,进行单表对象的CRUD操作;
BaseDAO dao=new BaseDAO()//使用默认的数据源
BaseDAO dao=new BaseDAO(dataSource)//使用指定的数据源**
BaseDAO 是基于JavaBean&&VO的直接操作。可以自己创建VO 或者创建javabean
如果自己创建javebean 需要构建PersonVOMeta 映射文件
1、创建JavaBean 对数据字段进行 get set方法 Serializable序列化一下 要不然会报错
public class Person implements Serializable{
public Person() {
// TODO Auto-generated constructor stub
}
private String id;
private String name;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2、构造数据映射对象 实现接口 **注意对象映射元数据类命名规范为** nc.vo.xxx.XXXVOMeta
nc.jdbc.framework.mapping.IMappingMeta;
public class PersonVOMeta implements IMappingMeta {
private String[] attributes = new String[] { "id", "name", "age" };
private String[] columns = new String[] { "ID", "NAME", "AGE" };
public PersonVOMeta() {
// TODO Auto-generated constructor stub
}
@Override
public String[] getAttributes() {
// TODO Auto-generated method stub
return attributes;
}
@Override
public String[] getColumns() {
// TODO Auto-generated method stub
return columns;
}
@Override
public String getPrimaryKey() {
// TODO Auto-generated method stub
return "ID";
}
@Override
public String getTableName() {
// TODO Auto-generated method stub
return "Person";
}
}
上面创建javabean 创建映射文件后 就可以直接使用baseDao进行CRUD操作。
//查询
BaseDAO dao=new BaseDAO();
PersonVOMeta meta=new PersonVOMeta();
dao.retrieveByClause(Person.class,meta,"id=5");
//保存
BaseDAO dao=new BaseDAO();
Person person=new Person();
person.setName(“tom”);
person.setAge(“20”);
PersonVOMeta meta=new PersonVOMeta();
dao.insertObject(person,meta);//默认会自动为 Person 对象生成主键
如果想要保留Person类中的主键并插入到数据表中应该使用
dao.insertObjectWithPK(person,meta);
//更新
BaseDAO dao=new BaseDAO();
Person person=new Person();
Person.setId(4);
person.setName(“tom”);
person.setAge(“20”);
PersonVOMeta meta=new PersonVOMeta();
dao.updateObject(person,meta);
//删除
BaseDAO dao=new BaseDAO();
Person person=new Person();
Person.setId(“4”);
PersonVOMeta meta=new PersonVOMeta();
dao.deleteObject (person,meta);
BaseDao 是基于后端的数据库操作 不能直接在前端client调用 否则会报找不到数据的错误。
public 目录写接口 IHeadWms
package nc.itf.head.wms;
import nc.head.wms.vo.Person;
import nc.jdbc.framework.mapping.IMappingMeta;
//定义客户端访问接口
public interface IHeadWms {
//插入单vo 使用自己主键
String insertObjectWithPK(Object vo, IMappingMeta meta);
//多条vo 使用自己主键
String[] insertObjectWithPK(Object[] vo, IMappingMeta meta);
String insertObject(Object vo, IMappingMeta meta);
String saveObject(Person p);
String saveObject(Person[] p);
}
private 目录实现接口 HeadWms
public class HeadWms implements IHeadWms {
private BaseDAO dao;
//构造方法创建BaseDao
public HeadWms() {
// TODO Auto-generated constructor stub
dao=new BaseDAO();
}
//系统分配主键
@Override
public String insertObject(Object vo, IMappingMeta meta) {
if(dao!=null){
String insertObject="";
try {
insertObject = dao.insertObject(vo, meta);
} catch (DAOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return insertObject;
}else{
return "Base Dao is null";
}
}
//自己的主键
@Override
public String insertObjectWithPK(Object vo, IMappingMeta meta) {
if(dao!=null){
String insertObjectWithPK="";
try {
insertObjectWithPK = dao.insertObjectWithPK(vo, meta);
} catch (DAOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return insertObjectWithPK;
}else{
return "Base Dao is null";
}
}
//自己主键
@Override
public String[] insertObjectWithPK(Object[] vo, IMappingMeta meta) {
if(dao!=null){
String[] insertObjectWithPK=null;
try {
insertObjectWithPK = dao.insertObjectWithPK(vo, meta);
} catch (DAOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return insertObjectWithPK;
}
return null;
}
@Override
public String saveObject(Person p) {
// TODO Auto-generated method stub
return null;
}
@Override
public String saveObject(Person[] p) {
try {
PersistenceManager manager=PersistenceManager.getInstance("WMS");
JdbcSession session = manager.getJdbcSession();
} catch (DbException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
接口卸完以后 在client端调用
//接口获取baseDao的实现接口
IHeadWms headWms=(IHeadWms) NCLocator.getInstance().lookup(IHeadWms.class.getName());
//实例化映射文件
PersonVOMeta meta=new PersonVOMeta();
//调用保存方法 传入javabean 和meta的映射文件
headWms.saveObject(p,meta);