# x-orm **Repository Path**: geekcheng/x-orm ## Basic Information - **Project Name**: x-orm - **Description**: 基于springboot和jdbc类似JFinal的orm - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 12 - **Created**: 2016-07-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##前言 我是一个曾纠结springboot还是jfinal的渣渣程序员 jfinal的orm超级爽, 但是controller并不是十分方便而且官方并不支持注解. jfinal-ext支持注解了但是写起单元测试来十分麻烦. jfinal也不支持restful oscgit上也有数个基于jfinal的restful框架,但是没有在官方支持下感觉十分奇怪, 比如取PathParam要getAttr(),这样就感觉很奇怪了. 最终我败在了Spring的大生态下, 虽然Spring库有点大了, 但是总是有用的. SpringBoot的简单配置实在让我非常心动, 加上SpringMVC强大又稳定, 所以我最终选择了SpringBoot 但是SpringBoot自带的JPA写起一些多表查询,动态查询实在会死人, 所以我决定写一个基于JDBC类似JFinal的ORM框架 ##x-orm简介 跟JFinal一样有Model和Db+Record两种方式, 不过我在Model上加上了注解,这样配置就更加少了. 在注册Record的时候实在比不上波总的JFinal..小弟才疏学浅.感觉在服务启动的性能上比JFinal差多了 功能还在慢慢完善, 不废话了, 有兴趣的小伙伴来试试顺便给个星 ##配置 x-orm是基于SpringBoot+Jdbc的 Maven就依赖这几个东西就好了 ``` org.springframework.boot spring-boot-starter-parent 1.3.6.RELEASE org.springframework.boot spring-boot-starter-web mysql mysql-connector-java org.springframework.boot spring-boot-starter-jdbc ``` 配置上面就非常简单了, 在SpringBoot的服务启动类加上两个注册的语句~如果不需要Record的就不需要填了 ``` @Controller @EnableAutoConfiguration @ComponentScan(basePackages = "com.xdivo") public class SpringBootStarter { public static void main(String[] args) throws Exception { SpringApplication.run(SpringBootStarter.class, args); Register.registerModel("com.xdivo.model"); //扫描的包名 Register.registerRecord("online_class"); //数据库名 } } ``` 定义Model ``` /** * 用户类 * Created by liujunjie on 16-7-19. */ @Entity(table = "c_user") public class User extends Model { @PK @Column(name = "id_") private String id; @Column(name = "mobile_") private String mobile; @Column(name = "password_") private String password; public String getId() { return id; } public User setId(String id) { this.id = id; return this; } public String getMobile() { return mobile; } public User setMobile(String mobile) { this.mobile = mobile; return this; } public String getPassword() { return password; } public User setPassword(String password) { this.password = password; return this; } } ``` 在使用的时候就跟JFinal基本一样了 ``` //保存User对象 User user = new User(); user.setMobile("abc"); user.setPassword("123"); user.save(); //异步保存到数据(更新也一样) user.asyncSave(); //查询record Record record = Db.findById("c_user", 23); //保存Record对象 Record record = new Record() .set("mobile_", "abc") .set("password_", "123"); Db.save("c_user", record); ``` 像事务那些东西就是基于SpringBoot了.省了一笔功夫 ##联系方式 ###QQ: 41369927 ###邮箱: 41369927@qq.com