【mgh0】Java框架开发-sgbatis(二)

这一篇通过java反射来实现一个通用的BaseMapper


    public void insert(Object user) {
        this.openConnection();
        try {
            String sql = TSqlUtils.getInsertSql(user);
            Statement stmt = this.conn.createStatement();
            System.out.println(sql);
            stmt.execute(sql.toString());
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        this.closeConnection();
    }

    public void delete(Object user){
        this.openConnection();
        try {
            String sql = TSqlUtils.getDeleteSql(user);
            Statement stmt = this.conn.createStatement();
            System.out.println(sql);
            stmt.execute(sql.toString());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        this.closeConnection();
    }

    public void update(Object user) {
        this.openConnection();
        try {
            String sql = TSqlUtils.getUpdateSql(user);
            Statement stmt = this.conn.createStatement();
            System.out.println(sql);
            stmt.execute(sql.toString());
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        this.closeConnection();
    }

这样不管是哪个实体,只要Mapper类继承BaseMapper就可以实现增删改查的功能了。


public class UserMapper extends BaseMapper {
 
}

基本的增删该查 UserMapper里不用写。只需要继承BaseMapper就行了

  UserMapper userMapper = new UserMapper();
        UserEntity user = new UserEntity();
        user.username = "sougit";
        user.password = "sgcom";
        userMapper.insert(user);

        user.id = 2L;
        user.username = "hello";
        user.password = "world";
        userMapper.update(user);

        user.id = 3L;
        userMapper.delete(user);

来看一下效果

 至此一个通用的BaseMapper开发完成。

但是这里有一个问题,就是insert update 等方法的参数类型还是Object 

Object在处理自动类型转换的时候 能力太弱了。

下一篇将通过泛型技术来实现一个更健壮、扩展性更强的BaseMapper

--------------------------------

文章校验码 【mgh0

请参考作者置顶的文章、或私信作者获取完整代码的Git地址

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值