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

我爱海鲸 2020-10-10 19:41:17 暂无标签

简介ORM的思想为基础开发的第一个个人持久化框架,通过注解的方式进行配置操作java对象的方式操作数据库

很久没写博客了,这两天将早就折腾过咱开发的框架再次折腾了一遍,刚开始,我也没想好叫什么比较好,然后就随便去了个名字叫HaijinDB,后来经过深思熟虑后决定叫它为Zero,从0开始慢慢的进化演变。 下载地址:  Zero

那是我人生中第一份工作的时候,那是在2018年12月17日我在长沙开始了我人生中的第一份工作,时光荏苒,转眼间一年半过去了,我也离开了长沙来到了广州,目前正在追求自己的梦想。在那时工作的时候,强哥(老板)要求我们用java中最原始的jdbc进行对数据库进行操作,不提倡我们用框架去操作数据库,就算运用框架也最好用Hibernate,不要用Mybatis,我们当初的时候可能也不是太能理解。于是强哥就把自己封装的一个jdbc源码给了我,我研究了这些源码后,嘿嘿,发现还不错,很优雅,虽是仿Hibernate,功能也不如Hibernate强大,但最重要的一点是,源码我已经研究过了,而Hibernate的源码我没研究过。离职后,因为碰到了疫情,在待着,于是又将强哥的代码翻出来在看了下,决定将代码改进和添加配置文件进行改进。目前来看我似乎对强哥当初为什么不让我们用Mybatis有些了解了,Mybatis是一个不完全的ORM框架,也是就说它必须自己去写sql语句。而Hibernate却不然,它操作java对象去操作数据库,不需要程序员去写sql语句。我现在越来越觉得不写sql语句的好处了,对于程序员来说sql语句的书写和优化应该由框架去完成,程序员不应该过多的去做sql语句的优化。这可能就是为什么Hibernate在国外很火的原因吧。好了,言规正传,我们开始将咱开发的框架如何使用。

1、首先在项目的类路径下建立conf包在该包下创建配置文件Conection.conf

undefined

undefined

<site>

<name>给该数据源取的一个别名</name>

<driver>驱动包名</driver>

<url>数据库连接的URL</url>

<username>登录名</username>

<password>登录密码</password>

<use>是否使用该数据源</use>

</site>

该配置文件里的配置可以配置多个数据源

2、创建实体类,你要查询数据的字段有什么就创建什么。

undefined

@Table("t_user") // 对应数据库中的哪个表,可以有多个表进行连接,链接方式和普通sql一样,如@Table("article_info info join article_content content on info.article_info_id = content.article_info_id")

@Where("f_user_realname = ?") // sql语句中的where后的语句

@NoWhere("limit ?") // sql语句中没有where时后的sql语句

public class User {

@ID("f_user_username") // 对应数据库中的主键名称

private String userName;

@Column("f_user_password")  // 对应数据库中的字段名称

private String password;

@Column("f_user_realname")

private String realName;

@Column("f_user_sex")

private String sex;

@Column("f_user_register_time")

private String registerTime;

}

3、创建Dao层,如下:

undefined

public class UserDAO extends BaseDAO<User>{ // 继承框架中的BaseDAO

public UserDAO() {

super(User.class, "weblog"); //创建构造方法User.class为创建的实体类,weblog为配置文件中数据源的别名

}

public static void main(String[] args) throws SQLException {

BaseDAO<User> dao = new UserDAO();  

System.out.println(dao.findWhereSql("刘海金",10)); //执行该框架提供的操作数据库的方法

}

}

以上方法执行的sql语句为:

select f_user_username,f_user_password,f_user_realname,f_user_sex,f_user_register_time from t_user where f_user_realname = ? limit ?

"刘海金",10 分别为第一个参数和第二个参数

4、查询的结果,查询的结果为方法中添加泛型的集合

undefined

以上就是该框架的使用方法,看完这些你是否也跃跃欲试,想动手试试呢?

备注:该框架中提供了一系列操作java对象的增删改查方法,更多内容可点击上方的链接自己去试试。注意使用该框架也需要导入驱动包。该框架不支持手动编写sql语句

计划下一个版本:在框架中添加日志记录的操作


你好:我的2025