很久没写博客了,这两天将早就折腾过咱开发的框架再次折腾了一遍,刚开始,我也没想好叫什么比较好,然后就随便去了个名字叫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
<site>
<name>给该数据源取的一个别名</name>
<driver>驱动包名</driver>
<url>数据库连接的URL</url>
<username>登录名</username>
<password>登录密码</password>
<use>是否使用该数据源</use>
</site>
该配置文件里的配置可以配置多个数据源
2、创建实体类,你要查询数据的字段有什么就创建什么。
@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层,如下:
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、查询的结果,查询的结果为方法中添加泛型的集合
以上就是该框架的使用方法,看完这些你是否也跃跃欲试,想动手试试呢?
备注:该框架中提供了一系列操作java对象的增删改查方法,更多内容可点击上方的链接自己去试试。注意使用该框架也需要导入驱动包。该框架不支持手动编写sql语句
计划下一个版本:在框架中添加日志记录的操作