![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
freyja-jdbc
文章平均质量分 87
ak121077313
这个作者很懒,什么都没留下…
展开
-
freyja 将引入另外一项功能大幅提高服务器性能
附件已经更新了最新的src,test项目和lib 还是一样前面有提供下载。 group 功能和批量save。 update之类的再补上。 group相当于一个索引。一个表只能有一个group 设为group的字段必须是唯一的。例如 以User为核心,与User一对多的表都把uid 设置为group: @Group(isGroup=true)这样能大幅减少维护缓存的开销。----...2011-12-15 15:50:09 · 81 阅读 · 0 评论 -
FreyjaJdbcTemplate目前的几个问题
freyja发布了预览版:FreyjaJdbcTemplate预览版 有的属于工作量问题,思路有了等待完善。如查询缓存、维护缓存一致、提供更丰富的接口与支持、主键。麻烦些的有延迟加载之类的。 没有思路的如:原生sql执行update/delete 如何维护缓存 到现在也无法想明白的如:事物 如果按照现在的做法唯一的问题是没办法满足事物隔离性。如果...2011-11-17 17:35:55 · 72 阅读 · 0 评论 -
freyja 功能基本完毕
freyja 的功能基本完毕。后续只会改进这些功能的性能和bug。 不太会有事物支持、hql语法支持、也不会支持分布式。 bean 和src都再下面可以下载。test项目在http://code.google.com/p/freyja-jdbc/可以下载。再测试一段时间,第一个版本大概可以出来了。 FreyjaJdbcTemplate的开发前言 ...2011-11-23 11:52:36 · 221 阅读 · 0 评论 -
Freyja的查询缓存功能详解
freyja作为项目中取代hibernate的ORM框架很符合我的心意,原本来说hibernate对开发效率基本没什么提升,而hibernate的执行效率来说本身属于比较慢的一类。 这类框架都属于JDBC的一层封装,在性能方面,能体现出价值的地方就在于如何利用好缓存。针对项目本身不需要集群、分库。freyja从设计一开始就少了许多负担。 查询缓存作为ORM框架中的重要一环,在此我写...2011-11-26 15:32:09 · 137 阅读 · 0 评论 -
如何最大化利用缓存
在查询缓存里面,我这么处理一条查询sql: select o from table where x 重点是 o 和 x o是查询结果,x是查询条件 查询结果不重要,查询条件需要判断你能否处理得了查询条件。 目前,查询条件中带函数的sqlfreyja处理不了。原因很简单,如:select * from user where date_format(create...2011-11-29 16:31:43 · 126 阅读 · 0 评论 -
FreyjaJdbcTemplate 大致上完工了,想请人重构。。
最后一个功能动态update完成,freyja还需要稳定性测试,并且检查疏漏的地方。 我对freyja的这套想法还是很满意的,cache就是几个map。不需要序列化。执行update方法的时候维护缓存。如何在当前方法里面知道是否开启了事物?如何知道几个方法是否在同一个事物里面?我没有找到相关的API方法,但是根据同一个事物会共用一个连接来判断是否在同一个事物里面。然后根据“...2011-12-01 19:20:28 · 71 阅读 · 0 评论 -
freyja 将引入“分组”概念进一步提高维护缓存时的效率
目前的freyja在维护缓存的时候是将表分为多个字段,每个字段负责维护与字段有关的缓存。当字段update的时候去检测是否需要缓存失效。经过我对这些数据的分析,引入分组概念能加快维护缓存的效率。例如,大部分数据都是围绕用户产生的,User、Hero、Building 他们都是一对多关系,在这些表当中,大部分查询都是限于当前用户的数据查询。那么按userId分组将大大的减少检索的内容,从而提高维...2011-12-10 11:00:02 · 95 阅读 · 0 评论 -
freyja更新
因为工作的关系好就没更新了。现在的版本越来越稳定了。 src:2012-02-12 14:38:48 · 88 阅读 · 0 评论 -
freyja 可能会加入分库、分表功能
水平分库、分表一直都没去考虑。如果要去实现那么大致的想法是表、库都和某个字段的值关联。例如分库就根据userId去摸 1、2、3、4、5、6、7、8、9 个库。并且建立1、2、3、4、5、6、7、8、9 个对应的数据源 datasource在不请入原有的代码前提下, select * from t_user where userid = 1; 那么根据userId ...2012-02-19 17:50:37 · 71 阅读 · 0 评论 -
FreyjaJdbcTemplate预览版
简介: FreyjaJdbcTemplate的开发前言 Freyja = JdbcTemplate + naming SQL + Cache; Freyja是在spring的JdbcTemplate基础上的一层封装,核心是naming SQL部分。 @Entity@Table(name = "t_user")public class User {...2011-11-17 17:06:20 · 217 阅读 · 0 评论 -
准备决定不再支持hql特性
又测试过一段时间发现save和hibernate的性能相当。select 一如既往的快hibernate一大截。 但是心里总是毛毛的感觉哪里有纰漏。 我一直把hql当做一种join的简化写法 而不是面向对象查询。 hql转成join 查询是可行的,但是。。。我觉得现在就把hql特性加进来不是很成熟。加进来显得不伦不类,没能带来性能提升而且成了一个大的隐患。 frey...2011-11-12 20:25:40 · 85 阅读 · 0 评论 -
freyja最重要的一个功能完成
freyja作为一个orm框架,除了结果集映射之外。另外一个核心功能是对缓存进行处理,当然不是像hibernate/mybatis那种低级处理。 本次添加的功能叫做 @Delay 延迟update。 一张表几十个字段大概有8成字段能够被注解为@Delay 这样一来,对于这些字段的update操作将不会发送sql update数据库。而在缓冲过期或者被提出或者缓存销毁的时候同步。应...2011-12-18 18:26:57 · 84 阅读 · 0 评论 -
freyja将重新把重心放在orm、sharding、cache上
freyja将把重心放在1、更完善的orm2、应用层屏蔽的底层sharding3、应用层上的cache jsqlparser将换成druid的sql parser,底层的cache将替换成应用层的cache,改写spring的aop cache。spring的aop cache典型的不支持1对多的cache 处理,只能够清除整个cache,效率很低。改善之后,ca...2012-05-05 23:04:45 · 81 阅读 · 0 评论 -
FreyjaJdbcTemplate的开发前言
一直以来只用过hibernate作为数据层,hibernate确实是很强大,如果有人说hibernate能减少90%代码量,这句话绝对不假。 但是,渐渐的发现了Hibernate的不足之处,也是因为这些hibernate的不足之处让我做出开发FreyjaJdbcTemplate的想法:1、HQL 自家创造的HQL独立与sql语法,虽然有打点访问的这种类对面对象方式语法但是个...2011-11-10 14:28:01 · 84 阅读 · 0 评论 -
FreyjaJdbcTemplate特性一:HQL
freyja2大特点:hql+cache freyja可以无缝替换掉hibernate,才怪。 freyja主要功能是为了实现对jdbc操作的封装而不是替换hibernate,但是为了替换掉项目中的hibernate,freyja实现了简单的hql语法(而且也实现不了复杂的)举个例子来看下freyja大概支持哪些hql/sql语法(理论上支持全sql映射) sel...原创 2011-11-10 14:56:35 · 137 阅读 · 0 评论 -
FreyjaJdbcTemplate特性二:cache
在使用hibernate开发过程中,让我一直感到奇怪的是为什么缓存是如此的让人不顺心。对于update操作频繁的项目更是噩梦。这和我对缓存的理解有很大的出入。我的想法有2点:1、数据库是大海,缓存是池塘。如果我抓了4条鱼到池塘里面去,为什么我一直要做这么一件事情:把鱼抓到池塘里面过一段时间又放回大海,过一段时间又抓到池塘里面去。这样真傻。还有一个诡异的问题,鱼被抓到池塘里面了,大海里面的鱼...2011-11-10 16:01:31 · 151 阅读 · 0 评论 -
FreyjaJdbcTemplate特性三:JdbcTemplate
这个算不上什么特性。每个用过spring jdbcTemplate的估计都会写一些封装类。 老实说在使用过程中,吃了点亏,浪费了一些时间。 1、RowMapper2、update RowMapper很好很强大,Freyja里面使用了3个实现类 BeanPropertyRowMapper - 用来处理类似于select * from User 的结果集MapR...2011-11-10 16:22:09 · 96 阅读 · 0 评论 -
FreyjaJdbcTemplate 开发进度
Freyja核心:HQLParser + Cache HQLParser处于完善阶段大概不会有太大变动。 Cache则有2大功能等待实现。这个是Freyja的最大难点之二。(第一个是HQLParser) 没有特点就没有存在的价值,Cache的2大功能才是重点中的重点。HQLParser只能算是玩具。 等这个完成之后我会放出Freyja的第一个版本。 HQLP...2011-11-10 17:04:27 · 65 阅读 · 0 评论 -
FreyjaJdbcTemplate 缓存失败了
事情不能总是一帆风顺,挣扎了一阵子我宣布freyja缓存特性添加失败。 查询缓存本身就是一个很可笑的事情,缓存不是数据库。面对错中复杂的sql很难维护缓存,查询缓存还是需要根据业务来做,否则完全是浪费时间而且效率低下。 no update成了大话,sql的结构太复杂了。原本想实现no update。就是update(Object)的时候什么都不去做。这么一来缓存中的值为最新。数...2011-11-11 19:29:19 · 157 阅读 · 0 评论 -
freyja框架 github地址
可以查看我的 freyja框架 https://github.com/121077313/freyja net,cache,jdbc 3个方面的封装.现在用于游戏服务端2015-03-27 12:05:49 · 125 阅读 · 0 评论