1. 程式人生 > >JDBC----Dao模式

JDBC----Dao模式

Dao模式:

1. 新建一個dao的介面, 裡面宣告資料庫訪問規則.

2. 新建一個dao的實現類,具體實現早前定義的規則.

3. 直接使用實現.

程式碼如下: 

UserDao:

package com.test.dao;


/**
 * 定義操作資料庫的方法
 * <p>Title: UserDao</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
public interface UserDao {
	
	//查詢
	void findAll();

}


UserDaoImpl:

package com.test.dao.impl;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import com.test.dao.UserDao;
import com.test.util.JDBCUtil;

public class UserDaoImpl implements UserDao {



	/**
	 * 查詢
	 * <p>Title: findAll</p>
	 * <p>Description: </p>
	 * @see com.test.dao.UserDao#findAll()
	 */
	
	Connection connection = null;
	Statement statement = null;
	ResultSet resultSet = null;
	@Override
	public void findAll() {
		try {
			connection = JDBCUtil.getConn();
			statement = connection.createStatement();
			String sql ="select * from user";
			resultSet = statement.executeQuery(sql);
			while(resultSet.next()){
				String username = resultSet.getString("username");
				String password = resultSet.getString("password");
				
				System.out.println("username="+username+",password="+password);
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			JDBCUtil.close(connection, resultSet, statement);
		}

	}

}


JunitTest:

package com.test.example;

import org.junit.Test;

import com.test.dao.UserDao;
import com.test.dao.impl.UserDaoImpl;

public class JunitTest {
	
	//查詢
	@Test
	public void testFindAll(){
		UserDao dao = new UserDaoImpl();
		dao.findAll();
	}

}


JDBCUtil:

package com.test.util;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtil {
	
	static String driverClass = null;
	static String url = null;
	static String name = null;
	static String password = null;
	
	//讀取jdbc.properties
	static{
		try {
			//1.建立一個屬性配置物件
			Properties properties = new Properties();
			
			//1.對應檔案位於工程根目錄  
			//InputStream is = new FileInputStream("jdbc.properties");
			
			//2.使用類載入器,讀取drc下的資原始檔  對應檔案位於src目錄底下  建議使用
			InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
			//2.匯入輸入流,抓取異常
			properties.load(is);
			//3.讀取屬性
			driverClass = properties.getProperty("driverClass");
			url = properties.getProperty("url");
			name = properties.getProperty("name");
			password = properties.getProperty("password");
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 註冊驅動 建立引數
	 * <p>Title: close</p>
	 * <p>Description: </p>
	 * @param connection
	 * @param resultSet
	 * @param statement
	 */
	
	public static Connection getConn(){
			
		Connection connection = null;
		//2. 建立連線 引數一: 協議 + 訪問的資料庫 , 引數二: 使用者名稱 , 引數三: 密碼。
		 try {
			 //Class.forName(driverClass);可寫可不寫
			 //Class.forName(driverClass);
			connection = DriverManager.getConnection(url, name, password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		return connection;
		
	}
	
	/**
	 * 釋放資源
	 * <p>Title: close</p>
	 * <p>Description: </p>
	 * @param connection
	 * @param resultSet
	 * @param statement
	 */
	public static void close(Connection connection,ResultSet resultSet,Statement statement){
		closeRS(resultSet);
		closeSt(statement);
		closeConn(connection);
		
	}
	public static void close(Connection connection,Statement statement){
		closeSt(statement);
		closeConn(connection);
		
	}
	
	private static void closeRS(ResultSet resultSet){
		try {
			if(resultSet !=null){
				resultSet.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			resultSet = null;
		}
	}
	
	private static void closeSt(Statement statement){
		try {
			if(statement !=null){
				statement.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			statement = null;
		}
	}
	
	private static void closeConn(Connection connection){
		try {
			if(connection !=null){
				connection.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			connection = null;
		}
	}
	


}


jdbc.properties:

driverClass=com.mysql.jdbc.Driver
url = jdbc:mysql://localhost/jdbc
name = root
password = root

資料庫:

執行結果:
 

相關推薦

JDBC------Dao模式(二)

jdbc.properties: driverClass=com.mysql.jdbc.Driver url = jdbc:mysql://localhost/jdbc name = root password = root JDBCUtil:   package com

JDBC----Dao模式(一)

Dao模式: 1. 新建一個dao的介面, 裡面宣告資料庫訪問規則. 2. 新建一個dao的實現類,具體實現早前定義的規則. 3. 直接使用實現. 程式碼如下:  UserDao: package com.test.dao; /** * 定義操作資料庫的

JDBC----Dao模式

Dao模式: 1. 新建一個dao的介面, 裡面宣告資料庫訪問規則. 2. 新建一個dao的實現類,具體實現早前定義的規則. 3. 直接使用實現. 程式碼如下:  UserDao: package com.test.dao; /** * 定義操作資料庫的

Java Dao模式通過JDBC連接數據庫的操作

gte geos lfa dao模式 inb aov jdbc連接 you 5% %5B%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91%5D%20%E5%9F%BA%E4%BA%8EAnsible%E7%9A%84%E4%BA%A7%E5%93%8

JDBC 入門介紹以及 DAO 模式簡單介紹

JDBC(Java Database Connectivity) 使用步驟 下載 JDBC 相應資料庫的 jar 包加入專案下的 lib 資料夾中 此處使用 mysql,對應 mysql 的 jar 包下載地址: mysql-connector-java-8.0.13.jar

DAO模式+JDBC

                     實現DAO模式的步驟 建立實體類包Entity 建立DAO包(DAO包中包括實際需要的介面和對應的實現類)

javaweb:JDBC連線MYSQL資料庫詳解,使用JDBC對資料庫進行CRUD操作以及DAO模式的介紹

  JDBC簡介: JDBC全稱為:Java DataBase Connectivity(java資料庫連線)。 SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。 組成JDBC的2個包: 連結:https://pan

JDBC結合DAO模式的簡單實現

文章目錄 JDBC結合DAO模式的簡單實現 1. 配置檔案 2. 與MySQL伺服器連線的封裝 3. 宣告interface 4. 實現implements 5. 測試Test

java資料庫 JDBCDao模式(適合初學者)

java 連線資料庫首先要匯入一個jar包 我們來了解一下什麼是jdbc 其實JDBC(Java DataBase Connectivity,java資料庫連線)是一種用於執行SQL語句的Java AP 讀下面程式碼需要大概瞭解Statement常用的方法: Resu

Java 15---JDBC批處理,事務,併發,DAO模式

導讀 1.JDBC批處理 2.JDBC事務處理 3.事務併發問題 4.JDBCTemplate 5.DAO模式 JDBC批處理 新增10000個使用者到使用者表 批處理:一次傳送多個數據給伺服器,伺服器一個一個執行,提高效率 addBatch():把語句,引數新增到Pre

簡單學習 JDBCDAO模式

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.or

JDBC學習總結2(dao模式)更新中

011.dao模式 1.dao模式;   data access object;  一個典型的dao模式應該包括的部分有;     vo:值物件;value object     dao介面:封裝的是所有資

java jdbc連線Mysql資料庫Dao模式下的帶配置檔案的(properies)

 為什麼要使用properies配置檔案呢?因為當我們吧專案部署到伺服器後,如果想到修改資料庫的連線時,比較麻煩,因為伺服器上佈置的是類檔案,也就是編譯好的檔案,當我們要是修改連線時,一旦,修改就的開啟類檔案但是,資料庫是沒有開發軟體的,所以此時就需要用properies配置檔案,properies記事本就

JDBC---DAO經典模式 實現對資料庫的增、刪、改、查

JDBC(Java Data Base Connection)的作用是連線資料庫 先看下jdbc連線SQLServer資料庫的簡單例子 程式碼實現(FirstJDBC): package com.jdbc; import java.sql.Connection; im

面向對象DAO模式

實體 div 邏輯 and 實體類 nbsp class row 新建 DAO模式編寫數據訪問層代碼步驟? 1、 接口 增、刪、改、查的方法 方法的返回類型為泛型集合 Int rows=select語句的條數 If(rows&

DAO模式編寫數據訪問層代碼步驟?

rda select語句 bsp dstat 連接 泛型集合 sql語句 nbsp 新建項目 1、 接口 增、刪、改、查的方法 方法的返回類型為泛型集合 Int rows=select語句的條數 If(rows>0) 方

DAO模式

ron 對數 oot get 字節 put 方法的參數 rpo 字符串 JDBC封裝 優點: 隔離細節 降低代碼間耦合性 提高代碼可擴展性和維護性 附註: DAO模式提供了訪問關系型數據系統所需操作的接口,將數據訪問和業務邏輯分開,對

Java中Dao模式Dao的數據庫操作(BaseDao的寫法)

nec roo sql rac 127.0.0.1 關閉 ron [] cnblogs Dao模式是Java面向設計時的一種模式。而Dao中的BaseDao無非是對數據進行CURD(增刪改查),下面是最常用的連接,增刪改查的方法。 1 package dao;

JDBCDAO

connect con cut aps ont es2017 更新 底層 面向接口 一、JDBC 什麽是JDBC?JAVA DataBase Connectivity (Java 數據庫連接技術)由Java編寫的一組類和接口組成,為各種類型的數據庫提供統一的訪問

mysql jdbc url模式 正則表示式

https://blog.csdn.net/youcijibi/article/details/77965487?locationNum=7&fps=1 jdbc:mysql://[host][,failoverhost...][:port]/[database] » [?propertyName1