# simple-mapper **Repository Path**: dawn416/simple-mapper ## Basic Information - **Project Name**: simple-mapper - **Description**: 类似Mybatis注解方式的orm框架,使用jdk动态代理 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-07-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simple-mapper 类似mybatis的小型orm框架 使用jdk动态代理+反射+jdbc实现 ##使用方式 配置jdbc.properties 写一个接口,方法上加上注解@Select/@Update/@Delete/@Insert,注解参数中写入SQL语句, 参数用'#{}'包围 方法参数前加上注解@Param对应SQL语句中的参数名 @Select有多个返回值情况下,实际返回类型为ArrayList类型 @Select("select * from area where id = #{id}") public Area selectById(@Param("id") int id); 使用MyHandler类静态方法newInstance创建代理对象后即可调用接口直接使用 AreaMapper areaMapper = MyHandler.newInstance(AreaMapper.class); ### 开发心得 个人写的第一个框架 开发注解方式时update和selectOne写了一堆代码,第一次就跑成功了,开心 反射获取方法返回类型的泛型不能从method.getReturnType中取,而应从method.getGenericReturnType中取 多线程环境下线程安全未测试,初始化时对配置类加了双检锁机制,配置信息对象的set方法还应该把作用域缩小