# jolly-db **Repository Path**: alexancy/jolly-db ## Basic Information - **Project Name**: jolly-db - **Description**: 高性能的mysql操作,利用Java的反射和注解进行操作 - **Primary Language**: Java - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2019-05-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jolly-db #### 介绍 高性能的mysql操作,利用Java的反射和注解进行操作 #### 软件架构 使用说明: 利用反射等, 自动将sql封装, 自动解析操作结果 #### 示例: ##### 1. pojo封住 ``` import com.jollychic.db.annotation.Column; import com.jollychic.db.annotation.Entity; @Entity public class UserCategory { @Column(Column = "category_id") private Integer categoryId; @Column(Column = "category_name") private String categoryName; private String category_def; public String getCategory_def() { return category_def; } public void setCategory_def(String category_def) { this.category_def = category_def; } public Integer getCategoryId() { return categoryId; } public void setCategoryId(Integer categoryId) { this.categoryId = categoryId; } public String getCategoryName() { return categoryName; } public void setCategoryName(String categoryName) { this.categoryName = categoryName; } } ``` **说明** 1. @Entity 表示mode实体类。 2. @Column(Column = "category_name") 标识db字段的映射字段, 如果属性名称与字段名称相同,即可省略,但如果名称不一致,则需要表示Column 来标识。 ##### 2. 查询操作 * 单值查询 ``` DB mySQL = new MySQL<>(); String sql = "select * from user_category where category_id = ? "; String[] obj = {"330011"}; UserCategory userCategory = mySQL.queryOne(sql, obj, UserCategory.class); System.out.println(userCategory); String[] str = {"330021"}; userCategory = mySQL.queryOne(sql,str, UserCategory.class); System.out.println(userCategory); ``` * 多值查询 ``` DB mySQL = new MySQL<>(); String sqlStr = "select * from user_category"; String[] p = {}; List list = mySQL.queryList(sqlStr,p , UserCategory.class); System.out.println(list); ``` * 自定义解析函数 ``` DB> m = new MySQL<>(); List query = m.query(sqlStr, p, new RSFunction>() { @Override public List wrapped(ResultSet rs) { List lst = new LinkedList<>(); try { while (rs.next()) { int id = rs.getInt("category_id"); String name = rs.getString("category_name"); UserCategory category = new UserCategory(); category.setCategoryId(id); category.setCategoryName(name); lst.add(category); } } catch (SQLException e) { e.printStackTrace(); } return lst; } }); for (UserCategory userCategory2 : query) { System.out.println(userCategory2); } ``` * 增删改操作 仅仅提供SQL即可, 示例暂略。