# Mini **Repository Path**: lwlspace/mini ## Basic Information - **Project Name**: Mini - **Description**: Mini<1.0>-半自动映射框架 项目架构参考Mybatis 架构内主要代码自己diy - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2022-04-21 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: database-dev **Tags**: MySQL, Java ## README # Mini #### 介绍 Mini<1.0>-半自动映射框架,使用方面与Mybtis大致相同, 但去除了XML的形式写sql语句,全部改为注解的形式了。 #### 软件架构 主要参考Mybatis的架构, 整体分为了四步 - 第一步: SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml"); // 加载配置- - 第二步: SqlSession sqlSession = build.openSession(true); // 获取连接- - 第三步: UserMapper mapper = sqlSession.getMapper(UserMapper.class); // 获取执行方法信息封装为代理对象 - 第四步: Integer integer = mapper.deleteOne(82); // 执行方法并封装结果集 对于Mybatis框架的详解,这里放上我的文章:[Mybatis架构详解](https://blog.csdn.net/killbibi/article/details/120456393?spm=1001.2014.3001.5501) #### 安装教程 1. 将com文件夹直接放入本地仓库的根目录下 2. maven配置下,直接在pom.xml文件引入 ``` com.lwl Mini 1.0-SNAPSHOT ``` 3. pom.xml中导入MySQL的连接jar包 #### 使用说明 ``` SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml"); SqlSession sqlSession = build.openSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List users = mapper.selectList(); System.out.println("users = " + users); ``` **1. SqlSessionFactory build = new SqlSessionFactoryBuilder().build("miniConfig.xml");** 这里注意: 配置文件格式如下: ``` ]> ``` - 配置文件开头的约束是必须加上的,这里是XML语言规范。 - **标签说明** : - properties: - 使用它有两种方式可以加载配置,第一种在resource属性种指定resources下的配置文件,第二种在标签内部使用property标签加载: - - environment: - 该标签使用如注解所示 - *注:这里properties和environment只能存在一个!共存时将报错。 - settings: - 目前只支持三种子标签属性 :框架默认使用Druid连接池管理连接,当指定为false时,则使用JDBC,不使用连接池. :是否开启缓存,这里只有一级缓存,默认开启。 : 是否记录SQL语句的执行,默认开启。 - mappers: - 在package子标签种指定mapper包路径,会自动将包下的map进行注册并类加载获得类信息 - Mapper的约束 - 目前版本方法的参数列表,都需要使用@param指定key 用于替换sql种的#{key} - 暂不支持实体类的传参形式 - 目前返回值只支持List,Integer,实体类类型等,并不支持map。 - 使用例子如下: ``` @Select("select * from user where id = #{testId} and username = #{name}") List selectAll(@Param("testId") int id, @Param("name") String name); @Select("select * from user where id = #{testId} and username = #{name}") User selectOne(@Param("testId") int id, @Param("name") String name); @Insert("insert into user values(#{id},#{name},#{birthday},#{sex},#{address})") Integer insertOne(@Param("id") Integer id, @Param("name") String name, @Param("birthday") Timestamp birthday, @Param("sex") String sex, @Param("address") String address); @Delete("delete from user where id = #{id}") Integer deleteOne(@Param("id") Integer id); @Update("update user set username =#{name},birthday = #{birthday} where id =#{id}") Integer updateOne(@Param("name") String name, @Param("birthday") Timestamp birthday, @Param("id") Integer id); ``` #### 使用参考和当前版本的限制 - 1. 使用参考:[Mini](https://blog.csdn.net/killbibi/article/details/124343375) - 2. 当前版本传参无法传入实体类进行解析,返回值只支持实体类类型和List,且select查询暂不支持一对多查询,仅支持注解的形式。 #### 后言 该项目开发测试由我完成,若存在Bug或不足,可告知我,谢谢~ 微信号:L2574308236