Java數據庫之數據庫的連接操作


這里面我們所連接的數據庫是mysql數據庫,Oracle數據庫暫且先不討論,並且mysql中的基本語法,這里面也不在一一表述了,但是看這篇文章之前,最好先仔細的連接mysql的基本語法,看起來方便~

接下來我主要通過幾個步驟來整體的實現使用eclipse來連接數據庫的操作。

1.關於mysql的圖形化開發工具SQLYog

在前面的文章中,我有說明如何下載數據庫。在下載完數據庫之后,我們只能在cmd控制台通過執行mysql -u root -p ***來打開數據庫,並且執行操作,但是在控制台要對數據庫的一些表進行操作實在是太麻煩(只要一個字符寫錯就需要全部重寫) ,因此在這里我使用SQLyog這個軟件來連接我的mysql,使其可以可視化的打開。下面是關於SQLYog的配置:

(1).安裝

傻瓜式安裝即可,文件也不是很大。

(2).使用方法

輸入用戶名、密碼,點擊連接按鈕,進行訪問MySQL數據庫進行操作

 

 

 

Query窗口中,輸入SQL代碼,選中要執行的SQL代碼,按F8鍵運行,或按執行按鈕運行。

 

上述實現之后,我們就大體實現了mysql的圖形化界面的安裝啦~

2.通過ecplise連接數據庫的操作

(1).導入jar包

我們需要在mysql官網下載java連接mysql的jar包,下載地址:https://blog.csdn.net/zuoshangan1989/article/details/51274852。

在下載完jar包之后,我們需要將我們的jar包導入到我們的java代碼中

 

 

 這個文件是java連接mysql的jar包,並且我已經解壓完成了。

 

 

 

 用鼠標點擊右鍵復制該文件,之后打開ecplise

  

 

 

 假設我所建立的工程是java_mysql,這時我們在這個工程里建立一個文件夾lib,並且將之前我們復制的jar文件復制到這個文件夾中,之后,我們在lib點擊右鍵,點Build Path->Configure Build Path-->Libraries-->Add External JARs(添加本地jars包)-->Apply

這樣我們就將這個jar包導入到我們的工程中

 

 

 導入完之后自動會生成這個文件。

(2).java連接數據庫的操作步驟

連接數據庫的操作步驟主要分成下面5個步驟:

  1).注冊驅動,使用反射技術,固定的格式

  2).獲取數據庫的連接,DriverManager類中的靜態方法,static Connection getConnection(String url,String username,String password),返回值是Connection接口的實現類,在mysql驅動程序中。

    url的格式為:(數據庫的的地址)jdbc:mysql://連接主機的IP(本地主機為localhost):端口號(一般是3306)//數據庫的名字

  3).獲取語句執行平台,通過數據庫連接對象,獲取SQL語句的執行者對象

    假設第二步我們返回的Connection接口的實現類對象為con,接下來,我們通過con對象調用方法,Statement createStatement()來獲取Statement對象,將SQL語句發送到數據庫

    返回值是Statement接口墊額實現類對象,在mysql驅動程序中

  4).執行SQL語句

  5).釋放資源

下面的代碼,表示的是用java代碼來實現連接數據庫的操作

package mysql_demo;

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

import com.mysql.jdbc.Statement;

public class mysql_demo {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
		//1.注冊啟動,使用反射技術,固定格式
				Class.forName("com.mysql.jdbc.Driver");
				
				//2.獲取數據庫連接,DriverManager類中的靜態方法
				//static Connection getConnection(String url,String user,String password)
				//返回值是Connection接口的實現類,在mysql驅動程序中
				//url的格式:數據庫地址 jdbc:mysql://連接主機IP:端口號//數據庫名字
				String url = "jdbc:mysql://localhost:3306/mybase";
				String root = "***";
				String password = "***";
				Connection con = DriverManager.getConnection(url,root,password);
//				System.out.println(con);
				
				//3.獲取語句執行平台,通過數據庫連接對象,獲取到SQL語句的執行者對象
				//con對象調用方法,Statement createStatement() 獲取Statement對象,將SQL語句發送到數據庫
				//返回值是Statement接口的實現類對象,在mysql驅動程序中
				Statement stat = (Statement) con.createStatement();
				
				//4.執行sql語句
				//通過執行者對象調用方法執行SQL語句,獲取結果 
				//int executeUpdate(String sql)   執行數據庫中的SQL語句,inset,delete,update
				//返回值是int,操作成功數據表多少行
//				String sql = "INSERT INTO sort(sname,sprice,sdesc) VALUES('手機11','5999','iphone11')";
//				int row = stat.executeUpdate(sql);
//				System.out.println(row);
				
				
				//查詢SQL語句
				String sql = "SELECT * FROM sort";
				//ReaultSet executeQuery(String sql) 執行SQL語句中的select查詢
				//返回值ResultSet接口的實現類對象,實現類在mysql驅動中
				ResultSet rs = stat.executeQuery(sql);
				System.out.println(rs);
				
				while(rs.next()){
					//獲取每列的數據,使用的是ResultSet接口的getXXX方法,寫String列名
					System.out.println(rs.getInt("sid")+"   "+rs.getString("sname")+"   "+rs.getDouble("sprice")+"   "+rs.getString("sdesc"));
				}
				
				//6.釋放資源
				rs.close();
				stat.close();
				con.close();
	}

}

(3).為了防止SQL注入攻擊。我們引入了prepareStatement

更新操作:(刪除,修改,添加操作同理)

package mysql_demo;

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

import com.mysql.jdbc.PreparedStatement;

public class mysql_update {

	/*
	 * 使用PrepareStatement接口實現數據表的更新操作
	 * 
	 * */
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
		
		//注冊驅動
		Class.forName("com.mysql.jdbc.Driver");
		//獲取連接對象
		String url = "jdbc:mysql://localhost:3306/mybase";
		String username = "***";
		String password = "***";
		Connection con = DriverManager.getConnection(url,username,password);
		//拼寫修改的SQL語句,參數用?
		String sql = "Update sort SET sname = ?,sprice=? WHERE sid = ?";
		//調用連接對象con的方法prepareStatement來獲取sql語句的預編譯對象
		PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql);
		pst.setObject(1, "娃哈哈");
		pst.setObject(2, 111);
		pst.setObject(3, 7);
		System.out.println(pst);
		
		//執行SQL語句
		pst.executeUpdate();
		
		//關閉資源
		pst.close();
		con.close();
	}

}

查詢操作

package mysql_demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import com.mysql.jdbc.PreparedStatement;

public class mysql_select {
	public static void main(String[] args) throws Exception{
		//注冊驅動
		Class.forName("com.mysql.jdbc.Driver");
		//獲取連接對象
		String url = "jdbc:mysql://localhost:3306/mybase";
		String username = "***";
		String password = "***";
		Connection con = DriverManager.getConnection(url,username,password);
		
		String sql = "SELECT * FROM sort";
		PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql);
		
		//調用pst對象的方法,實現查詢操作
		ResultSet rs = pst.executeQuery();
		while(rs.next()){
			System.out.println(rs.getString("sid")+"   "+rs.getString("sname")+"   "+rs.getString("sprice")+"   "+rs.getString("sdesc"));
		}
		//關閉資源
		rs.close();
		pst.close();
		con.close();
	}
}

  

 

 

為了我們共同進步,我這里有計算機專業的各種視頻,

如果想要,關注我的公眾號:念流聲。私聊我,看到后給你連接(只放了一張圖片,視頻有很多,需要什么可以私聊問我,有的話就給你)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM