# easyJDBC **Repository Path**: backpackerxl/easy-jdbc ## Basic Information - **Project Name**: easyJDBC - **Description**: 这是java连接mysql的一个小工具 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2021-12-27 - **Last Updated**: 2022-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: MySQL, Java, JSON ## README
logo


v0.1.3 v0.1.4 v0.1.5
v0.1.6 v0.1.7 v1.0.0

EasyJDBC


#### 简介 使用前的准备,[`点我`](https://gitee.com/backpackerxl/easy-jdbc/tree/v0.1.3/README.md) > 使用方式准备工作都一样此次更新了一些编写代码的习惯, #### Maven用户 - 在jar包下载路径下使用如下命令 ``` wget https://gitee.com/backpackerxl/easy-jdbc/releases/v1.0/easyJDBC-1.0.0.jar ``` ``` mvn install:install-file -DgroupId=cn.backpackerxl -DartifactId=easyJDBC -Dversion=1.0.0 -Dpackaging=jar -Dfile="easyJDBC-1.0.0.jar" ``` > easyJDBC经过不断的迭代,现在迎来了重大升级,现推出[`easyJDBC-0.1.3.jar`](https://gitee.com/backpackerxl/easy-jdbc/releases/v0.1.3), 此版本能够根据用户的实体表,自动创建数据库中对应字段类型的表。并且字段类型长度可控 > 而且只需要简单的配置就能实现这一功能。 ```xml cn.backpackerxl easyJDBC 1.0.0 ``` - 使用之前你应该要熟悉你的项目结构,学过jdbc的人都知道,为了数据的持久化,我们再连接数据库时是分了4层结构 - 分别是 `service -> service.impl -> dao -> dao.impl` 现在你可以告别这种模式了,因为最后两层EasyJDBC已经帮你做了, - 只要你按规矩办事就事半功倍。下面就看看如何在项目中使用吧! #### 实体类 [详情](src/test/java/cn/backpackerxl/entity/Admin.java) ```java package cn.backpackerxl.entity; import cn.backpackerxl.easyJDBC.annotation.*; import lombok.*; import java.util.Date; /** * @author: backpackerxl * @create: 2021/12/23 * @filename: Admin **/ @Table("t_admin") @NoArgsConstructor @AllArgsConstructor @Setter @Getter @ToString public class Admin { @Id @Ignore //忽略此字段 private int id; @Len("100") private String name; @MD5 private String passwd; @DFormat(pattern = "timestamp") //将时间转化为时间戳 // @DFormat //按默认格式转化(yyyy-MM-dd HH:mm:ss) // @DFormat(pattern = "HH:mm:ss") //按格式转化时间 private Date createTime; } ``` #### service ```java /** * @author: backpackerxl * @create: 2021/12/24 * @filename: AdminServiceImpl **/ public interface AdminService { int save(Admin admin); int update(Admin admin); int remove(int id); Admin findById(int id); List findAll(); Admin findByOneAndOther(String name, String passwd, String... fieldName); List findByOneOrOther(String name, String passwd, String... fieldName); PageBean pageEntityAll(int pageSize, int currentPage); List search(String key, String filedName); List findByOne(String one, String filedName); PageBean search(String key, String filedName, int pageSize, int currentPage); } ``` #### service.impl [详情](src/test/java/cn/backpackerxl/service/impl/AdminServiceImpl.java) ```java import cn.backpackerxl.dao.AdminDao; import cn.backpackerxl.easyJDBC.main.EasyJDBCRepository; import cn.backpackerxl.easyJDBC.util.PageBean; import cn.backpackerxl.entity.Admin; import cn.backpackerxl.service.AdminService; import java.util.List; /** * @author: backpackerxl * @create: 2021/12/24 * @filename: AdminServiceImpl **/ public class AdminServiceImpl implements AdminService { private final AdminDao adminDao = (AdminDao) new EasyJDBCRepository(AdminDao.class).init(); @Override public int save(Admin admin) { return adminDao.save(admin); } @Override public int update(Admin admin) { return adminDao.update(admin); } @Override public int remove(Long id) { return adminDao.remove(id); } @Override public Admin findById(Long id) { return adminDao.findById(id); } @Override public List findAll() { return adminDao.findAll(); } //... } ``` #### dao ```java import cn.backpackerxl.easyJDBC.main.EasyJDBCRef; import cn.backpackerxl.entity.Admin; public interface AdminDao extends EasyJDBCRef { } ``` #### 使用 [详情](src/test/java/cn/backpackerxl/test/EasyJDBC.java) ```java /** * @author: backpackerxl * @create: 2021/12/23 * @filename: EasyJDBC **/ public class EasyJDBC { /** * 测试🔗 * * @throws */ @Test public void testConn() throws SQLException { System.out.println(EasyJDBCUtil.getConnection()); } /** * 测试添加数据 */ @Test public void testSave() { Admin admin = new Admin(); admin.setName("王五"); admin.setPasswd("147258"); admin.setCreateTime(new Date()); AdminService adminService = new AdminServiceImpl(); int save = adminService.save(admin); System.out.println(save); } /** * 测试修改数据 */ @Test public void testUpdate() { Admin admin = new Admin(1, "李四", "945946", new Date()); AdminService adminService = new AdminServiceImpl(); int update = adminService.update(admin); System.out.println(update); } /** * 测试删除数据 */ @Test public void testRemove() { AdminService adminService = new AdminServiceImpl(); int remove = adminService.remove(2); System.out.println(remove); } /** * 测试查询数据 */ @Test public void testFind() { AdminService adminService = new AdminServiceImpl(); Admin admin = adminService.findById(1); System.out.println(admin); adminService.findAll(); List all = adminService.findAll(); for (Admin ad : all) { System.out.println(ad.getName()); } Admin other = adminService.findByOneAndOther("李四", code("94594", 32), "name", "passwd"); System.out.println(other); System.out.println(adminService.findByOneOrOther("张三", code("945946", 32), "name", "passwd")); } } ``` #### 新增自定义查询和连接查询 > 这些功能只在[`easyJDBC-0.1.3.jar`](https://gitee.com/backpackerxl/easy-jdbc/releases/v0.1.3)中才包含 - 分数实体表 [`详情`](src/test/java/cn/backpackerxl/entity/Source.java) ```java import lombok.*; /** * @author: backpackerxl * @create: 2021/12/29 * @filename: Source **/ @Table("t_source") @NoArgsConstructor @AllArgsConstructor @Setter @Getter @ToString public class Source { @Primary private int id; private String name; private int hadoop; private int hive; private int javaWeb; } ``` - 学生实体表 [`详情`](src/test/java/cn/backpackerxl/entity/Student.java) ```java import lombok.*; /** * @author: backpackerxl * @create: 2021/12/29 * @filename: Student **/ @Table("t_student") @NoArgsConstructor @AllArgsConstructor @Setter @Getter @ToString public class Student { @Primary private int id; private String name; private int sex; private int age; private String hobey; private Date createTime; } ``` - 复合实体表 [`详情`](src/test/java/cn/backpackerxl/pojo/StudentSource.java) ```java import lombok.*; /** * @author: backpackerxl * @create: 2021/12/29 * @filename: StudentSource **/ //复合类型实体表没有对应表名 @NoArgsConstructor @AllArgsConstructor @Setter @Getter @ToString public class StudentSource { private String name; private int sex; private int age; private int hadoop; private int hive; private int javaWeb; private String hobey; private Date createTime; } ``` - service ```java /** * @author: backpackerxl * @create: 2021/12/29 * @filename: StudentService **/ public interface StudentService { List findStudentLeftSource(); List findStudentLeftSourceByName(Object... name); List findByQuery(Object... obj); } ``` - serviceImpl ```java import cn.backpackerxl.model.Student; import cn.backpackerxl.server.StudentService; import cn.backpackerxl.repo.StudentDao; import cn.backpackerxl.easyJDBC.main.EasyJDBCRepository; import java.util.List; /** * @Author: backpackerxl * CreateTime: 2022/10/17 * FileName: StudentServiceImpl **/ public class StudentServiceImpl implements StudentService { private final StudentDao studentdao = (StudentDao) new EasyJDBCRepository(StudentDao.class).init(); @Override public int add(Student student) { return studentdao.save(student); } @Override public int edit(Student student) { return studentdao.update(student); } @Override public int delete(Long id) { return studentdao.remove(id); } @Override public Student selectById(Long id) { return studentdao.findById(id); } @Override public List selectAll() { return studentdao.findAll(); } } ``` #### dao ```java import cn.backpackerxl.easyJDBC.main.EasyJDBCRefPlus; import cn.backpackerxl.entity.Student; import cn.backpackerxl.pojo.StudentSource; public interface StudentDao extends EasyJDBCRefPlus { } ``` - 测试 ```java /** * @author: backpackerxl * @create: 2021/12/23 * @filename: EasyJDBC **/ public class EasyJDBC { /** * 测试连接查询 */ @Test public void testJoin() { StudentService service = new StudentServiceImpl(); System.out.println(service.findStudentLeftSource()); List list = service.findStudentLeftSourceByName("胡洋"); for (StudentSource studentSource : list) { System.out.println(studentSource.getName()); System.out.println(studentSource.getHadoop()); System.out.println(studentSource.getHive()); System.out.println(studentSource.getJavaWeb()); } } @Test public void testJoinType() { StudentService service = new StudentServiceImpl(); String name = "胡洋"; List list = service.findStudentLeftSourceByName(name); for (StudentSource studentSource : list) { System.out.println(studentSource.getName()); System.out.println(studentSource.getHadoop()); System.out.println(studentSource.getHive()); System.out.println(studentSource.getJavaWeb()); } } /** * 测试连接查询 */ @Test public void testQuery() { StudentService service = new StudentServiceImpl(); String name = "胡洋"; int sex = 1; System.out.println(service.findByQuery(name, sex)); } } ``` - JSON化对象使用方式 ```java import cn.backpackerxl.easyJDBC.util.JSON; public class TestJson { @Test public void testTeacher() { Teacher teacher = new Teacher(); teacher.setName(null); teacher.setClassTime((short) 77); teacher.setFlag(false); teacher.setInformation("ggg1 !!!"); teacher.setSex('v'); String json = JSON.stringify(teacher); System.out.println(json); Teacher teacher1 = JSON.setValid(new Teacher()).parseValue(json); System.out.println(teacher1); } @Test public void packJSON() { Comment comment = new Comment(1L, null, "hi", new Date(), 0L); Comment comment1 = new Comment(2L, "jack", "hello", new Date(), 0L); Comment comment2 = new Comment(3L, "alice", "ok", new Date(), 0L); Comment comment3 = new Comment(4L, "peter", "i know", new Date(), 0L); List comments = new ArrayList<>(); List comments2 = new ArrayList<>(); List comments3 = new ArrayList<>(); comments.add(comment1); comments.add(comment2); comments.add(comment3); System.out.println(JSON.stringify(comment)); System.out.println(JSON.stringify(comments)); comments2.add(comment3); comments3.add(comment2); CommentPacking commentPacking = new CommentPacking(1, 4001L, null, 'a', 5L, true, null, null); CommentPacking commentPacking1 = new CommentPacking(2, 4002L, null, 'b', 5L, true, comment1, comments2); CommentPacking commentPacking2 = new CommentPacking(3, 4003L, "king2", 'c', 5L, false, comment2, comments3); List comments4 = new ArrayList<>(); comments4.add(commentPacking); comments4.add(commentPacking1); comments4.add(commentPacking2); System.out.println(JSON.stringify(commentPacking)); System.out.println(JSON.stringify(comments4)); } @Test public void jsonToData() { String json = "[{\"id\":2,\"name\":\"jack\",\"context\":\"hello\",\"create_time\":1651158133623,\"replay_id\":0},{\"id\":3,\"name\":\"alice\",\"context\":\"ok\",\"create_time\":1651158133623,\"replay_id\":0},{\"id\":4,\"name\":\"peter\",\"context\":\"i know\",\"create_time\":1651158133623,\"replay_id\":0}]"; String json1 = "{\"id\":1,\"name\":\"tom\",\"context\":null,\"create_time\":1651158133623,\"replay_id\":0}"; Comment comment = JSON.setValid(new Comment()).parseValue(json1); System.out.println(comment); List comments = JSON.setValid(new Comment()).parseAll(json); System.out.println(comments); } } ``` #### JSON新增解析器, 解析功能更强大 ```java public class TableTest { @Test public void testParse() { String json = "{\"name\":[\"tom\",\"jack\",\"alice\"],\"ak\":[1, 5, 8, 9, 6, 3],\"db\":[78.98, 8945.68],\"ig\":[{\"name\":\"hy\",\"pd\":\"123\"},{\"name\":\"dk\",\"pd\":\"123\"}]}"; Map objValue = JSON.parse(json).getObjValue(); for (JSONObject name : objValue.get("name").getArrays()) { System.out.println(name.getStrValue()); } System.out.println("======================"); for (JSONObject ak : objValue.get("ak").getArrays()) { System.out.println(ak.getIntValue()); } } @Test public void ObjectToJSON() { Use use = new Use(); String[] names = {"tom", "jack", "alice"}; int[] ints = {1, 5, 8, 9, 6, 3}; Double[] db = {78.98, 8945.68}; IG[] igs = new IG[]{new IG("hy", "123"), new IG("dk", "123")}; Map igMap = new HashMap<>(); Map igString = new HashMap<>(); List l = new ArrayList<>(); l.add("dk"); l.add("yzh"); l.add("hy"); igMap.put("001", new IG("dk", "789")); igString.put("access", true); igString.put("login", true); igString.put("register", false); use.setTag("User"); use.setName(names); use.setAk(ints); use.setDb(db); use.setIg(igs); use.setMapIg(igMap); use.setMapObj(igString); use.setStringList(l); use.setSex('男'); use.setAge((short) 25); use.setHappy(true); List list = new ArrayList<>(); List booleans = new ArrayList<>(); list.add(new IG("gg", "kk")); list.add(new IG("hh", "bb")); list.add(new IG("rr", "cv")); booleans.add(true); booleans.add(false); booleans.add(true); use.setUseList(list); use.setBooleans(booleans); Map re = new HashMap<>(); re.put("name", "hy"); re.put("age", "34"); re.put("hobey", "game!!"); use.setMapStr(re); System.out.println(JSON.stringify(use)); } @Test public void testParseValue() { String json = "{\"tag\":\"User\",\"sex\":\"男\",\"is_happy\":true,\"age\":25,\"name\":[\"tom\",\"jack\",\"alice\"],\"ak\":[1, 5, 8, 9, 6, 3],\"db\":[78.98, 8945.68],\"ig\":[{\"name\":\"hy\",\"pd\":\"123\"},{\"name\":\"dk\",\"pd\":\"123\"}],\"map_obj\":[{\"access\":true},{\"login\":true},{\"register\":false}],\"map_str\":[{\"hobey\":\"game!!\"},{\"name\":\"hy\"},{\"age\":\"34\"}],\"map_ig\":[{\"001\":{\"name\":\"dk\",\"pd\":\"789\"}}],\"string_list\":[\"dk\",\"yzh\",\"hy\"],\"use_list\":[{\"name\":\"gg\",\"pd\":\"kk\"},{\"name\":\"hh\",\"pd\":\"bb\"},{\"name\":\"rr\",\"pd\":\"cv\"}],\"booleans\":[true,false,true]}"; Use use = JSON.setValid(Use.class).parseValue(json); System.out.println(use); } } ``` > 示例代码中用到的实体 均可在项目源代码中找到出处 #### 更多内容 [`>>`](src/test/java/)