public <T> T getMapper(Class<T> type, SqlSession sqlSession){ final MapperProxyFactory<T> mapperProxyFactory = (MapperProxyFactory<T>) knownMappers.get(type); if (mapperProxyFactory == null) { thrownew RuntimeException("Type " + type + " is not known to the MapperRegistry."); } try { return mapperProxyFactory.newInstance(sqlSession); } catch (Exception e) { thrownew RuntimeException("Error getting mapper instance. Cause: " + e, e); } }
public <T> voidaddMapper(Class<T> type){ /* Mapper 必须是接口才会注册 */ if (type.isInterface()) { if (hasMapper(type)) { // 如果重复添加了,报错 thrownew RuntimeException("Type " + type + " is already known to the MapperRegistry."); } // 注册映射器代理工厂 knownMappers.put(type, new MapperProxyFactory<>(type)); } }
/** * Retrieve a single row mapped from the statement key * 根据指定的SqlID获取一条记录的封装对象 * * @param <T> the returned object type 封装之后的对象类型 * @param statement sqlID * @return Mapped object 封装之后的对象 */ <T> T selectOne(String statement);
/** * Retrieve a single row mapped from the statement key and parameter. * 根据指定的SqlID获取一条记录的封装对象,只不过这个方法容许我们可以给sql传递一些参数 * 一般在实际使用中,这个参数传递的是pojo,或者Map或者ImmutableMap * * @param <T> the returned object type * @param statement Unique identifier matching the statement to use. * @param parameter A parameter object to pass to the statement. * @return Mapped object */ <T> T selectOne(String statement, Object parameter);
/** * Retrieves a mapper. * 得到映射器,这个巧妙的使用了泛型,使得类型安全 * * @param <T> the mapper type * @param type Mapper interface class * @return a mapper bound to this SqlSession */ <T> T getMapper(Class<T> type);
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。