1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jfhb-CJXYORM

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Китайский учебник:

Если вы устали от громоздкого JDBC, Apache DBUtils не удовлетворяет ваши потребности, а mybaits и hibernate слишком громоздки, то используйте cjxyorm. Он сочетает в себе особенности DBUtils и Hibernate, прост в использовании и не имеет лишних функций. Легко и просто выполнять CRUD.

Вводный demo:

Подготовка: добавьте все jar-файлы в проект.

Шаг 1: Настройте соответствующую конфигурацию. Поместите файлы c3p0-config.xml и cjxy-orm.xml в путь компиляции.

Содержание файла c3p0-config:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="user">root</property>
        <property name="password">***********</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">
          <![CDATA[jdbc:mysql:///cjxy?useUnicode=true&characterEncoding=utf-8]]>
        </property>
    </default-config> 
</c3p0-config> 

Содержание файла cjxy-orm:

<?xml version="1.0" encoding="UTF-8"?>
<cjxy-orm-config> 
    <session-factory>
        <!-- 只可以放在类路径下面  开启 c3p0-->
        <property name="orm.c3p0">true</property>
        <!--在控制台打印sql-->
        <property name="show_sql">true</property>
        <!-- mysql(5.5) oracle(10g) -->
        <property name="orm.dialect">mysql</property>
        <!-- 映射Pojo -->
        <mapping class="User"/>
    </session-factory>
</cjxy-orm-config>

Шаг 2: Создайте новый класс инструментов 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();
    }
}

Шаг 3: Создайте новый класс сущностей 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 + '\'' +
                '}';
    }
}

Шаг 4: Создайте тестовый класс 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 используется для украшения атрибута класса. Этот атрибут должен быть целым числом и называться «id». В противном случае cjxyorm не сможет нормально работать. Аннотация @Id также должна использоваться вместе с аннотацией @GeneratedValue, чтобы она работала. В аннотации @GeneratedValue есть атрибут startegy, который используется для определения стратегии генерации первичного ключа.

ORMConfig.IDENTITY указывает на стратегию автоинкремента.

Пример:

@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.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jfhb-CJXYORM.git
git@api.gitlife.ru:oschina-mirror/jfhb-CJXYORM.git
oschina-mirror
jfhb-CJXYORM
jfhb-CJXYORM
master