参考
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 | 是Null | IS NULL |
IS_NOT_NULL | 不是Null | IS NOT NULL |
IS_EMPTY | 是空的 | = '' |
IS_NOT_EMPTY | 不是空的 | <>'' |
BETWEEN | 介于 | BETWEEN 'value1' AND 'value2' |
NOT_BETWEEN | 不介于 | NOT BETWEEN 'value1' AND 'value2' |
DriverOption
Name | Value | |
---|---|---|
MYSQL | com.mysql.jdbc.Driver | Mysql 老版驱动 |
MYSQL_CJ | com.mysql.cj.jdbc.Driver | Mysql 8+ |
POSTGRESQL | org.postgresql.Driver | |
DM | dm.jdbc.driver.DmDriver | |
SQLITE | org.sqlite.JDBC | |
ORACLE | oracle.jdbc.OracleDriver | |
JTDS | net.sourceforge.jtds.jdbc.Driver | Sqlserver 驱动 |
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)")
字符串插值项作为填充字段