为什么不用mybatis而选用springjdbc

这套东西是我大概12年的时候写的,现在回过头看还是有许多可以改的地方。
先说一下关于工具类方面:
先是封闭与数据库交互的类:Finder.java
接下来是分页相关的对象:Page.java
处理反射与映射机制的对象:ClassUtils.java  单表的CURD操作全靠他

数据库方面:
springjdbc映射java基本类型:RowNumberSingleColumnRowMapper.java
数据操作的接口定义:IBaseJdbcDao.java
数据库操作的实现类:BaseJdbcDaoImpl.java这是一个抽象类,主要是通过工具类与子类实现的一个接口来实现数据库的查询操作
数据库操作子类要实现的接口:IDialect.java实现类需要根据不同的数据库来实现分页的情况
接下来就是比较简单的数据库操作子类实现的了,我只实现了db2、mysql、mssql、oracle这三种数据库的子类
Oracle:OracleDialect.java
MySql:MysqlDialect.java
MSSQL:MssqlDialect.java
Db2:Db2Dialect.java
以上就实现的步骤,查询操作实例如下:
@Resource
IBaseDao baseDao;//基础接口实例化
Finder finder = new Finder("select * from user where 1=1")
if(判断名字是否为空){
    finder.append(" and name=:name");
    finder.setParam("name", "tom");
}
return baseDao.queryForList(finder, dto.getPage());
实体类定义如下:
@Entity
@Table(name="user")
public class User implements Serializable {
    private static final long serialVersionUID = -1186920006857497042L;
    private java.lang.String id;
    @Id
    @Column(name = "id", unique = true, nullable = false)
    public java.lang.String getId() {
        return this.id;
    }
    private java.lang.String name;
    @Column(name = "name")
    public java.lang.String getName() {
        return this.name;
    }
}
增加、修改操作可以直接传入一个实体类,调用saveEntity、saveList、update、updateList可以直接根据反射机制判断实体类对应的表写是否有id来进行操作。
15年的时候应部门经理的要求一个小项目必须用c#,就写了一套c#的用着还不错,现在公司C#方向的人操作数据库一直在用这套东西。

备案号:豫ICP备14002392号-2