• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

mgds4j: 梦来梦往 自己写的数据源mgds4j全称mgang datasource for java

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

mgds4j

开源软件地址:

https://gitee.com/mgang/mgds4j

开源软件介绍:

mgds4j

梦来梦往 自己实现的数据源与连接池工具,全称 mgang datasource for java

##2015-04-231.升级mgds4j的日志功能,基于log4j。
只需要在mgds4j.xml中的factory节点下配置常量constant key=openLog value=true 即可。

##2014-12-11.生成javadoc文档,微调javadoc注释。
2.export出的mgds4j-2.1.jar包放到outjar文件夹下,方便依赖使用。

##2014-11-28升级日志:v1.1

  1. 将等待时间抽出到配置文件中,默认是2000毫秒。

升级日志:v2.0
因为考虑到数据源和连接池的概念,数据源是使用连接池技术来缓存数据库连接供外使用的工具对象。
所以,将MgDataSource.java和MgConnectionPool.java合并成一个文件MgDataSource.java.
并测试通过。

升级日志:v2.1

  1. 升级配置文件properties为xml

  2. 加入工厂模式,单例模式,使用反射来实现。
    单例模式:

    private static MgDataSource mgds = null;private MgDataSource(){//私有的构造函数}/**

    • 得到MgDataSource的单例对象
    • @return*/public static MgDataSource getInstance(){if(null == mgds){mgds = new MgDataSource();}return mgds;}

工厂模式:

//创建工厂MgDataSourceFactory.build();//从工厂得到数据源ds = MgDataSourceFactory.getMgDataSource("ds");

反射机制核心:

//通过调用static函数getInstance来得到单例对象Class dsClass = Class.forName(clazz);ds = (MgDataSource) dsClass.getMethod("getInstance", null).invoke(dsClass, null);factory.put(name, ds);//得到dataSource下的property节点Iterator ps = dsElement.elementIterator("property"); while(ps.hasNext()){	Element propertyElement = (Element) ps.next();	String key = propertyElement.attributeValue("key");	String value = propertyElement.attributeValue("value");	String type = propertyElement.attributeValue("type");	if(type.equals("string")){		Method m = MgDataSource.class.getMethod("set"+UpperFirst(key),String.class);		m.invoke(ds, value);	}else if(type.equals("int")){		Method m = MgDataSource.class.getMethod("set"+UpperFirst(key),int.class);		m.invoke(ds, Integer.parseInt(value.trim()));	}}

##2014-11-27今天我本来是解决struts2参数传递有时候会出现null的问题的,但是没想在此过程中碰到了45s问题和
数据库连接connection refused的问题。然后,和这两个问题一较劲,我就来解决这边了。

还好的是,都有了一定的突破。
45s问题已在网上找到解决方法,但是我还是会在我的网易博客中来写到的。
第二个问题就是数据库的连接问题了,查了一些资料,发现可能是数据源的问题,然后我就来到了数据源
与连接池的对面。

也成功的使用了常用的数据源dbcp和c3p0这两个。
然后,我就想到了自己来写这样一个数据源,利用连接池技术。当然可能做不到像dbcp和c3p0这样的成
熟技术好用。但是,我还是会自己去实现一番,就算自己以后还是用专业的数据源,这样做了也是一种进步。

如此,mgds4j这个项目也就诞生了。


今天算是我完成的1.0版本。

  1. 实现连接池缓存数据库连接
  2. 数据源得到连接,归还连接
  3. 当无可用连接,按一定的长度自动增长连接池

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Redis3m: A cpp client for redis.发布时间:2022-03-24
下一篇:
DBM: DBM for EUI发布时间:2022-03-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap