JDBC:Javaデータベース接続は、リレーショナルデータベースのDBMSのさまざまなにアクセスするための一貫した方法を提供します。
- APIのJDBC:アクセス・インタフェースの多様性を提供
①JDBCAPI関数:
私は。データベースへの接続を確立します
II。SQL文を送信
III。処理結果が返されます
- DriverManagerの:管理のJDBCドライバ
- 接続:接続
- ステートメント(PreparedStatementの):CRUD
- CallableStatementの:データベースのストアドプロシージャを呼び出す/機能ストレージ
- ResultSetの:リターン結果セット
注意:(①PreparedStatementステートメントは、サブクラスで、一般的に、より強力な親よりもサブクラスのすべての親クラスを継承するだけでなく、自分自身の方法ではないという理由だけで)。
とは?ときにプレースホルダへ。その後のPreparedStatementのsetXXX()メソッドを割り当てます。
②PreparedStatement&声明比較
STMT:SQLインジェクションの危険性があります
例えば入力:ユーザー名:任意の値" または= 1 1 - 。
パスワード:任意の値
pstmt:SQLインジェクションを防ぎます
データベースの手順にアクセス2.JDBC:
public static void main(String[] args) {
//连接对象
Connection conn = null;
//查询对象
PreparedStatement pstmt = null;
//结果集对象
ResultSet rs = null;
try {
//加载数据库驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//SqlServer的连接字符串
String url ="jdbc:sqlserver://127.0.0.1:1433;DatabaseName =WJYLTeachingWebsite";
//与数据库建立连接
conn = DriverManager.getConnection(url, "sa","ROOT");
String sql = "select * from t_stu where stuSex = ?";
//获取statement
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "女");
//查询 输入
rs = pstmt.executeQuery();
while(rs.next()) {
System.out.println(rs.getString("stuNum")+"--"+ rs.getString("stuRealname")+"--"+rs.getString("stuSex"));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//打开顺序与关闭顺序相反。先打开的最后关闭
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt!=null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
最初の行0のResultSetデフォルトポイント
そうRS、まず、第1行の最初のポインタ、すなわちrs.next()を使用します
次の()アクション:ダウンポインタ(カーソル)が2ダウン決意後に空です。null以外のリターントゥーレ空のリターンはfalse
通常、ResultSet.next()結果セットを通過すると。
ResultSet.getXXX()でデータを取得します。