国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JDBC小例子

2019-11-10 22:11:29
字體:
供稿:網(wǎng)友
JDBC介紹JDBC(java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序。JDBC 可以做三件事:與數(shù)據(jù)庫建立連接、發(fā)送 操作數(shù)據(jù)庫的語句并處理結(jié)果。小例子環(huán)境要求jdk 1.8.0_112eclipse Neon.2 Release (4.6.2)MySQL mysql-connector-java-5.1.0-bin.jar目錄結(jié)構(gòu)代碼展示(重點看注釋)
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PReparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class TestJDBC {	public static void main(String[] args) {		// 數(shù)據(jù)庫連接		Connection connection = null;		// 預(yù)編譯的Statement(操作數(shù)據(jù)庫),		// PreparedStatement預(yù)編譯的,相同的sql語句,只編譯一次,存到緩存中,下次訪問如果sql語句相同,直接調(diào)用緩存,提高數(shù)據(jù)庫性能		PreparedStatement preparedStatement = null;		// 結(jié)果集對象		ResultSet resultSet = null;		try {			// 加載數(shù)據(jù)庫驅(qū)動			Class.forName("com.mysql.jdbc.Driver");			// 通過驅(qū)動管理類獲取數(shù)據(jù)庫鏈接			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root",null);			// 定義sql語句 ?表示占位符			String sql = "select * from user where username = ?";			// 獲取預(yù)處理statement			preparedStatement = connection.prepareStatement(sql);			// 設(shè)置參數(shù),第一個參數(shù)為sql語句中參數(shù)的序號(從1開始),第二個參數(shù)為設(shè)置的參數(shù)值			preparedStatement.setString(1, "王五");			// 向數(shù)據(jù)庫發(fā)出sql執(zhí)行查詢,查詢出結(jié)果集			resultSet = preparedStatement.executeQuery();			// 添加、修改、刪除執(zhí)行 preparedStatement.executeUpdate();			// 遍歷查詢結(jié)果集			while (resultSet.next()) {				System.out.println(resultSet.getString("id") + "  " + resultSet.getString("username"));			}		} catch (Exception e) {			e.printStackTrace();		} finally {			// 釋放資源(倒著釋放:結(jié)果集->預(yù)處理對象->數(shù)據(jù)庫連接)			if (resultSet != null) {				try {					resultSet.close();				} catch (SQLException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}			}			if (preparedStatement != null) {				try {					preparedStatement.close();				} catch (SQLException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}			}			if (connection != null) {				try {					connection.close();				} catch (SQLException e) {					// TODO Auto-generated catch block					e.printStackTrace();				}			}		}	}}步驟說明1.加載數(shù)據(jù)庫驅(qū)動2.創(chuàng)建并獲取數(shù)據(jù)庫鏈接3.創(chuàng)建jdbc statement對象4.設(shè)置sql語句5.設(shè)置sql語句中的參數(shù)(使用preparedStatement)6.通過statement執(zhí)行sql并獲取結(jié)果7.對sql執(zhí)行結(jié)果進行解析處理8.釋放資源(resultSet、preparedstatement、connection)問題分析1.數(shù)據(jù)庫鏈接創(chuàng)建、釋放頻繁造成系統(tǒng)資源浪費從而影響系統(tǒng)性能,如果使用數(shù)據(jù)庫鏈接池可解決此問題。2.硬編碼部分過多,不易維護,Sql語句、占位符、參數(shù)等等。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵阳市| 正阳县| 柏乡县| 德清县| 叶城县| 延长县| 六安市| 和平区| 兴化市| 兴山县| 太仆寺旗| 宣武区| 雷波县| 陆丰市| 额济纳旗| 安吉县| 西青区| 乐陵市| 天津市| 呼伦贝尔市| 琼中| 海淀区| 维西| 墨玉县| 绥德县| 田林县| 清原| 莒南县| 多伦县| 鹤壁市| 松阳县| 东乌珠穆沁旗| 新乡县| 张家界市| 泰顺县| 罗城| 衡东县| 鹰潭市| 株洲县| 柳江县| 金溪县|