28 Aralık 2017 Perşembe

Hibernate Query Arayüzü

Giriş
Bu sınıf Hibernate Session sınıfı tarafından yaratılır.

scroll metodu
Şöyle yaparız.
ScrollableResults results = query.scroll(ScrollMode.FORWARD_ONLY);
setFetchSize metodu
Şöyle yaparız.
query.setFetchSize(Integer.MIN_VALUE);
setParameter metodu
Örnek
Şöyle yaparız.
String email = ...;
Query query = ...;
query.setParameter("email", email);
Örnek
Şöyle yaparız.
String sql="select * from PunchHistory where punchDate = :date1"

List<PunchHistory> results = 
  session.createQuery(StackperksConstants.sql)
  .setParameter("date1", java.sql.Date.valueOf(date), TemporalType.TIMESTAM)
  .list();
setReadOnly metodu
Şöyle yaparız.
query.setReadOnly(true);




27 Aralık 2017 Çarşamba

Swing AbstractTableModel Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.table.AbstractTableModel;
constructor
Şöyle yaparız.
class DataModel extends AbstractTableModel{
  ArrayList<Object[]> data = new ArrayList<Object[]>();
  ArrayList<String> columnNames = new ArrayList<String>();

  public DataModel(ArrayList<String> cNames){
    super();
    columnNames = cNames;
    
  }
  ...
}
getColumnCount metodu
Şöyle yaparız.
public int getColumnCount()
{
  return columnNames.size();
};
getColumnName metodu
Şöyle yaparız.
public String getColumnName(int column)
{
  return columnNames.get(column);
}
getRowCount metodu
Şöyle yaparız.
public int getRowCount()
{
  return data.size();
};
getValueAt metodu
Şöyle yaparız.
public Object getValueAt(int rowIndex, int columnIndex){ 
  Object[] row = data.get(rowIndex);

  return row[columnIndex];
};
isCellEditable metodu
Şöyle yaparız.
public boolean isCellEditable(int rowIndex, int columnIndex)
{
  return true;
}
setValueAt metodu

Şöyle yaparızDüzenleme (Editing) işlemi bitince bu metod tetiklenir.
public void setValueAt(Object newValue, int rowIndex, int columnIndex){
  data.get(rowIndex)[columnIndex] = newValue;
  fireTableDataChanged();
}
Kendi metodumuz
Şöyle yaparız.
public void addRows (ArrayList<Object[]> rows) {
  for (int i = 0; i < rows.size(); i++) {
    Object[] clone = rows.get(i).clone();
    data.add(clone);
  }
  fireTableDataChanged();
}

26 Aralık 2017 Salı

OracleDataSource Sınıfı

Giriş
DataSource arayüzünü gerçekleştirir.

constructor
Şöyle yaparız.
OracleDataSource dataSource = new OracleDataSource();
getConnection metodu
Şöyle yaparız.
Connection connection = dataSource.getConnection();
setFastConnectionFailoverEnabled metodu
Şöyle yaparız.
dataSource.setFastConnectionFailoverEnabled(true);
setImplicitCachingEnabled metodu
Şöyle yaparız.
dataSource.setImplicitCachingEnabled(true);
setPassword metodu
Şöyle yaparız.
String password =...;
dataSource.setPassword(password);
setUrl metodu
Şöyle yaparız.
String url = "jdbc:oracle:thin:scott/tiger@//myhost:1521/orcl");
dataSource.setURL(url);
setUser metodu
Şöyle yaparız.
String username = ...;
dataSource.setUser(username);

25 Aralık 2017 Pazartesi

String Sınıfı

Giriş
1. bellek
String sınıfı kendi içinde hash alanını da saklar. Toplam 20 byte gerekir. Bu sayı 8'ın katı olan 24'e yuvarlanır. Yani bir string en az 24 byte yer ile başlar. Şöyledir.
String:
  Object header:         12 bytes
  Reference to char[]: +  4 bytes
  Integer value:       +  4 bytes
  Data size:           = 20 bytes
Total aligned size:    24 bytes
2. Java 9 ile içerideli char [] dizisi byte [] ile değiştirildi.

3. literal
String Literal derleyici tarafından String tipine çevrilir.

constructor - byte [] + encoding
Açıklaması şöyle. byte dizisi belirtilen encoding'e uygun olmalıdır.
The behavior of this constructor when the given bytes are not valid in the given charset is unspecified. The CharsetDecoder class should be used when more control over the decoding process is required.
Şöyle yaparız.
byte[] bytes = { ..., ... };
new String (bytes, "UTF-8");
constructor - byte [] + Charset
Açıklaması şöyle.
This method always replaces malformed-input and unmappable-character sequences with this charset's default replacement string. The CharsetDecoder class should be used when more control over the decoding process is required.
charAt metodu
Açıklaması şöyle
The java string charAt() method returns a char value at the given index number. The index number starts from 0.
Şöyle yaparız.Çıktı olarak "k" verir.
String name="StackExchange";  
char ch=name.charAt (4);//returns the char value at the 4th index  
System.out.println (ch);  
char int ile karşılaştırılabilir. Şöyle yaparız.
char ch = str.charAt(4);if( ch > 127 ){
  ...
}
chars metodu
IntStream döner.
String str = ...;
IntStream  stream = str.chars();
Şöyle yaparız.
String str = "300‌";
str.chars().forEach (System.out::println);
Çıktı olarak şunu alırız.
51
48
48
codePoints metodu
Şöyle yaparız.
String str = ...;
IntStream  stream = str.codePoints();
contains metodu
Şöyle yaparız. contains() metodu indexOf () metoduna çok benzer. İkisi de belirtilen string'in kendi içimde olup olmadığını döner. Tek fark olarak contains() boolean dönerken indexOf () başlangıç konumunu belirtir.
String str1 = "...";
String str2 = "...";

if(str1.contains(str2)) {...}
format metodu
İmzası şöyle
public static String format(String format, Object... args)
Decimal
Şöyle yaparız
String.format("X%011d", 4366)
Çıktı olarak şunu alırız
X00000004366
double
Şöyle yaparız.
String.format("%.2f", 62.1232131342);
String
Şöyle yaparız.
int a = ...;
int b = ...;
int c = ...;
return String.format("%s-%s-%s", a, b, c);
equals metodu
Şöyle yaparız.
String str = "...";
if(str.equals("...")){...}
equalsIgnoreCase metodu
Açıklaması şöyle
Two characters c1 and c2 are considered the same ignoring case if at least one of the following is true:
• Applying the method java.lang.Character.toUpperCase(char) to each character produces the same result
Sistem locale'ini kullanır. Aslında şu kod ile aynıdır.
String string1 = ...;
String string2 = ...;

if (string1.toUpperCase().equals(string2.toUpperCase()))
  System.out.println("equals says they are equal");
}
Eğer farklı bir locale kullanarak karşılaştırma yapmak istersek şöyle yaparız.
if (string1.toUpperCase(Locale.GERMAN).equals(string2.toUpperCase(Locale.GERMAN)))
Örnek
Şöyle yaparız.
String str = "...";
if(str.equalsIgnoreCase("...")) {...}
getBytes metodu
İmzası şöyle
byte[] getBytes(Charset charset);
hashCode metodu
Şöyle yaparız.
String str = ...;
int code = str.hashCode();
indexOf metodu
Şöyle yaparız. contains() metodu indexOf () metoduna çok benzer. İkisi de belirtilen string'in kendi içimde olup olmadığını döner. Tek fark olarak contains() boolean dönerken indexOf () başlangıç konumunu belirtir.
String largeValue  = "2323254534534642342354346876985374";
String searchValue = "32545345346423423543468769";
if(largeValue.contains(searchValue)){
  System.out.println("The index is : "+largeValue.indexOf(searchValue));
}
intern metodu
Açıklaması şöyle
When called, what it does is either:
* add the String to the internal pool if it didn't exist already;
* return the equivalent String from the pool if it already existed.
Kurallar şöyle
1.When a String object is created using a String literal, JVM checks if the String literal is already present in the pool. If the object exists in the pool, the same object is returned instead of a new object.
2.When a String object is created using a new operator, a new object is created even if the string exists in the string pool.
3.When you call the intern method on a String object, a new String object is created and put on the pool if it doesn't exist. The intern method returns the object from the pool.
Şöyle yaparız.
String s1 = "...";
String s2 = s1.intern();
join metodu
İlk parametre ayraçtır. Stirngleri birleştirir. Şöyle yaparız.
String.join(delimeter, foo,bar, baz, foo1, bar1);
length metodu
Şöyle yaparız.
System.out.println("".length());
matches metodu
Elimizde şöyle bir string olsun
String str = "\n  London";
Şöyle yaparız
System.out.println(str.matches("(?s).*London.*"));
(?s) şununla aynıdır
Pattern pattern = Pattern.compile(".*London.*", Pattern.DOTALL);
replace metodu
İmzası şöyle. Düzenli ifade kullanmaz. Sıradan bir string'i bir başka string ile değiştirir.
CharSequence replace(CharSequence target, CharSequence replacement);
replaceAll metodu
Düzenli ifade kullanılır.

split metodu
Şöyle yaparız.
String str = "Jan 12 1992";
String[] tokens = str.split("\\s+"); // <-- split on one or more spaces
substring metodu - beginIndex
Üçüncü karakterden sona kadar olan kısmı almak için şöyle yaparız
String str = ...;
String str = str.substring (2);
substring - beginIndex, endIndex
10'ar 10'ar bölmek için şöyle yaparız.
String txtStr = ...;
int subStringSize = 10;

for (int start = 0; start < txtStr.length(); start += subStringSize) {
  txtStr.substring(start,
                   Math.min(txtStr.length(), start + subStringSize));
}
toCharArray metodu
Şöyle yaparız.
String str = ...;
char[] chars = str.toCharArray();
toLowerCase metodu
Şöyle yaparız.
String str = "...";
str = str.toLowerCase;