1. 程式人生 > >PreparedStatement物件設定引數的下標設定

PreparedStatement物件設定引數的下標設定

一、原生JDBC的有關問題

  1. 注意:pstmt.setString(1, currentUser.getUserName());中下標是從1開始的。
try {
			PreparedStatement pstmt = con.prepareStatement(sql);
			//注意這裡的下標是從1開始的
			pstmt.setString(1, currentUser.getUserName());
			pstmt.setString(2, currentUser.getPassword());
			ResultSet rs = pstmt.executeQuery();
			while(rs.next()) {
				userName = rs.getString("user_name");
				password = rs.getString("password");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
  1. 原生java連線資料庫的程式碼示例(JDBC)
package com.kjgym.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbUtil {
	
	private static final String DB_URL = "jdbc:mysql://localhost:3306/db_01_jsplearn";
	private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	private static final String USER_NAME = "root";
	private static final String PASSWORD = "246626";
	
	/**
	 *	獲取資料庫連線  
	 * @author: kangjia  
	 * @date: 2018年10月27日下午1:46:52
	 * @return:
	 * @return
	 */
	public static Connection getCon() {
		Connection con = null;
		try {
			// 註冊JDBC驅動
			Class.forName(JDBC_DRIVER);  
			// 開啟連線
			con = DriverManager.getConnection(DB_URL, USER_NAME, PASSWORD);
		} catch (SQLException e) {  // 處理JDBC錯誤
			e.printStackTrace();
		} catch (Exception e) {  // 處理Class.forName的類找不到錯誤
			e.printStackTrace();
		}
		return con;
	}
	
	/**
	 *	關閉資料庫連線  
	 * @author: kangjia  
	 * @date: 2018年10月27日下午1:47:06
	 * @return:
	 * @param con
	 */
	public static void closeCon(Connection con) {
		if(con != null) {
			try {
				con.close();
			} catch (SQLException e) {
				System.out.println("資料庫關閉失敗");
			}			
		}
	}
}