(三): 深入了解Bee框架的配置

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

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

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

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

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

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

#bee.db.dbName=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语句更加简洁。当前版本,只支持多表操作时配置)。

#control Logger.logSQL(msg) use in Bee.
bee.osql.showSQL=true

# since v1.8
bee.osql.showSql.showType=true
bee.osql.showSql.showExecutableSql=true
# since v1.7.0  it is effect when bee.log.loggerType is :systemLogger or fileLogger.
bee.osql.showSql.donotPrintCurrentDate=true
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.translateType=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.translateType=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.naming.entity2tableMappingList=User2:test_user,com.abc.user.User:test_user

5.缓存

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

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

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

#仅分库时(bee.dosql.multiDS.type=2),可用格式:  dsName.tableName
#use table name, not entity name
#不缓存表的列表, 表名不区分大小写.视图强烈建议不放缓存,因会产生脏数据.
#bee.osql.cache.never=user
#永久缓存表的列表, 表名不区分大小写
#bee.osql.cache.forever=constant
#只有更改时才会清除缓存,以便同步新的值到缓存. 表名不区分大小写
#bee.osql.cache.modifySyn=para

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

#since 1.8.99
bee.osql.cache.keyUseMD5=true
#cache=======================end

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

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

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

#批量插入最大批处理数 batch size of insert, default is 10000
bee.osql.insertBatchSize=10000

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.timestampWithMillisecond=true
bee.osql.selectJson.dateWithMillisecond=true
bee.osql.selectJson.timeWithMillisecond=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开发微服务,开发效率更高!

上一篇:安装beego工具bee报错 go: github.com/derekparker/delve@v1.2.0: parsing go.mod: unexpected module path "


下一篇:Lambda表达式之查询篇