Xin chào mọi người ở daynhauhoc!
Hôm nay mình định làm một ứng dụng nhỏ sử dụng SQLite trên Java nhưng mình không muốn dụng vào code SQL. Mình có thử một vài Tutorial sử dụng Hibernate nhưng toàn lỗi ở dialect
Unable to resolve name [org.hibernate.dialect.SQLiteDialect] as strategy [org.hibernate.dialect.Dialect]
code HibernateUtil.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.sakadream.fileupload.hibernate;
import com.sakadream.fileupload.entities.Image;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import java.util.Properties;
/**
* Hibernate Utility class with a convenient method to get Session Factory
* object.
*
* @author Phan Ba Hai
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
Properties prop = new Properties();
prop.put("hibernate.connection.driver_class", "org.sqlite.JDBC");
prop.put("hibernate.connection.url", "jdbc:sqlite:mydb.db");
prop.put("hibernate.connection.username", "");
prop.put("hibernate.connection.password", "");
prop.put("hibernate.current_session_context_class", "thread");
prop.put("hibernate.query.factory_class", "org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory");
prop.put("hibernate.dialect", "org.hibernate.dialect.SQLiteDialect");
prop.put("hibernate.show_sql", "true");
sessionFactory = new AnnotationConfiguration()
.addPackage("com.sakadream.fileupload.entities")
.addProperties(prop)
.addAnnotatedClass(Image.class)
.buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
file model Image.java
package com.sakadream.fileupload.entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Created by Phan Ba Hai on 17/08/2017.
*/
@Entity
@Table
public class Image {
@Id
@Column
private int id;
@Column
private String fileName;
public Image(String fileName) {
this.fileName = fileName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
Câu đầu tiên là Hibernate có thật sự hỗ trợ SQLite không?
Câu thứ 2, nếu có thì bằng cách nào?
Câu thứ 3, nếu không thì có ORM nào thay thế không? Mình thấy bên Android có ORMLite khá hay nhưng không biết nó có xài được trên app java thông thường hay không?