参考

Bootstrap

创建实例

SQLite

Bootstrap bootstrap = Unabo.load(configuration -> {
			configuration.setUrl("jdbc:sqlite:sys.db");
			configuration.setDriverOption(DriverOption.SQLITE);
			configuration.setDatasourceType(DatasourceType.HikariCP);
			configuration.setShowSql(true);
		});

MySQL

 Bootstrap bootstrap = Unabo.load("sys", configuration -> {
            configuration.setUrl("jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true");
            configuration.setDriverOption(DriverOption.MYSQL_CJ);
            configuration.setDatasourceType(Configuration.DatasourceType.HikariCP);
            configuration.setUsername("root");
            configuration.setPassword("123456");
            configuration.setShowSql(true);
        });

Oracle

Bootstrap bootstrap = Unabo.load("oracle",configuration -> {
    configuration.setUrl("jdbc:oracle:thin:@//127.0.0.1:1521/ORCL");
	configuration.setDriverOption(DriverOption.ORACLE);
	configuration.setDatasourceType(Configuration.DatasourceType.HikariCP);
	configuration.setUsername("sys");
	configuration.setPassword("123456");
	configuration.setShowSql(true);
});

PostgreSQL

Bootstrap bootstrap = Unabo.load(configuration->{
configuration.setUrl("jdbc:postgresql://127.0.0.1:5432/postgres");
	configuration.setDriverOption(DriverOption.POSTGRESQL);
	configuration.setDatasourceType(Configuration.DatasourceType.HikariCP);
	configuration.setUsername("sys");
	configuration.setUsername("postgres");
	configuration.setPassword("123456");
	configuration.setShowSql(true);
});

SQLServer

Bootstrap bootstrap = Unabo.load(configuration->{
    configuration.setUrl("jdbc:jtds:sqlserver://localhost;DatabaseName=test;");
	configuration.setDriverOption(DriverOption.JTDS);
	configuration.setDatasourceType(Configuration.DatasourceType.HikariCP);
	configuration.setDataSouseType(DataSouseType.Druid);
	configuration.setUsername("test");
	configuration.setPassword("123456");
	configuration.setShowSql(true);
});

达梦

Bootstrap bootstrap = Unabo.load("default", configuration -> {
	configuration.setUrl("jdbc:dm://127.0.0.1:5236");
	configuration.setDriverOption(DriverOption.DM);
	configuration.setDataSouseType(DataSouseType.HikariCP);
	configuration.setUsername("SYSDBA");
	configuration.setPassword("123456");
	configuration.setShowSql(true);
	//通过ValidationQuery来设置默认库(写在url中是无效的)
	configuration.setValidationQuery("set SCHEMA PERSON");
});

MongoDB

Unabo.nosql.load(configurationNosql -> {
    configurationNosql.setIp("127.0.0.1");
    configurationNosql.setPort(27017);
    configurationNosql.setSchema("test");
});

枚举

C

名称解释备注
GT大于>
GTE大于等于>=
LT小于<
LTE小于等于<=
IN在列表in ; 多个值逗号分隔,如 张三,李四
NOT_IN不在列表not in
EQUALS等于=
NO_EQUALS不等于<>
CONTAINS包含模糊查询,LIKE '%keyword%'
NO_CONTAINS不包含模糊查询,NOT LIKE '%keyword%'
START_WITH开始以模糊查询,LIKE 'keyword%'
NO_START_WITH开始不是以模糊查询,NOT LIKE 'keyword%'
END_WITH结束以模糊查询,LIKE '%张'
NO_END_WITH结束不是以模糊查询,NOT LIKE '%张'
IS_NULL是NullIS NULL
IS_NOT_NULL不是NullIS NOT NULL
IS_EMPTY是空的= ''
IS_NOT_EMPTY不是空的<>''
BETWEEN介于BETWEEN 'value1' AND 'value2'
NOT_BETWEEN不介于NOT BETWEEN 'value1' AND 'value2'

DriverOption

NameValue
MYSQLcom.mysql.jdbc.DriverMysql 老版驱动
MYSQL_CJcom.mysql.cj.jdbc.DriverMysql 8+
POSTGRESQLorg.postgresql.Driver
DMdm.jdbc.driver.DmDriver
SQLITEorg.sqlite.JDBC
ORACLEoracle.jdbc.OracleDriver
JTDSnet.sourceforge.jtds.jdbc.DriverSqlserver 驱动
Mongodb为了与sql保持一致,实际无意义

TIP

也可以手动设置字符串 configuration.setDriverOption("手动设置驱动");

DatasourceType

  • Dbcp 默认
  • Druid
  • C3p0
  • HikariCP 推荐

TIP

连接池依赖除默认项,使用时需手动引入

TransactionFactoryEnum

  • JdbcTransactionFactory

    手动事务工厂

  • SpringManagedTransactionFactory

    Spring事务工厂

Associated

代表与前一个条件用什么方式连接

  • AND
  • OR

接口

Manager

获取实例

Manager manager = bootstrap.manager();

获取连接池实例,可以强转为具体连接池类型

DataSource dataSource = manager.getTemplate().getDataSource();

获取配置信息

manager.productType();
manager.databaseName();
manager.getConfiguration();

DataInfomation

获取实例

DataInformation dataInformation = bootstrap.dataInformation();

获取表名

dataInformation.getTableNames();
//是否包含表名
dataInformation.containsTable("tableName");

获取表字段

dataInformation.getColumns("tableName")

获取库名称

dataInformation.getDatabases();

queryTable

操作表,主要用于查询,drop,column等操作

queryEntity

bootstrap.query(实体类对象或集合)...

用于 插入,修改,建表等操作

querySQL

bootstrap.createSQL(sql)...

sql查询,可以搭配 addCondition使用

queryMap

bootstrap.queryMap(表名,<T extend Map<String,Object>>实例或集合)...

作用同 queryEntity 一样,区别只是类型

Behavior

 @Table(name="user")
 @Data
 public  class User implements Behavior<User>{
     @Id
     int id;
     String name;
     int age;
     @Column(name = "class")
     String cls;
     LocalDateTime create_time;

 }

赋予实体类行为,可直接通过实体类来操作数据库

Condition 条件

SimpleCondition

一般通过C(条件工厂)来创建

//import online.sanen.unabo.api.condition.C;
C.eq("id",1);

CompositeCondition

一般通过C(条件工厂)来创建

 C.composite(composite->{
     composite.add(gt("age",18));
     composite.add(eq("height","170",Condition.Associated.OR));
 });

Function

Condition支持函数,例如

C.gt("name",2,"length(%s)")

字符串插值项作为填充字段