# pxsc **Repository Path**: NiceSoneC/pxsc ## Basic Information - **Project Name**: pxsc - **Description**: ORM框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-05-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pxsc ## 简介 pxsc是基于 Java 语言的 ORM 框架,其核心目的是简单使用、所需代码少、开发迅速、同时具有实用的数据库操作功能。 ## 使用流程 ### 1.导入Maven依赖 ``` org.cao pxsc 1.0.0 ``` ### 2.构建自己的数据源(实现DataProvider接口) #### 这里我们用 [MDBPool](https://gitee.com/NiceSoneC/MDBPool) 当数据源 ``` java class DataProviderImp implements DataProvider{ // 配置 MDBPool 所需参数 static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/spring_fake?characterEncoding=utf8&serverTimezone=UTC"; static final String USER_NAME = "root"; static final String PASSWORD = "00000"; // 具体实现DataProvider的方法 private final DBPoolExecutor executor; public DataProviderImp() throws ClassNotFoundException, SQLException { executor = DBPoolExecutor.getBuilder(JDBC_DRIVER, DB_URL, USER_NAME, PASSWORD).build(); } public List> query(String sql) { return executor.query(sql).get().stream() .map(Record::getMap).collect(Collectors.toList()); } @Override public int update(String sql) { return executor.update(sql).get(); } } ``` ### 3.创建表映射对象 只需继承Model即可,无需getter/setter ``` java class User extends Model{ } ``` ### 4.创建映射关系 映射关系有两种 1. 类映射到表名 2. 类映射到主键(如果不存在,则默认为id) ``` java Map, String> classToTable= new HashMap<>(); Map, String> classToPk = new HashMap<>(); map1.put(User.class, "sfake_user"); ``` ### 5.初始化框架 给框架传入数据源、两个表映射即可 ``` java PxscContext.pxscInit(provider, map1, map2); ``` ## 常用功能 #### 创建对象并且赋给字段值 ``` java User user = new User(); user.put("nick_name", "熊"); ``` #### 添加 ``` java /* * 添加一行记录,返回是否成功 * @return 是否成功 */ user.save(); ``` #### 删除 有两种删除方式,一种是直接删除当前记录,另外一种是指定主键删除 ``` java /* * 删除一条记录 * @return:是否删除成功 */ public boolean delete(); ``` ``` java /* * 指定主键删除 * @param id 要删除记录的主键 * @return:是否删除成功 */ public boolean deleteById(Object id); ``` #### 修改 ``` java /* * 更新数据库中当前记录 * @return:是否更新成功 */ public boolean save(); ``` #### 查询 ``` java /* * 按照sql查询当前类映射表的记录 * @return:查询到的结果 */ public List query(String sql); ``` #### 更多操作可以在源码中查看