# cjxyorm **Repository Path**: jsmth/CJXYORM ## Basic Information - **Project Name**: cjxyorm - **Description**: 如果你厌倦了繁琐的JDBC,阿帕奇的DBUtils又满足不了你的需求,mybaits、hibernate却又太过于庞大,那么就请使用cjxyorm吧,它吸收了DBUtils和Hibernate的特点,简单易用没有任何多余功能。轻轻松松的进行CRUD。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/jfhb/cjxy-orm - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2017-11-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # _**中文教程**_ :tw-1f34b: # CJXYORM 如果你厌倦了繁琐的JDBC,Apache的DBUtils又满足不了你的需求,mybaits、hibernate却又太过于庞大,那么就请使用cjxyorm吧,它吸收了DBUtils和Hibernate的特点,简单易用没有任何多余功能。轻轻松松的进行CRUD。 # **入门demo** 准备工作:在工程中添加全部的jar包 第一步:配置相关配置 把c3p0-config.xml、cjxy-orm.xml放到编译路径下 c3p0文件内容: ``` root *********** com.mysql.jdbc.Driver ``` cjxy-orm.xml内容如下 ``` true true mysql ``` 第二步:新建一个DBUtils.java的工具类 ``` import cn.cjxy.orm.main.QuerySession; import cn.cjxy.orm.main.SessionFactory; public class DBUtils{ public static QuerySession getQuerySession(){ return new SessionFactory().openQuerySession(); } } ``` 第三步:新建一个实体类User.java ``` import cn.cjxy.orm.anntaion.Enitry; import cn.cjxy.orm.anntaion.GeneratedValue; import cn.cjxy.orm.anntaion.Id; import cn.cjxy.orm.anntaion.Table; import cn.cjxy.orm.constant.ORMConfig; @Enitry @Table(name = "user") public class User { @Id @GeneratedValue(startegy = ORMConfig.IDENTITY) private Integer id; private String name; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } } ``` 第四步:新建一个测试类Test.java ``` public class Test{ @Test public void testSessionFactory(){ User user=new User(); user.setName("jiangfan"); user.setPassword("123456"); DBUtils.getQuerySession().save(user); } } ``` ### 如果您的配置没有问题的话,您的数据库中会生成一张表和一条记录。 # cjxyorm注解详解 ### @Enitry #### 这个注解用来修饰一个实体类,如果一个类被此注解修饰。则这个类会被cjxyorm识别。然后读取此类的的详细信息,然后生成一张表。如果您想要这个类就必须加上此注解 ``` @Enitry public class User { } ``` ### @Table(name="table_name") #### 这个注解同样也是用来修饰一个实体类,这个注解用来指定生成数据表的名字。这个注解并不是必须的,如果您不使用此注解,则默认会使用类的名字作为数据表的名字。 ``` @Enitry @Table(name= "my_user") public class User { } ``` ### @Id、 @GeneratedValue #### @Id 注解用来修饰类当中的属性,这个注解是用来指定生成数据表的字段的主键,被修饰的属性必须是Integer且名字为id。否则cjxyorm将不能正常 运行。@Id注解还需要配合 @GeneratedValue注解才会起作用。@GeneratedValue注解里面有一个startegy属性,startegy用来指定主键的生成策略。 #### ORMConfig.IDENTITY指定策略为id自增。 ``` @Enitry @Table(name= "my_user") public class User { @Id @GeneratedValue(startegy = ORMConfig.IDENTITY) //抱歉目前cjxyorm只支持自增一种生成策略 private Integer id; // ..... setter/getter } ``` ### @Column #### @Column注解用来修饰类中的属性。它里面有这些属性:length、name、nullable、unique、type length属性用来指定生成数据表字段的长度,name用来指定生成数据表字段的名字,nullable指定生成数据表字段是否为空(默认为空),unique用来指定数据表字段是否是唯一的(默认是不唯一),type用来指定数据表字段的类型(默认为varchar(255))。此注解也不是必须的,如果您不使用此注解,那么没有被此注解修饰的属性将将会根据自己的名字生成一个字段且类型为varchar长度为255。 ``` @Enitry @Table(name= "my_user") public class User { @Id @GeneratedValue(startegy = ORMConfig.IDENTITY) //抱歉目前cjxyorm只支持自增一种生成策略 private Integer id; @Column(name="USER_NAME",type = "varchar",length = "50",unique = true,nullable = true) private String username; private String password; // ..... setter/getter } ``` # cjxyorm Session类详解 ### Session #### Session类中为我们提供了这些方法: T get(Serializable var1, Class var2)、 Object save(Object var1)、 void delete(Serializable var1, Class var2)、void update(Serializable var1, Object var2)、 long size(Class var1) ------------------------------------------------------------------------------------------------------------------ # _**English Course**_ :tw-1f30b: # CJXYORM If you are tired of the cumbersome JDBC, Apache DBUtils can not meet your needs, mybaits, hibernate is too large, so please use cjxyorm bar, it absorbs the characteristics of DBUtils and Hibernate, simple and easy to use, without any redundant function. Easy to carry out CRUD. # Simple example ### Preparation: add all jar packages to the project ### The first step: configure the relevant files, put c3p0-config.xml and cjxy-orm.xml into the compile path #### C3p0 file content: ``` root *********** com.mysql.jdbc.Driver ``` #### Cjxy-orm.xml content ``` true true mysql ``` #### The second step: create a new tool class for DBUtils.java ``` import cn.cjxy.orm.main.QuerySession; import cn.cjxy.orm.main.SessionFactory; public class DBUtils{ public static QuerySession getQuerySession(){ return new SessionFactory().openQuerySession(); } } ``` #### The third step: create a new entity class User.java ``` import cn.cjxy.orm.anntaion.Enitry; import cn.cjxy.orm.anntaion.GeneratedValue; import cn.cjxy.orm.anntaion.Id; import cn.cjxy.orm.anntaion.Table; import cn.cjxy.orm.constant.ORMConfig; @Enitry @Table(name = "user") public class User { @Id @GeneratedValue(startegy = ORMConfig.IDENTITY) private Integer id; private String name; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } } ``` #### The fourth step: create a new test class Test.java ``` public class Test{ @Test public void testSessionFactory(){ User user=new User(); user.setName("jiangfan"); user.setPassword("123456"); DBUtils.getQuerySession().save(user); } } ``` #### All the work has been done here, and if your configuration has no problem, then a table will be created in the database to insert a record ------------------------------------------------------------------------------------------------------------------ ### 您的支持就是我最大的动力(Your support is my biggest motivation) :tw-1f49b: #### 支付宝(Alipay) ![支付宝](https://gitee.com/uploads/images/2017/1116/160722_0c461ddd_1636012.jpeg "1510819602224.jpg") #### QQ红包(QQ red packets) ![qq红包](https://gitee.com/uploads/images/2017/1116/160455_c6c9a898_1636012.png "无标题.png") #### 微信支付(WeChat payment) ![微信支付](https://gitee.com/uploads/images/2017/1116/160537_88de5f06_1636012.png "mm_facetoface_collect_qrcode_1510819196278.png")