Skip to content

3、深入了解Bee框架的配置

Bee edited this page Jun 30, 2020 · 1 revision

Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。 Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化。高级需求,还可以方便自定义SQL语句。

Bee框架的常用配置在bee.properties 文件里。

Bee的最新版本号:1.7.2 , maven依赖配置如下:

   <dependency>
      <groupId>org.teasoft</groupId>
      <artifactId>bee</artifactId>
      <version>1.7.2</version>
    </dependency>
   <dependency>
      <groupId>org.teasoft</groupId>
      <artifactId>honey</artifactId>
      <version>1.7.2</version>
    </dependency>

1.访问数据库,需要配置数据库的相关内容

若是与spring等配合使用,配置有数据源,则此处的只需要配置bee.databaseName ,其它的url, username,password可以不要。

bee.databaseName=mysql
bee.db.driverName = com.mysql.jdbc.Driver
bee.db.url =jdbc:mysql://localhost:3306/bee?characterEncoding=UTF-8
bee.db.username = root
bee.db.password =

2.日志相关的配置

控制是否打印执行的sql语句,打印日志是否一起打印时间(调试时可以关闭,让日志更加简洁),是否可以用select * 而不用列出所有字段(开发测试阶段是可以打开的,让sql语句更加简洁。当前版本,只支持多表操作时配置,下一版本,单表也会支持)。

bee.osql.showSQL=true
# since v1.7.0
bee.osql.showSQL.donotPrint.currentDate=false
bee.osql.moreTable.columnListWithStar=false

3.类名与表名,类属性名与表字段名的转化转化规则

Bee 默认实现了三种转换规则,第1种是DB下划线与Java驼峰命名互转;第2种与第1种的区别是DB的数据库名称、字段名都用大写,这种在使用Oracle数据库时比较常见;第3种是DB与Javabean实体都使用一样的名称,不需要转换。

1 :order_no<-->orderNo(DB<-->Java), 2:ORDER_NO<-->orderNo(DB<-->Java), 3: original

默认情况是使用第1种方式。

bee.osql.naming.translate.type=1

可以在 bee.properties 中更改默认的配置。

#since 1.7.2
#default implement translate type. 1 : order_no<-->orderNo(DB<-->Java), 2: ORDER_NO<-->orderNo(DB<-->Java), 3: original
#if want to use other naming rule, you can define a new class implements NameTranslate
#default value is :1
bee.osql.naming.translate.type=1

#像oracle,如字段名等原来都是大写,可先转成小写再转换为java命名.这样java命名时就不是全是大写.
#default: to LowerCase before. 默认是先转小写,因为如不转,DB有用大写的时候会出错

4.特殊命名转换规则

Java字段与表字段间的转换,建议使用默认转换规则,这样可以提高效率,也省事。

但有特殊转换,还是可以自己实现 NameTranslate接口。

对于类名与实体名的特殊转换,可以在 bee.properties 配置里设置,如下所示:

#entity class name->table name,formatter:
packagename.ClassName:tableName,packagename.ClassName:tableName
#Separate multiple options with comma.Package name can be omitted if they are not confused.
#Just config for special
#bee.osql.name.mapping.entity2table=User2:temp_user,com.abc.user.User:temp_user

5.缓存

一级缓存即可支持个性化优化配置。

Bee的一级缓存,概念简单,功能强大;一级缓存也可以像JVM一样进行细粒度调优。一级缓存即可支持: 不缓存列表,永久缓存列表,永久缓存且可更新列表,结果集超过一定大小可不放缓存等细粒度配置调优控制. 一级缓存对用户透明,用户编码感觉不到缓存的存在。

#cache=======================start
#缓存类型
#bee.osql.cache.type=FIFO
#缓存集数据量数目
bee.osql.cache.map.size=10
#resultset超过一定的值将不会放缓存
bee.osql.cache.work.resultSet.size=300
#缓存保存时间(毫秒 ms)
bee.osql.cache.timeout=10000
#检测到超时,超过这个使用比例则顺便起线程清除缓存
bee.osql.cache.startDeleteCache.rate=0.6
#缓存容量使用率;添加缓存,检测达到该使用率则清除一定比例缓存
bee.osql.cache.fullUsed.rate=0.8
#添加缓存,检测到缓存容量快满时,删除缓存数的比例
bee.osql.cache.fullClearCache.rate=0.2

#use table name, not entity name
#不缓存表的列表;
#bee.osql.cache.never=user
#永久缓存表的列表
#bee.osql.cache.forever=constant
#永久缓存,但有更改时也会清除缓存,以便同步新的值到缓存
#bee.osql.cache.forever.modifySyn=para

# since v1.7.2. default value is: false (use cache)
#bee.osql.cache.nocache=true

#cache=======================end

6.查询结果及json格式设置

6.1 在插入操作时,SuidRich接口提供了批处理方法。可以设置一个批次最大操作的记录数。

public int[]insert(T[] entity,intbatchSize);

#最大批处理数 default is 100

bee.osql.select.batchSize=100

6.2 SuidRich接口支持直接查询返回Json格式的结果。

public String selectJson(T entity);

public String selectJson(T entity,IncludeType includeType);

针对Json的返回结果,可设置相应的格式。

#查询结果直接返回Json是否忽略null
bee.osql.selectJson.ignoreNull=true
#查询结果直接返回Json中, timestamp是否用毫秒表示
bee.osql.selectJson.timestamp.withMillisecond=true
bee.osql.selectJson.date.withMillisecond=true
bee.osql.selectJson.time.withMillisecond=false
#查询结果返回List<String[]>时,是否将null转为""
bee.osql.select.returnStringList.nullToEmptyString=false

7.Bee支持几种数据库

Bee框架是基于JDBC的,只要某种数据库提供Java的JDBC驱动,Bee就可以支持。目前测试过的有MySQL、MariaDB、oracle、sqlserver。其它数据库,只需要完善配置文件jdbcTypeToFieldType-{bee.databaseName}.properties

或jdbcTypeToFieldType.properties 就可以用Bee操作相应的数据库。

需要注意的是{bee.databaseName}要与bee.databaseName项的配置一样。

想了解更多Bee+Spring+SpringMVC来开发JavaWeb,请关注公众号。

用 Bee+SpringBoot+Spring Cloud开发微服务,开发效率更高!