SqlBuilder

SQLBuilder adalah perpustakaan yang mencoba menghilangkan rasa sakit dari menghasilkan kueri SQL dalam program Java.
Unduh sekarang

SqlBuilder Peringkat & Ringkasan

Iklan

  • Rating:
  • Lisensi:
  • GPL
  • Harga:
  • FREE
  • Nama Penerbit:
  • Health Market Science
  • Situs web penerbit:

SqlBuilder Tag


SqlBuilder Keterangan

SqlBuilder adalah library yang upaya untuk mengambil rasa sakit dari menghasilkan query SQL dalam program Java. Menggunakan satu bahasa pemrograman (Java) untuk menghasilkan kode untuk bahasa lain (mis SQL) adalah selalu sebuah tantangan. Selalu ada masalah dengan melarikan diri karakter dalam string literal, mendapatkan ruang di tempat yang tepat, dan mendapatkan tanda kurung untuk menyesuaikan. Dan sering, bahkan setelah kode debug dan sepenuhnya diuji, masih sangat rapuh. Perubahan sekecil apapun akan membuang hal-hal keluar dari keseimbangan dan memerlukan putaran lain dari pengujian dan tweaking.SqlBuilder perubahan yang seluruh skenario dengan membungkus sintaks SQL dalam sangat ringan dan mudah untuk menggunakan benda-benda Java yang mengikuti "pembangun" paradigma (mirip dengan StringBuilder). Hal ini akan mengubah banyak sintaksis SQL umum, kesalahan runtime ke Jawa kesalahan saat kompilasi! Mari menyelam tepat di untuk beberapa contoh cepat untuk melihat bagaimana semuanya works.SelectQuery ExampleA cukup sederhana SQL query pilih tertanam dalam program Java mungkin saat ini terlihat seperti ini: // asumsi berbagai telah ditetapkan tali constantsString selectQuery = "SELECT" + T1_COL1 + "" + T1_COL2 + "" + T2_COL1 + "DARI" + TABLE1 + "" + T1 + "INNER JOIN" + TABLE2 + "" + T2 + "ON (" + T1_IDCOL + "=" + T2_IDCOL + ") ORDER BY" + T1_COL1; Setiap kali query ini dimodifikasi, Anda akan perlu memastikan ada koma yang cukup, tanda kurung, dan ruang untuk menghasilkan query yang benar (belum lagi kolom yang benar untuk tabel yang diberikan dan alias benar untuk meja tersebut) .an berusaha perbaikan mungkin terlihat seperti ini: String selectQuery = MessageFormat.format ( "SELECT {0}, {1}, {2} DARI {3} {4} INNER JOIN {5} {6} ON ( {7} = {8}) "+ "ORDER BY {9}", T1_COL1, T2_COL2, T2_COL1, TABEL1, T1, TABLE2, T2, T1_IDCOL, T2_IDCOL, T1_COL1); teknik ini setidaknya menghilangkan beberapa f ormatting masalah, karena sintaks query dalam satu string yang berdekatan. Namun, mencocokkan penampung dengan argumen bukanlah tugas dan sederhana penyusunan ulang sederhana dapat dengan mudah mengacaukan query string yang dihasilkan. Selain itu, ini masih bukan merupakan solusi untuk setiap jenis query dinamis generation.Now, mari kita lihat bagaimana query ini terlihat menggunakan kelas SqlBuilder: // asumsi benda-benda ini sudah pernah createdTable table1, table2; Kolom t1Col1, t1Col2, t2Col1; Bergabung joinOfT1AndT2; String selectQuery = (SelectQuery baru ()) .addColumns (t1Col1, t1Col2, t2Col1) .addJoin (SelectQuery.JoinType.INNER_JOIN, joinOfT1AndT2) .addOrderings (t1Col1) .validate () toString ();. Lihat betapa mudahnya itu ? Tidak satu tertanam koma, ruang, atau kurung untuk dilihat! Perhatikan berapa banyak lagi bisa dibaca versi ini dibandingkan dengan versi sebelumnya? Sedangkan Java adalah sedikit lebih verbose, mengubah SQL ke Java memungkinkan Anda untuk memanfaatkan toolset Java yang ada saat menulis SQL (berpikir saat kompilasi sintaks memeriksa dan kode IDE selesai). fungsionalitas tambahan ini adalah layak trade-off.On atas itu, memeriksa validate () metode panggilan menyelinap ke akhir pernyataan tersebut. panggilan yang akan memverifikasi bahwa kolom dan tabel dalam query sebenarnya masuk akal. Rawatan, mudah dibaca, dan pemastian semua dibungkus ke dalam satu mudah untuk paket digunakan. Berikut adalah beberapa fitur kunci dari "SqlBuilder": sebagian yang baik dari SQL yang umum digunakan (lihat ringkasan paket untuk daftar yang lebih lengkap), termasuk: · SELECT, UPDATE, DELETE, INSERT, MENCIPTAKAN, DROP, UNION · Kebanyakan logika boolean · Kebanyakan ekspresi numerik · 99% dari basis kode SqlBuilder adalah ANSI SQL92 compliant · JDBC dukungan sintaks escape (JdbcEscape) · Pembantu untuk mengelola parameter siap pernyataan (QueryPreparer) dan hasil membaca (QueryReader) · Opsional permintaan validasi Dua mode penggunaan: · Predefined, model database sangat diverifikasi (opsional menggunakan implementasi dasar termasuk) · Sepenuhnya disesuaikan, konstanta diverifikasi lemah menggunakan CustomSql Apa yang baru dalam rilis ini: · The hasParens () metode ditambahkan ke NestableClause sehingga InCondition akurat dapat menentukan apakah nilai-nilai perlu dibungkus dalam kurung atau tidak.


SqlBuilder Perangkat Lunak Terkait