第一步,援用Maven依赖:

<dependency>    <groupId>com.github.braisdom</groupId>    <artifactId>objective-sql</artifactId>    <version>1.3.4</version></dependency>

第二步,应用Annotation 定义一个DomainModel :

import com.github.braisdom.objsql.annotations.Column;import com.github.braisdom.objsql.annotations.DomainModel;import com.github.braisdom.objsql.annotations.Queryable;import com.github.braisdom.objsql.annotations.Relation;import com.github.braisdom.objsql.relation.RelationType;import java.util.List;@DomainModelpublic class Member {    @Queryable    @Column(updatable = false)    private String no;    @Queryable    private String name;    private Integer gender;    private String mobile;    private String otherInfo;    @Relation(relationType = RelationType.HAS_MANY)    private List<Order> orders;}

第三步:定义ConnectionFactory 并注入ObjectiveSQL:

private static class MySQLConnectionFactory implements ConnectionFactory {    @Override    public Connection getConnection(String dataSourceName) throws SQLException {        String url = "jdbc:mysql://localhost:4406/objective_sql?serverTimezone=Asia/Shanghai";        String user = "root";        String password = "123456";        Connection connection;        try {            Class.forName("com.mysql.cj.jdbc.Driver").newInstance();            connection = DriverManager.getConnection(url, user, password);        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) {            throw new IllegalStateException(ex.getMessage(), ex);        }        return connection;    }}
Databases.installConnectionFactory(new MySQLConnectionFactory());

第四步:执行数据库操作
1) 创立会员

Member newMember = new Member();newMember.setNo("100000")        .setName("Pamela")        .setGender(1)        .setRegisteredAtWithJoda(DateTime.now())        .setUpdatedAt(Timestamp.valueOf("2020-10-05 00:00:00"))        .setMobile("15011112222");Member member = Member.create(newMember, true); 
INSERT INTO `members` (`no`,`name`,`gender`,`mobile`,`extended_attributes`,`registered_at`,`updated_at`) VALUES (?,?,?,?,?,?,?), with: [100000,Pamela,1,15011112222,null,2020-10-08 11:01:57.368,2020-10-05 00:00:00.0]

2) 统计会员数量

long count = Member.count("id > ?", 10);
SELECT COUNT(*) AS count_rows FROM `members`

更多请拜访:https://github.com/braisdom/ObjectiveSql