这一篇、先来写一个数据库插入记录的程序
UserMapper userMapper = new UserMapper();
// 创建实体类
UserEntity user = new UserEntity();
user.id = 1L;
user.username = "sougit";
user.password = "sgcom";
// 插入数据库
userMapper.insert(user);
通过Sqlite Spy工具 ,可以发现成功插入
来看一下 UserMapper的实现
public class UserMapper extends BaseMapper {
public void insert(UserEntity user){
super.insert(user);
}
}
public class BaseMapper{
public void insert(UserEntity user) {
this.openConnection();
StringBuffer sql = new StringBuffer("insert into user (id,username,password) values ")
.append("( " + user.id + ",'" + user.username + "','" + user.password + "')");
try {
Statement stmt = this.conn.createStatement();
System.out.println(sql);
stmt.execute(sql.toString());
} catch (SQLException e) {
throw new RuntimeException(e);
}
this.closeConnection();
}
}
在base类中,我们进行封装数据库的操作。
已经迈出了第一步、但是如果多个子类继承BaseMapper 我们总不能在子类里定义多个insert方法吧?
接下来 开发框架的主角该上场了。
下一篇,将通过java反射技术来改造BaseMapper 使其成为一个通用的Mapper
--------------------------------
文章校验码 【mghu】
请参考作者置顶的文章、或私信作者获取完整代码的Git地址。