27 Şubat 2016 Cumartesi

MimeBodyPart

MimeMultiPart Sınıfı
Bu sınıfı kullanmak için şu satır dahil edilir.
import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
Bu sınıf hem HTML hem de Text içeren e-postalar göndermek için kullanılır. Alıcı taraf eğer HTML gösterebiliyorsa onu gösterir. Gösteremiyorsa text mesajı gösterir.

Constructor
Şöyle yaparız.
Multipart mp = new MimeMultipart();
addBodyPart metodu
Şöyle yaparız.
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
...
mp.addBodyPart(mbp);

MimeBodyPart Sınıfı
Bu sınıfı kullanmak için şu satır dahil edilir.
import javax.mail.BodyPart;
import javax.mail.internet.MimeBodyPart;
Bu sınıf e-postaya eklenti yapmak için kullanılır. Yani e-posta artık part part olarak düşünülür. Normalde eklentiler e-mail içinde gösterilmez. Eğer e-mail içinde gösterilsin istiyorsak şöyle yaparız.

messageBodyPart.setDisposition(Part.INLINE);

Constructor
Şöyle yaparız.
BodyPart messageBodyPart = new MimeBodyPart();
Dosya Eklentisi
Örnek
messageBodyPart = new MimeBodyPart();
String filename = "/home/file.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
setText metodu
Şöyle yaparız. "text/plain" part yaratır.
String subject = ...
BodyPart messageBodyPart = new MimeBodyPart(); 
messageBodyPart.setText(subject); 
Bu kod sanırım şu kodla aynıdır.
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent("MyContent", "text/plain"); 
messageBodyPart.setDisposition(Part.INLINE);

24 Şubat 2016 Çarşamba

Path sınıfı

Giriş
Bu sınıfı kullanmak için şu satırı dahil ederiz.
import java.nio.file.Path;
Path ve File birbirlerine dönüştürülebilirler.

Her işletim sınıfının yol için belirlediği bir üst sınır vardır. Linux'ta üst sınır şöyle öğrenilebilir.
# getconf PATH_MAX /
4096

# getconf NAME_MAX /
255
currentPath metodu
İki şekilde alınabilir. İlki System sınıfını kullanmak
Path currentPath = Paths.get(System.getProperty("user.dir"));
İkincisi ise boş string vermek.
Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath();
getFileName metodu
Path'in sadece dosya ismi olan kısmını döndürür. Şöyle yaparız.
Path p = Paths.get("C:\\Hello\\AnotherFolder\\The File Name.PDF");
String file = p.getFileName().toString();//The File Name.PDF verir
getFileSystem metodu
Şöyle yaparız.
Path path = ...;
// We obtain the file system of the Path
FileSystem fs = path.getFileSystem();

// We create the new WatchService using the new try() block
WatchService service = fs.newWatchService();
getNameCount metodu
İkiden sonraki tüm kısımları şöyle alırız.
Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
Path finalPath = incomingPath.subpath(2, incomingPath.getNameCount()));
resolve metodu
İki path nesnesini birleştirir.
Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
//getting C:\cresttest\, adding NEW_PATH to it
Path subPathWithAddition = incomingPath.subpath(0, 2).resolve("NEW_PATH");
toAbsolutePath metodu
Belirtilen relative path'i absolute path haline getirir.
Path currentRelativePath = Paths.get("");
Path currentDir = currentRelativePath.toAbsolutePath();
subPath metodu
İlk iki kısmını şöyle alırız.
Path incomingPath = Paths.get("C:\\cresttest\\parent_3\\child_3_1_.txt");
//getting C:\cresttest\
Path subPathWithAddition = incomingPath.subpath(0, 2);
toString metodu
Şöyle yaparız.
Path sourceFile = ...;
if (sourceFile.toString().toLowerCase().endsWith("jpg")) {...}


22 Şubat 2016 Pazartesi

ResultSetMetaData Sınıfı

getColumnCount metodu
Select cümlesinden sonra kaç sütun olduğunu bulmak için kullanılabilir.
ResultSet resultSet = statement.executeQuery("Select * from TABLE_NAME");
ResultSetMetaData metaData = resultSet.getMetaData();
int colCount = metaData.getColumnCount();
getColumnName metodu
Şöyle yaparız.
ResultSetMetaData metaData = rs.getMetaData();
int columns = metaData.getColumnCount();
for (int i = 1; i <= columns; i++) {
  metaData.getColumnName(i);
}
getColumnType metodu
Şöyle yaparız.
int type = metaData.getColumnType(1);
if (type == Types.TIMESTAMP) {
  ...
} else if (type == Types.VARCHAR || type == Types.CHAR) {
  ...
}
getColumnTypeName metodu
Veritabanına mahsus sütun tipini string olarak alırız. Şöyle yaparız.
String typeName = metaData().getColumnTypeName(1);

21 Şubat 2016 Pazar

Selector Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.nio.channels.Selector;
open metodu
Şöyle yaparız.
Selector selector = Selector.open();
select metodu
Genelde bir döngü için şöyle kullanılır.Şöyle yaparız.
while (true) {
  selector.select();

  Set<SelectionKey> keys = selector.selectedKeys();
  for (SelectionKey key : keys) {

    SelectableChannel channel = key.channel();

    if (key.isAcceptable())    {...}
    else if (key.isWritable()) {...}
    else if (key.isReadable()) {...}
    }   
}

12 Şubat 2016 Cuma

XSSFFont Sınıfı

constructor
Şöyle yaparız.
XSSFFont font = workbook.createFont();
font.setBold(true);
CellStyle nesnesine atama
Şöyle yaparız.
XSSFCellStyle style = ...;
XSSFFont font = ...;
...
style.setFont(font);

XSSFCellStyle Sınıfı

constructor
Şöyle yaparız.
XSSFCellStyle headStyle = workbook.createCellStyle();
Hücreye Atama
Şöyle yaparız.
XSSFCell cell = ...;
cell.setCellStyle(style);
setFillForegroundColor metodu
Hücrenin rengini verir. Şöyle yaparız.
style.setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255)));
setFillPattern metodu
Şöyle yaparız.
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
setFont metodu
Şöyle yaparız.
XSSFFont font = workbook.createFont();
font.setBold(true);
style.setFont(font);

Workbook Sınıfı

Giriş
Bu sınıf tamamen arayüzlere yönelik çalışıyor. XSSFWorkbook sınıfına da bakılabilir.
constructor
Şöyle yaparız.
InputStream is = new FileInputStream("test.xlsx");
Workbook wb = WorkbookFactory.create(is);
getSheetAt metodu
Şöyle yaparız.
Sheet sheet = wb.getSheetAt(0);

11 Şubat 2016 Perşembe

XSSFSheet Sınıfı

Giriş
Bu sınıfı kullanmak için şu satırı dahil ederiz.
import org.apache.poi.xssf.usermodel.XSSFSheet;
createRow metodu
Yeni bir satır yaratır. Şöyle yaparız.
XSSFRow row = sheet.createRow (0);
getPhysicalNumberOfRows metodu
Kaç tane satır olduğunu döndürür.
XSSFWorkbook wb = new XSSFWorkbook(e.getUpload().getInputStream());
XSSFSheet sheet = wb.getSheetAt(0);
int rowCount = sheet.getPhysicalNumberOfRows();
iterator metodu
Şöyle yaparız.
Iterator<Row> rowIterator = sheet.iterator();
Dolaşmak için şöyle yaparız.
while (rowIterator.hasNext()){
  Row row = rowIterator.next();
  
  Iterator<Cell> cellIterator = row.cellIterator();

  while (cellIterator.hasNext()){
    Cell cell =  cellIterator.next();
    ...
  }
}