2023-07-27
|
ZH
在多数据源的情况下会生成多个事务管理器。 为了更强的隔离性。否则数据源切换过程中,不好跟踪事务,如果遇到线程共享时,切换数据源也有可能失败,那事务管理器肯定就乱了。 为了在切换数据源过程中,保持事务状态。就是不要因为切换数据源,而把上一个事务强制提交或回滚。
2023-07-27
|
ZH
在存多数据源的情况下会创建多个事务管理器【为会么要创建多个事务管理器】 事务管理器在spring上下文环境中的命名也就是bean.name 如在默认数据源之外 又创建多个数据源a,b,c spring会针对默认数据生成一个默认事务管理器:transactionManager anyline
2023-07-28
|
ZH
DataSet set = new DataSet(); List pages = set.page(10) //每页10行,分成多少页根据总数 List pages = set.split(10)//分成10页,每页多少行根据总
2023-07-29
|
ZH
//查询表结构时,默认会查询DDL Table table = service.metadata().table("CRM_USER") List ddls = table.ddls(); 对于确认只有一条SQL的数据库可以 String ddl = table.ddl(
2023-07-31
|
ZH
这跟连接池有关,一般连接池会有失败重试的参数可以设置,如druid 配置文件 spring.datasource.druid.connectionErrorRetryAttempts = 1 spring.datasource.druid.breakAfterAcquireFailure
2023-08-04
|
ZH
对于非基础类型属性,在数据库可以用json类型。 在插入或更新数据时会把属性值转换成json格式,同样的读取数据时也会把json格式还原成属性对应的数据类型。 需要注意的是,在插入数据时数据需要先知道数据库中是JSON类型才会转换。 这样就需要开启一个开关,来保证插入数据前先检查数据库结构。当然这个
2023-08-04
|
ZH
出现这个异常是因为视图把json类型保存到数据库中,一般来说数据库会设置一个JSON类型。 但在页mysql驱动对json的sql类型会要求一个String类型的数据, 需要打开ConfigTable.IS_AUTO_CHECK_METADATA = true ,这样
2023-08-04
|
ZH
通常情况下通过配置文件设置一个统一的主键生成器就可以,但如果有一部分表需要单独设置 一种方式是可以通过配置文件单独指定 另一种方式可以通过注解设置 另外一些属性的关联表的主键生成器也可以通过注解设置,这种情况比较特殊在其他JPA中一般不这样用 @Table(name="HR_EMPLOYEE")
2023-08-04
|
ZH
理由是在用到的时候JAVA和配置文件里都可以临时写。 如果数据量不大,结构不复杂,数据不敏感,只是显示个列表或明细确实没什么大问题。 但是以下实际情况簇不是这样: 既然都需要写SQL了复杂度还是有点的 当然不能拿那些helloworld说事,那些SQL都是多余的
2023-08-05
|
ZH
getColumns返回的是DataRow中查询出来的列属性 getMetadatas返回的是整个表的列属性 如CRM_USER表中有三列,ID,NAME,AGE DataRow row = service.query("CRM_USER(ID,NAME)"); 这时getMetadatas会返回3