MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JDBC SQLエスケープ構文の説明とは何ですか?


エスケープ構文を使用すると、標準のJDBCメソッドとプロパティを使用して使用できないデータベース固有の機能を柔軟に使用できます。

一般的なSQLエスケープ構文の形式は次のとおりです。

{keyword 'parameters'}

JDBCのさまざまなエスケープ構文は次のとおりです。

d、t、tsキーワード: これらは、日付、時刻、およびタイムスタンプのリテラルを識別するのに役立ちます。ご存知のように、2つのDBMSが同じ方法で時刻と日付を表すことはありません。このエスケープ構文は、ターゲットデータベースの形式で日付または時刻をレンダリングするようにドライバーに指示します

{d 'yyyy-mm-dd'}

ここで、yyyy =年、mm=月; dd=日付。この構文の使用{d'2009-09-03'}は2009年3月9日です。

//Create a Statement object
stmt = conn.createStatement();
//Insert data ==> ID, First Name, Last Name, DOB
String sql="INSERT INTO STUDENTS VALUES" + "(100,'Zara','Ali', {d '2001-12-16'})";
stmt.executeUpdate(sql);

エスケープキーワード

このキーワードは、LIKE句で使用されるエスケープ文字を識別します。 0個以上の文字に一致するSQLワイルドカード%を使用する場合に便利です。例-

String sql = "SELECT symbol FROM MathSymbols WHERE symbol LIKE '\%' {escape '\'}";
stmt.execute(sql);

バックスラッシュ文字(\)をエスケープ文字として使用する場合、バックスラッシュもJavaエスケープ文字であるため、Java文字列リテラルで2つのバックスラッシュ文字を使用する必要があります。

fnキーワード

このキーワードは、DBMSで使用されるスカラー関数を表します。たとえば、SQL関数 length を使用できます 文字列の長さを取得するには-

{fn length('Hello World')}

これは、文字列「HelloWorld」の長さである11を返します。キーワードを呼び出す

このキーワードは、ストアード・プロシージャーを呼び出すために使用されます。たとえば、INパラメータを必要とするストアドプロシージャの場合、次の構文を使用します-

{call my_procedure(?)};

INパラメータを必要とし、OUTパラメータを返すストアドプロシージャの場合、次の構文を使用します-

{? = call my_procedure(?)};

ojキーワード

このキーワードは、外部結合を示すために使用されます。構文は次のとおりです-

{oj outer-join}

ここで、outer-join =table {LEFT | RIGHT | FULL} OUTERJOIN {table | search-conditionのouter-join}。

String sql = "SELECT Employees FROM {oj ThisTable RIGHT OUTER JOIN ThatTable on id = '100'}";
stmt.execute(sql);

  1. MySQL JDBCドライバー接続文字列とは何ですか?

    MySQLJDBC接続文字列は次のようになります- Class.forName(com.mysql.jdbc.Driver); 上記では、ドライバーはインターフェースです。 JDBCがアプリケーションサーバーの外部で実行されている場合は常に、クラスDriverManagerが接続を確立します。 DriverManagerクラスは次のとおりです- conn = (Connection) DriverManager.getConnection(jdbc:mysql://localhost/yourdatabaseName,”yourRootName,yourPassword); ここ

  2. JDBCを使用してMySQLでバックスラッシュをエスケープする方法は?

    バックスラッシュをエスケープするには、レコードを挿入するときにPreparedStatementを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1904    (    ClientId int,    ClientName varchar(20),    ClientAge int    ); Query OK, 0 rows affected (0.00 sec) Javaコードは次のとおりです- import java.sql