ZToo个人orm框架

我爱海鲸 2022-02-27 00:58:25 暂无标签

简介zero重构,个人对orm框架的开发,致力于快速操作数据库(不局限于关系型数据库)的一个框架

大概在两年前,我就开发了一个人的orm框架,然而平时也并没有用到,自从用了mp(mybatis-plus)后,就在也不想用自己开发的了,

于是乎,项目就这样不了了之了,当时的想法是,就算我的框架封装的再好,都比不过mybatis-plus封装的好。时过境迁,转眼两年过去了,

今天我又决定重新开发了,也许是长大了,很多想法已经和两年前大为不同了,别人也是两个肩膀扛一个脑袋,凭啥我就比较差。于是,说干就干。

之前的相关文章:

个人开发的第一个ORM持久化框架Zero

Zero持久化框架开源并发布在gitHub上

Zero持久化框架添加多种数据查询方式

在github上的开源 https://github.com/bluehaijin/Zero 

之前我是在github上进行代码的管理,但是在github上开发会遇到一个问题,那就是网络访问的问题,于是现在在gitee码云上进行代码的管理了,

代码的地址为:https://gitee.com/liu-haijin/ZToo

言归正传,我们现在来开始对框架进行使用,首先我们安装数据库,可以参考我之前的文章:

centos7.7基于docker安装mysql数据库

mysql学习之mysql安装与简介

然后建立数据库,如:Test,执行如下脚本:

CREATE TABLE `t1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`content` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

创建一个项目,最简单的就好:

1、在项目中创建lib目录,导入jar包(不用maven管理,追求最原生)

如图:

2、将其导入到项目中,如图:

3、编写配置文件:

在src目录下创建一个单独的包conf并建立一个配置文件Conection.conf,内容如下:

<site>
<name>test</name>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/Test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Hongkong</url>
<username>root</username>
<password>123456</password>
<use>true</use>
</site>
<site>
<name>test1</name>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/Test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Hongkong</url>
<username>root</username>
<password>123456</password>
<use>true</use>
</site>
如图:




4、创建实体类:

@Table("t1")
@Where(value = {"id = ?","content = ?"},version = {"通过id查询数据","通过内容查询数据"})
public class Test {
/**
* 对应数据库中的主键名称
*/
@ID("id")
private Integer id;

/**
* 对应数据库中的字段名称
*/
@Column("content")
private String content;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

@Override
public String toString() {
return "Test{" +
"id=" + id +
", content='" + content + '\'' +
'}';
}
}
4、创建dao层:
public class TestDao extends BaseDAO<Test> {

protected TestDao() {
super(Test.class, "test1");
}

}
5、开发进行对数据库的操作:
直接在在mian方法中编写测试即可:
public class TestDao extends BaseDAO<Test> {

protected TestDao() {
super(Test.class, "test1");
}

public static void main(String[] args) throws Exception {
BaseDAO<Test> dao = new TestDao();
Test test = new Test();
test.setContent("你好");
dao.save(test);
List<Test> all = dao.findAll();
System.out.println(all);
dao.setVersionWhere("通过内容查询数据");
List<Test> list = dao.findWhereSql("t1_787");
System.out.println(list);

}
}
执行的操作如下:

6、项目的完整截图如下:

7、看简单吧,完全脱离了spring的依赖,使用注解完成了对数据的增删改查,对于一些简单的项目是非常的方便的。
之后会吸收mybatis-plus和springdata jpa的一些操作思想完善一下功能等等,也会对elasticsearch进行一系列的操作封装等等。
敬请期待。


 

你好:我的2025