`

bboss持久层demo使用说明

阅读更多
持久层案例可以用svn客户端下载eclipse工程,导入eclise即可
https://github.com/bbossgroups/bbossgroups-3.5/tree/master/bestpractice/persistent

环境准备,建好数据库,然后再数据库上执行以下脚本(不同的数据库需要做些微调):
drop table TABLEINFO cascade constraints;

CREATE TABLE TABLEINFO
(
  TABLE_NAME          VARCHAR2(255)        NOT NULL,
  TABLE_ID_NAME       VARCHAR2(255),
  TABLE_ID_INCREMENT  NUMBER(5)                 DEFAULT 1,
  TABLE_ID_VALUE      NUMBER(20)                DEFAULT 0,
  TABLE_ID_GENERATOR  VARCHAR2(255),
  TABLE_ID_TYPE       VARCHAR2(255),
  TABLE_ID_PREFIX     VARCHAR2(255)
);

COMMENT ON TABLE TABLEINFO IS '表信息维护对象';

COMMENT ON COLUMN TABLEINFO.TABLE_NAME IS '表名称';


COMMENT ON COLUMN TABLEINFO.TABLE_ID_NAME IS '表的主键名称';

COMMENT ON COLUMN TABLEINFO.TABLE_ID_INCREMENT IS '表的主键递增量
缺省为1';

COMMENT ON COLUMN TABLEINFO.TABLE_ID_VALUE IS '主键当前值:缺省为0';

COMMENT ON COLUMN TABLEINFO.TABLE_ID_GENERATOR IS '自定义表主键生成机制
必需从
com.frameworkset.common.poolman.sql.PrimaryKey集成';

COMMENT ON COLUMN TABLEINFO.TABLE_ID_TYPE IS '主键类型(string,int)';

COMMENT ON COLUMN TABLEINFO.TABLE_ID_PREFIX IS '类型为string的主键前缀,可指定可不指定,缺省值为""';


CREATE UNIQUE INDEX PK_TABLEINFO0 ON TABLEINFO(TABLE_NAME);



ALTER TABLE TABLEINFO ADD   CONSTRAINT PK_TABLEINFO0 PRIMARY KEY (TABLE_NAME);

CREATE
    TABLE LISTBEAN
    (
        ID INTEGER NOT NULL,
        FIELDNAME VARCHAR(300),
        FIELDLABLE VARCHAR(300),
        FIELDTYPE VARCHAR(300),
        SORTORDER VARCHAR(300),
        ISPRIMARYKEY INTEGER,
        REQUIRED INTEGER,
        FIELDLENGTH INTEGER,
        ISVALIDATED INTEGER,
        CONSTRAINT LISTBEANKEY PRIMARY KEY (ID)
    );
insert into TABLEINFO (TABLE_NAME, TABLE_ID_NAME, TABLE_ID_INCREMENT, TABLE_ID_VALUE, TABLE_ID_GENERATOR, TABLE_ID_TYPE, TABLE_ID_PREFIX) values ('LISTBEAN', 'id', 1, 0, null, 'int', null);
commit;


修改src/poolman.xml中的数据库驱动、链接地址、账号和口令,即可运行工程下的测试用例:
src/com/frameworkset/sqlexecutor/ConfigSQLExecutorTest.java

poolman.xml中需要修改的属性,只要将其中的值改为特定数据库配置即可:
<jndiName>jdbc/derby-ds</jndiName>
    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
     <url>jdbc:derby:D:/workspace/bbossgroups-3.2/bboss-mvc/database/cimdb</url> 
    <username></username>   
    <password></password> 
    <validationQuery></validationQuery>


更多持久层资料可以浏览:
http://yin-bp.iteye.com/category/55607
分享到:
评论
15 楼 yin_bp 2015-01-15  
huazi221 写道
有演示网站么?

目前没有
14 楼 huazi221 2015-01-15  
有演示网站么?
13 楼 yin_bp 2014-10-08  
huangjia7 写道
yin_bp 写道
huangjia7 写道
请问下尹工,在service层如何得到数据字典表 所定义的某个字典类型?


问题要描述清楚一点哦,获取什么字典类型啊


不好意思,是获得 基础字典类型。


还是不知道你要实现什么功能,看看下面这段代码是不是你需要的:
import com.frameworkset.dictionary.Data;
import com.frameworkset.dictionary.DataManagerFactory;
import com.frameworkset.dictionary.ProfessionDataManagerException;


try {
			Data data = DataManagerFactory.getDataManager().getData(dicttype);//根据字典类型获取字典数据对象
			String name = data.getItemNameByValue(value);//根据字典项值获取对应的名称
			String value = data.getItemValueByName(name);//根据字典项名称获取项的值
		} catch (ProfessionDataManagerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

12 楼 huangjia7 2014-10-08  
yin_bp 写道
huangjia7 写道
请问下尹工,在service层如何得到数据字典表 所定义的某个字典类型?


问题要描述清楚一点哦,获取什么字典类型啊


不好意思,是获得 基础字典类型。
11 楼 yin_bp 2014-10-08  
huangjia7 写道
请问下尹工,在service层如何得到数据字典表 所定义的某个字典类型?


问题要描述清楚一点哦,获取什么字典类型啊
10 楼 huangjia7 2014-10-08  
请问下尹工,在service层如何得到数据字典表 所定义的某个字典类型?
9 楼 yin_bp 2014-09-12  
如何不在xml中写sql,而直接在程序中写sql查出表中的所有记录?
方法如下:
List<HashMap> datas = SQLExecutor.queryList(HashMap.class,"select * from tablename");//其中的HashMap中key为表中字段名称的大写方式


或者

List<Bean> datas = SQLExecutor.queryList(Bean.class,"select * from tablename");


如果要带条件的话,可以采用下述方式:
List<HashMap> datas = SQLExecutor.queryList(HashMap.class,"select * from tablename where id=?",10);//其中的HashMap中key为表中字段名称的大写方式


或者

List<Bean> datas = SQLExecutor.queryList(Bean.class,"select * from tablename where id=?",10);
8 楼 yin_bp 2014-09-12  
终于这个时间Timestamp类型属性无法在界面上显示的原因:
页面标签使用方法,没有问题:
<pg:cell colName="createtime" dateformat="yyyy-MM-dd HH:mm:ss"/>

对应的数据库字段类型Timestamp,没问题。

bean属性定义,没问题:
@RequestParam(name="createdate",dateformat="yyyy-MM-dd hh:mm:ss")
    private Timestamp createdate;

bean属性get方法,问题就出在这个方法上面,返回值时Date类型,而不是Timestamp类型,改正后问题解决:
public Date getCreatedate()
{
       return createdate;
}

7 楼 yin_bp 2014-09-11  
在数据库中创建以下表:
create table TESTPK
(
  ID VARCHAR2(100),
  CT TIMESTAMP(6)
)

然后定义一个测试类TestPK
public static class TestPK
	{
		@PrimaryKey(auto=true)
		private String id;
		private Timestamp ct;
		public String getId() {
			return id;
		}
		public void setId(String id) {
			this.id = id;
		}
		public Timestamp getCt() {
			return ct;
		}
		public void setCt(Timestamp ct) {
			this.ct = ct;
		}
	}


再执行以下测试方法,看看能不能取到值:
/**
	 * create table TESTPK
		(
		  ID VARCHAR2(100),
		  CT TIMESTAMP(6)
		)
	 */
	@Test
	public void testpk()
	{
		TestPK test = new TestPK();
		test.setCt(new Timestamp(System.currentTimeMillis()));
		try {
			SQLExecutor.insertBean("insert into testpk(id,ct) values(#[id],#[ct])", test);
			System.out.println("id:"+test.getId());
			TestPK test1 =  SQLExecutor.queryObjectBean(TestPK.class, "select * from testpk where id=#[id]", test);
			System.out.println("id:"+test1.getId());
			System.out.println("ct:"+test1.getCt());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


如果能够正常执行的话,就会在控制台输出以下值:
id:1fab4fcf-395d-11e4-9073-4437e6999f90
id:1fab4fcf-395d-11e4-9073-4437e6999f90
ct:2014-09-11 10:41:09.628


6 楼 yin_bp 2014-09-11  
例子中用了SQLExecutor,它的功能和ConfigSQLExecutor功能完全一样,不同的是ConfigSQLExecutor对应的sql配置在xml文档中。
5 楼 liqing0304 2014-09-11  
控制层的代码是为了获取当前时间
sql语句:insert into Rm_Rent_Items
  (ID, ROOMID,LESSEE, ITEMID,  LEASNUM, RENTDATE, PRICE, LENGTHS, RETURNDATE, PAYMODE, AMOUNT,
  DEPOSIT, REMARKS, ITEMSTATUS, CREATOR, CREATEDATE, MODIFIER, MODIFYDATE)
values
  (#[id],#[roomid], #[lessee], #[itemid],
  #[leasnum], #[rentdate], #[price],
  #[lengths], #[returndate], #[paymode], #[amount], #[deposit],
   #[remarks], #[itemstatus], #[creator], #[createdate],
  #[modifier], #[modifydate])没做任何处理,但插入进去的时间类型没有时分秒
4 楼 yin_bp 2014-09-11  
还有就是如果界面input name与bean属性名称一致:
@RequestParam(name="createdate",dateformat="yyyy-MM-dd HH:mm:ss")
    private Timestamp createdate;
就可以改为:
@RequestParam(dateformat="yyyy-MM-dd HH:mm:ss")
    private Timestamp createdate;

其他方面,除了那段多于的代码,没有看出有什么问题,怎么会存不进去时分秒呢!!
3 楼 yin_bp 2014-09-11  
另外你那个
@RequestParam(name="createdate",dateformat="yyyy-MM-dd hh:mm:ss")
    private Timestamp createdate;
中的时间格式最好改为:
@RequestParam(name="createdate",dateformat="yyyy-MM-dd HH:mm:ss")
    private Timestamp createdate;
2 楼 yin_bp 2014-09-11  
把sql语句也贴出来看看,另外,在控制器层这段代码应该是没有用的吧:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

bean.setCreatedate(Timestamp.valueOf(df.format(new Date())) );//设置创建时间
1 楼 liqing0304 2014-09-11  
在 entity的bean创建了
/** 创建日期 */
    @RequestParam(name="createdate",dateformat="yyyy-MM-dd hh:mm:ss")
    private Timestamp createdate;

在控制层用
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

bean.setCreatedate(Timestamp.valueOf(df.format(new Date())) );//设置创建时间

service层直接调用方法插入数据库

数据库的表格设计:
CREATEDATE TIMESTAMP(6) 创建日期
存储进去的数据没有时分秒

相关推荐

    bboss mvcdemo 下载地址

    在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...

    基于JavaScript和CSS的bboss会话共享demo设计源码

    本项目是基于JavaScript和CSS开发的bboss会话共享demo,包含421个文件,其中包括114个GIF图像文件、111个JPG图像文件、88个PNG图像文件、29个JavaScript脚本文件、20个CSS样式表文件、18个XML配置文件、12个JSP页面...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss 插件工程,持久层hibernate/hibernate4插件

    bboss-plugins project.包含kafka、log4j、spring、dubbo、activemq、word转pdf、pdf转swf项目,持久层hibernate/hibernate4插件

    elasticsearch:基于springboot整合bboss es实现的demo项目

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    基于Java的bboss插件集设计源码,涵盖文档转换及持久层技术

    该项目为bboss插件集的Java设计源码,总计277个文件,涵盖163个Java源文件、22个XML配置文件、14个Gradle构建脚本、13个Git忽略规则、13个属性文件以及少量的JavaScript、HTML、CSS和Shell脚本,主要用于文档转换和...

    bboss会话共享培训文档

    例如,在一个域下的多个子应用之间,使用bboss可以共享认证信息,用户登录其中一个应用后,无需再次登录即可访问其他应用。 文档中提到了会话共享需要解决的五大技术难题: 1. session数据序列化问题,即如何有效...

    bboss ioc配置文件中使用外部属性文件介绍

    除了`&lt;property-placeholder&gt;`标签,BBoss还支持使用`&lt;context:property-placeholder&gt;`标签,它是Spring框架的一部分,也可以与BBoss集成使用。这种方式的配置类似,但提供了更多的选项,如默认值、忽略未定义的属性...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss+es基本操作示例.zip

    在`demo`这个文件中,可能包含了使用bboss操作Elasticsearch的基本示例代码。例如,创建索引、插入文档、执行查询等。通常,这些示例会展示如何初始化bboss客户端,如何构造和执行DSL查询,以及如何处理返回结果。 ...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    BBoss Persistent是一个轻量级的持久层框架,它提供了方便的方式来处理这些大字段。本文将深入探讨在BBoss Persistent 1.0.2中如何高效地管理CLOB和BLOB数据。 首先,CLOB用于存储大量的文本数据,如长篇文章或XML...

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    bboss 安全认证过滤器功能介绍

    3. **销毁清理**:当应用关闭或过滤器不再使用时,`destroy()`方法会被调用,用于清理资源。 在BBoss框架中,安全认证通常涉及以下步骤: 1. **用户登录**:用户通过提交用户名和密码发起登录请求,服务器验证这些...

    J2EE企业级开源框架bboss v5.0.6.8

    bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...

Global site tag (gtag.js) - Google Analytics