GithubHelp home page GithubHelp logo

onurciner / ohibernate Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 5.0 10.06 MB

SQLite Connection for Android. ORM tool for Android devices. First ORM with Geometric-Spatial data support for Android operating systems.

Home Page: http://www.onurciner.com

Java 100.00%

ohibernate's Introduction

OHibernate


1.0.9

SQLite Connection for Android. ORM tool for Android devices. First ORM with Geometric-Spatial data support for Android operating systems.

There is relational table support. OneToOne and OneToMany are fully supported. OHQL support for simple inquiries.

Log

v1.0.8 -> Solved single quotes problem.
v1.0.9 -> Folder created automatically.

##Installation

To use the library, first include it your project using Gradle

    allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
    }

and:

    dependencies {
            compile 'com.github.10uroi:OHibernate:1.0.9'
    }

##How to use

###Attached into the "MainActivity" class

	public class MainActivity extends AppCompatActivity {
	
	    //I set the database path and the name
	    public static final String DATABASE_EXTERNAL = Environment.getExternalStorageDirectory().getPath(); //external
	    public static final String DATABASE_SUB = "/folderName/";
	    public static final String DATABASE_DB_PATH = DATABASE_EXTERNAL + DATABASE_SUB;
	    public static final String DATABASE_DATA_NAME = "databaseName.sqlite";
	
	
	
	    @Override
		protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		OHibernateConfig.DB_PATH = DATABASE_DB_PATH; // DATABASE PATH
		OHibernateConfig.DB_NAME = DATABASE_DATA_NAME; // DATABASE NAME
		
		}
	}

###We are creating the "ExampleBean" class

    @Entity(TABLE_NAME = "example", TABLE_OPERATION = Entity.TABLE_OPERATION_TYPE.DROP_AND_CREATE)
	public class ExampleBean {

		@Id(PRIMARY_KEY_AUTOINCREMENT = true)
		private Integer id;

		private String name;

		private String surname;

		private int age;

		@Column(NAME = "active") //column customization
		private boolean status;

		@Column(DATETIME = true) //column customization
		private String datetime;
		
		//GETTER - SETTER
	}

###We are creating the "ExampleBeanDAO" class

	public class ExampleBeanDAO {

		//Automatic Transactions
	
		OHibernate<ExampleBean> oHibernate = new OHibernate<>(ExampleBean.class);

		public void insert(ExampleBean exampleBean){
			try {
				oHibernate.insert(exampleBean); // Returns the id of the object
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
		}

		public void update(ExampleBean exampleBean){
			try {
				oHibernate.update(exampleBean);
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
		}

		public void delete(ExampleBean exampleBean){
			try {
				oHibernate.delete(exampleBean);
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
		}

		public ExampleBean select(Integer id){
			try {
				return (ExampleBean) oHibernate.where("id",id).select();
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
			return null;
		}

		public ArrayList<ExampleBean> selectAll(){
			try {
				return (ArrayList<ExampleBean>) oHibernate.selectAll();
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
			return null;
		}

		public ArrayList<ExampleBean> selectAll(String surname){
			try {
				return (ArrayList<ExampleBean>) oHibernate.where("surname",surname).limit(5).selectAll(); // custom
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
			return null;
		}

		public ExampleBean selectCustom(String name,String surname){
			try {
				return (ExampleBean) oHibernate.where("name",name).and().where("surname",surname, LIKE_TYPE.BOTH).select(); // custom
			} catch (Exception e) {
				e.printStackTrace();
				Log.e("Error",e.getMessage());
			}
			return null;
		}
	}

Relational tables

Example OneToMany

User Address
@Entity(TABLE_NAME = "users", TABLE_OPERATION = Entity.TABLE_OPERATION_TYPE.CREATE)
	public class User {
  @Id(PRIMARY_KEY_AUTOINCREMENT = true)
  private Integer id;

  private String firstName;

  private String lastName;

  @OneToMany(JoinColumn = "user_id", Cascade = CascadeType.ALL, Fetch = FetchType.EAGER)
  private ArrayList<Address> addresses;

  ...
  //Getter - Setter
}
   </code>
 </pre>
</td>
<td style="padding:0; margin:0; border:none; width:50%;">
  <pre lang="java"><code class="language-java">@Entity(TABLE_NAME = "addresses",TABLE_OPERATION = Entity.TABLE_OPERATION_TYPE.CREATE)
public class Address {

  @Id(PRIMARY_KEY_AUTOINCREMENT = true)
  private Integer id;

  private String county;

  @Column(NAME="phone_number")
  private Long phoneNumber;

  private Integer user_id;

  ...
  //Getter - Setter
}
  </code></pre>
</td>

  
### DB Tables
users addresses
id firstname lastname
</td>
<td style="padding:0; margin:0; border:none;">
  id
</td>
<td style="padding:0; margin:0; border:none;">
  county
</td>
<td style="padding:0; margin:0; border:none;">
  phone_number
</td>
<td style="padding:0; margin:0; border:none;">
  user_id
</td>
1 Onur Ciner ┬► 1 Ankara 05554443322 1
</td>
<td style="padding:0; margin:0; border:none;">
 
</td>
 <td style="padding:0; margin:0; border:none;">

</td>
<td style="padding:0; margin:0; border:none;">
 └►
</td>
<td style="padding:0; margin:0; border:none;">
  2
</td>
<td style="padding:0; margin:0; border:none;">
  İstanbul
</td>
<td style="padding:0; margin:0; border:none;">
  05554443311
</td>
<td style="padding:0; margin:0; border:none;">
  1
</td>

OHQL (The OHibernate Query Language)

Single Select

User user = (User) new OQuery()
	.addEntity(User.class)		//=>Returns a String if entity is not added
	.Select("*")
	.From("users")				//=> "users"->table name
	.Where("id",2)
	.getSingleResult();			//=> Fetch user with id 2 in the users table

List Select

ArrayList<User> users = new OQuery()
	.addEntity(User.class)		//=>Returns a String if entity is not added
	.Select("*")
	.From("users")				//=> "users"->table name
	.list();					//=> Brings all users in the users table

Insert Query

new OQuery()
	.SetParameter("firstName","Onur")
	.SetParameter("lastName","Ciner")
	.Insert("users");			//=> "users"->table name

Insert Entity Query

Users user = new Users();					//=>The object is created
user.setFirstName("Onur");
user.setLastName("Ciner");
new OQuery().InsertEntity("users",user);	//=> "users"->table name

Update Query

new OQuery()
	.SetParameter("firstName", "Selçuk")
	.SetParameter("lastName", "Uzunsoy")
	.Where("id", 15)				//=> User with id 15 will be updated
	.Update("users"); 				//=> "users"->table name

Update Entity Query

Users user = OQuery().Select...;			//=> Object brought
user.setFirstName("Onur");
user.setLastName("Ciner");
new OQuery().UpdateEntity("users",user);	//=> "users"->table name

Delete Query

new OQuery()
	.Where("id",15)		//=> User with id 15 will be deleted
	.Delete("users");	//=> "users"->table name

DeleteAll Query

new OQuery()
	.DeleteAll("users");	//=> All users in the users table will be deleted

ohibernate's People

Contributors

onurciner avatar

Stargazers

Arda Tümay avatar Eyüp Akkaya avatar Alp Atamanalp avatar Alexey Zatsepin avatar Christian Alves Cyrille Amani avatar Fernando Sales avatar Gabriel Perez avatar  avatar lally elias avatar Pranav Lathigara avatar Dzhunet Hasan avatar Mladen Babic avatar Jungle avatar Xiaohai.lin avatar

Watchers

James Cloos avatar Gabriel Perez avatar Eyüp Akkaya avatar  avatar

ohibernate's Issues

Database problem

I've tried to make a simple CRUD, but when my application start, I receive the errors:

Database Problem -> Error: Failed to open database! unknown error in open
Error: Table could not be deleted : database already closed
Error: database already closed

java.lang.UnsatisfiedLinkError

java.lang.UnsatisfiedLinkError: No implementation found for void jsqlite.Database.internal_init() (tried Java_jsqlite_Database_internal_1init and Java_jsqlite_Database_internal_1init__)

Problem on table creation

I have such error when try this ORM:

java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.ArrayList.get(ArrayList.java:411)
at com.onurciner.OHibernate.tableCreate(OHibernate.java:521)
at com.onurciner.OHibernate.engine(OHibernate.java:432)
at com.onurciner.OHibernate.insert(OHibernate.java:626)

my model:

@Entity(TABLE_NAME = "book", TABLE_OPERATION = Entity.TABLE_OPERATION_TYPE.DROP_AND_CREATE) public class Book{
@Id(PRIMARY_KEY_AUTOINCREMENT = true)
@Column(NAME="id")
private long id;
private String author;
private String title;
private int pagesCount;
private int bookId;

init:

private OHibernate bookDao = new OHibernate<>(Book.class);
public static final String DATABASE_EXTERNAL = Environment.getExternalStorageDirectory().getPath(); 
public static final String DATABASE_SUB = "/folderName/";
public static final String DATABASE_DB_PATH = DATABASE_EXTERNAL + DATABASE_SUB;
public static final String DATABASE_DATA_NAME = "databaseName.sqlite";

@Override
public void onCreate() {
    super.onCreate();
    OHibernateConfig.DB_PATH = DATABASE_DB_PATH; // DATABASE PATH
    OHibernateConfig.DB_NAME = DATABASE_DATA_NAME; // DATABASE NAME
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.