jlibs.examples.jdbc.DB.java Source code

Java tutorial

Introduction

Here is the source code for jlibs.examples.jdbc.DB.java

Source

/**
 * Copyright 2015 Santhosh Kumar Tekuri
 *
 * The JLibs authors license this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package jlibs.examples.jdbc;

import jlibs.jdbc.DAO;
import jlibs.jdbc.JDBC;
import jlibs.jdbc.Transaction;
import org.apache.commons.dbcp.BasicDataSource;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

/**
 * @author Santhosh Kumar T
 */
public class DB {
    public static final JDBC JDBC;
    public static final EmployeeDAO EMPLOYEES;

    static {
        BasicDataSource ds = new BasicDataSource();
        ds.setUrl("jdbc:hsqldb:file:examples/db/demo");

        JDBC = new JDBC(ds, null);
        EMPLOYEES = (EmployeeDAO) DAO.create(Employee.class, JDBC);
    }

    public static void main(String[] args) throws Exception {
        try {
            assert false;
            throw new RuntimeException("assertions are not enabled");
        } catch (AssertionError ignore) {
            // ignore
        }

        EMPLOYEES.delete();
        assert EMPLOYEES.all().size() == 0;

        Employee emp = new Employee();
        emp.id = 1;
        emp.setFirstName("santhosh");
        emp.setLastName("kumar");
        emp.setAge(25);
        EMPLOYEES.insert(emp);

        assert EMPLOYEES.all().size() == 1;
        emp.setAge(20);
        EMPLOYEES.update(emp);
        assert EMPLOYEES.all().get(0).getAge() == 20;

        try {
            JDBC.run(new Transaction<Object>() {
                @Override
                public Object run(Connection con) throws SQLException {
                    Employee emp = new Employee();
                    emp.id = 2;
                    emp.setFirstName("santhosh");
                    emp.setLastName("kumar");
                    emp.setAge(25);
                    EMPLOYEES.insert(emp);

                    emp.id = 3;
                    EMPLOYEES.insert(emp);

                    assert EMPLOYEES.all().size() == 3;
                    //                    assert table.findOlderEmployees(1).size()==2;
                    throw new RuntimeException();
                }
            });
        } catch (RuntimeException ignore) {
            // ignore
        }
        //        assert table.findOlderEmployees(1).size()==0;
        System.out.println(EMPLOYEES.all().size());
        assert EMPLOYEES.all().size() == 1;

        emp.setAge(10);
        EMPLOYEES.upsert(emp);
        assert EMPLOYEES.first("where id=?", emp.id).getAge() == 10;
        emp.id = -1;
        emp.setLastName("KUMAR");
        EMPLOYEES.upsert(emp);
        assert EMPLOYEES.first("where last_name=?", "KUMAR") != null;
        assert EMPLOYEES.all().size() == 2;

        List<Employee> list = EMPLOYEES.all();
        list.get(0).setAge(29);
        EMPLOYEES.update(list.get(0));
        EMPLOYEES.delete(list.get(0));
        //        List<Employee> list = table.findYoungEmployees(50);
        //        Employee emp1 = EMPLOYEES.get(1);
    }
}