Showing posts with label LIMIT. Show all posts
Showing posts with label LIMIT. Show all posts

Tuesday, 7 April 2020

How many threads supported by Java?

Number of threads supported by Java is depend on many factors like CPU you are using, Operating System, RAM, Java release that you are using etc.,

For example, below application can able to check 'how many threads can be created in your system approximately?''

App.java
package com.sample.app;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

public class App {

 private static AtomicInteger atomicInteger = new AtomicInteger(0);

 public static void main(String args[]) {

  while (true) {
   Thread t1 = new Thread() {
    public void run() {
     try {
      System.out.println("Started thread " + atomicInteger.incrementAndGet());
      TimeUnit.MINUTES.sleep(10);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   };

   t1.start();
  }
 }

}



You may like

Tuesday, 17 March 2020

Spring jpa: HQL: limit Query example

Below snippet is used to perform limit query using HQL.

Query query = session.createQuery("....");
query.setFirstResult(startPosition);
query.setMaxResults(maxRows);

Find the below working application.

Employee.java
package com.sample.app.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "employees")
public class Employee {

  @Id
  @GeneratedValue
  private int id;

  private String firstName;;

  private String lastName;

  public Employee() {
  }

  public Employee(String firstName, String lastName) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getFirstName() {
    return firstName;
  }

  public void setFirstName(String firstName) {
    this.firstName = firstName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  @Override
  public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("Employee [id=");
    builder.append(id);
    builder.append(", firstName=");
    builder.append(firstName);
    builder.append(", lastName=");
    builder.append(lastName);
    builder.append("]");
    return builder.toString();
  }

}

EmployeeRepository.java
package com.sample.app.repository;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.sample.app.entity.Employee;

@Repository
@Transactional
public class EmployeeRepository {

  @PersistenceContext
  private EntityManager entityManager;

  public Session getSession() {
    Session session = entityManager.unwrap(Session.class);
    return session;
  }

  public List<Employee> all() {
    Session session = getSession();
    Query query = session.createQuery("FROM Employee");
    return query.getResultList();
  }

  public void save(Employee emp) {
    getSession().save(emp);
  }

  public List<Employee> emps(int startPosition, int maxRows) {
    Session session = getSession();
    Query query = session.createQuery("FROM Employee");
    query.setFirstResult(startPosition);
    query.setMaxResults(maxRows);

    return query.getResultList();
  }

}

pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample.app</groupId>
  <artifactId>springJPASession</artifactId>
  <version>1</version>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
    </dependency>


  </dependencies>
</project>

Create application.properties file under src/main/resources folder.

application.properties
# Setting log level to DEBUG
logging.level.org.springframework.web=ERROR

## H2 specific properties
spring.h2.console.enabled=true
spring.h2.console.path=/h2

spring.datasource.url=jdbc:h2:file:~/db/myOrg.db;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1;

spring.datasource.username=krishna
spring.datasource.password=password123

spring.datasource.driverClassName=org.h2.Driver

## JPA specific properties
# Creates the schema, destroying previous data.
spring.jpa.hibernate.ddl-auto=create

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

## Database connection pooling properties
# Number of ms to wait before throwing an exception if no connection is available.
spring.datasource.max-wait=10000

# Maximum number of active connections that can be allocated from this pool at the same time.
spring.datasource.tomcat.max-active=10
spring.datasource.tomcat.max-idle=5
spring.datasource.tomcat.min-idle=3

App.java
package com.sample.app;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import com.sample.app.entity.Employee;
import com.sample.app.repository.EmployeeRepository;

@SpringBootApplication
public class App {
  
  @Autowired
  private EmployeeRepository employeeRepo;
  
  public static void main(String args[]) {
    SpringApplication.run(App.class, args);
  }

  @Bean
  public CommandLineRunner demo() {
    return (args) -> {

      Employee emp1 = new Employee("Ram", "Gurram");
      Employee emp2 = new Employee("Sai", "Nidamanuri");
      Employee emp3 = new Employee("Siva", "Ponnam");
      Employee emp4 = new Employee("Lahari", "Gurram");
      Employee emp5 = new Employee("Gireesh", "Amara");
      Employee emp6 = new Employee("Sailaja", "Navakotla");
      Employee emp7 = new Employee("Rahim", "Khan");

      employeeRepo.save(emp1);
      employeeRepo.save(emp2);
      employeeRepo.save(emp3);
      employeeRepo.save(emp4);
      employeeRepo.save(emp5);
      employeeRepo.save(emp6);
      employeeRepo.save(emp7);

      List<Employee> emps = employeeRepo.emps(2, 3);

      System.out.println("-------------------------");
      System.out.println("Printing Employees");
      System.out.println("-------------------------");
      for (Employee emp : emps) {
        System.out.println(emp);
      }

    };
  }

}

Total project structure looks like below.
Run App.java, you will see below messages in console.
-------------------------
Printing Employees
-------------------------
Employee [id=3, firstName=Siva, lastName=Ponnam]
Employee [id=4, firstName=Lahari, lastName=Gurram]
Employee [id=5, firstName=Gireesh, lastName=Amara]

You can download complete working application from this link.


Previous                                                    Next                                                    Home

Sunday, 2 February 2020

Cassandra: LIMIT: Limit number of records returned from a query

You can limit number of records returned from a query using LIMIT keyword.

For example below statement selects only 2 records.
SELECT * FROM cassandratutorial.employee LIMIT 2

cqlsh> SELECT * FROM cassandratutorial.employee LIMIT 2;

 id | age | firstname | lastname
----+-----+-----------+----------
  1 |  30 |   Krishna |   Gurram
  2 |  31 |       Ram |   Gurram

(2 rows)

Previous                                                    Next                                                    Home