美文网首页
ObjectiveSQL(Java ORM) 之MySQL 实战

ObjectiveSQL(Java ORM) 之MySQL 实战

作者: 四杯酒 | 来源:发表于2020-10-09 11:13 被阅读0次

    第一步,引用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;
    
    @DomainModel
    public 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:

    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]
    
    1. 统计会员数量
    long count = Member.count("id > ?", 10);
    
    SELECT COUNT(*) AS count_rows FROM `members`
    

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

    相关文章

      网友评论

          本文标题:ObjectiveSQL(Java ORM) 之MySQL 实战

          本文链接:https://www.haomeiwen.com/subject/buclpktx.html