Da ich mit der Lückenzeit schreibe, würde ich es begrüßen, wenn Sie auf Teile mit geringer Genauigkeit hinweisen könnten. Schließen Sie zunächst diejenigen aus, die EOL sind. Wir werden kostenpflichtige Funktionen in Betracht ziehen, diese jedoch aufgrund des Taschenproblems nicht verwenden. Die verwendete Datenbank ist aus einem dummen Grund wie "Nun, vielleicht kann Postgre verwendet werden, auch wenn es nicht angegeben ist" auf Postgre festgelegt.
ORM | Transaction | Data Model | DSL |
---|---|---|---|
○ | × | × | ○ |
○: Korrespondenz ×: Nicht unterstützt
―― "Es gibt keine leistungsstarke DSL-Funktion wie jOOQ und Query DSL, und es handelt sich nicht um ein Unternehmens-ORM wie Hibernate oder mybatis."
java -cp iciql.jar; your_db_driver.jar <Parameter>
--Korrektur: java -cp iciql.jar; your_db_driver.jar com.iciql.util.GenerateModels <Parameter>
-Benutzername
-user
-Folder
-folder
Main.java
public static void main(String... args) {
try (Db db = Db.open("jdbc:postgresql:example", "postgres", "pass")) {
Employee e = new Employee();
List<Employee> list = db.from(e).select();
list.stream().forEach(em -> {
System.out.println(em.id + ":" + em.first_name + " " + em.middle_name + " " + em.last_name);
});
}
}
Main.java
List<Employee> list = db.from(e).where(e.id).is(BigDecimal.ONE).select();
Main.java
// 「com.iciql.IciqlException: ERROR:Spaltenreferenz"id"Ist mehrdeutig ", können Sie mir eine Kennung mit join geben ...
//List<EmployeePost> list = db.from(e).innerJoin(p).on(p.employee_id).is(e.id).select();
EmployeePost[] list = db.open(EmployeePostDao.class).getAllEmployeePost();
Arrays.asList(list).stream().forEach(em -> {
System.out.println(
em.id + ":" + em.employee_id
+ "/" + em.first_name + " " + em.middle_name + " " + em.last_name + " " + em.name);
});
EmployeePostDao.java
public interface EmployeePostDao extends Dao {
//Irgendwie ist hier nur ein Array und List ist nicht erlaubt
@SqlQuery("SELECT e.id AS employee_id, e.first_name, e.middle_name, e.last_name, p.id AS id, p.name FROM employee AS e INNER JOIN post AS p ON e.id = p.employee_id")
EmployeePost[] getAllEmployeePost();
}
EmployeePost.java
@Iciql.IQSchema("public")
@Iciql.IQIndex(name="Id", type= Iciql.IndexType.UNIQUE, value={ "id" })
public class EmployeePost {
@Iciql.IQColumn(primaryKey=true, nullable=false, defaultValue="0", name = "id")
public BigDecimal id;
public String first_name;
public String last_name;
public String middle_name;
@Iciql.IQColumn(nullable=false, defaultValue="0")
public BigDecimal employee_id;
public String name;
public EmployeePost() {}
}
Es kommt etwas wirklich Einfaches heraus. Die durch das Zeichen (60) festgelegte Spalte wird von bpchar nicht unterstützt.
Employee.java
@IQSchema("public")
@IQTable(name="employee")
@IQIndex(name="Id", type=IndexType.UNIQUE, value={ "id" })
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@IQColumn(primaryKey=true, nullable=false, defaultValue="0")
public BigDecimal id;
// unsupported type bpchar
public Object first_name;
// unsupported type bpchar
public Object last_name;
// unsupported type bpchar
public Object middle_name;
public Employee() {
}
}
Glauben Sie an die Quelle, weil die offizielle Dokumentation anders ist.
Ist noch nicht.
Recommended Posts