第1步 獲取Java與MySQL的連接器

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、東莞網(wǎng)絡(luò)推廣、小程序設(shè)計、東莞網(wǎng)絡(luò)營銷、東莞企業(yè)策劃、東莞品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供東莞建站搭建服務,24小時服務熱線:028-86922220,官方網(wǎng)址:chinadenli.net
第2步 將下載的包存放在自己機器上jdk安裝目錄下面的jre目錄下面的lib目錄下面的ext目錄中,在程序中導入與數(shù)據(jù)庫操作相關(guān)的對象
import java.sql.Connection; //導入數(shù)據(jù)庫連接對象
import java.sql.DriverManager; //導入數(shù)據(jù)庫驅(qū)動管理對象
import java.sql.ResultSet; //導入數(shù)據(jù)記錄集對象
import java.sql.SQLException; //導入數(shù)據(jù)SQL操作異常對象
import java.sql.Statement; //導入SQL操作接口對象
第3步:在程序中寫入如下內(nèi)容
String url; //連接數(shù)據(jù)庫的字符串
String sql; //執(zhí)行數(shù)據(jù)sql查詢操作的字符串
Connection conn; //數(shù)據(jù)庫連接變量
Statement st; //數(shù)據(jù)庫操作對象
ResultSet rs; //數(shù)據(jù)記錄集對象
url = "jdbc:mysql://localhost:3306/test?user=rootpassword="; //在程序中只要修改這句,就可以實現(xiàn)數(shù)據(jù)庫連接
try {
conn = DriverManager.getConnection(url);
st = conn.createStatement();
sql = "select * from test"; //只要修改這句,就可以實現(xiàn)各種查詢操作
rs=st.executeQuery(sql); //執(zhí)行數(shù)據(jù)查詢
while(rs.next())
{
System.out.println(rs.getString(1)); //獲得數(shù)據(jù)表test中第1個字段的數(shù)據(jù),該字段為字符串類型
System.out.println(rs.getString(2)); //獲得數(shù)據(jù)表test中第2個字段的數(shù)據(jù),該字段為字符串類型
}
rs.close(); //關(guān)閉數(shù)據(jù)記錄集
conn.close(); //關(guān)閉數(shù)據(jù)庫連接
} catch (SQLException e) {
System.out.println("Error:"+e.toString()+e.getMessage());
}
java 連接 mysql 和連接oracle 是相同的
第一步 配置驅(qū)動
第二步 配置數(shù)據(jù)庫服務地址默認端口 3306
第三步 打開連接(配置用戶和密碼)
具體代碼如下:
String url = "jdbc:mysql://localhost:3306/javademo?user=rootpassword=rootuseUnicode=truecharacterEncoding=UTF8";
Class.forName("com.mysql.jdbc.Driver");// 動態(tài)加載mysql驅(qū)動
conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
1、java連接MySQL數(shù)據(jù)庫需要有一個驅(qū)動jar包
例如:mysql-connector-java-5.1.26-bin.jar,該驅(qū)動jar可以自行百度搜索最新包下載放在項目的lib目錄下即可。
2、連接代碼如下
package?baidu.test.jsp;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.ResultSet;
import?java.sql.SQLException;
import?java.sql.Statement;
import?javax.naming.spi.DirStateFactory.Result;
public?class?DbConnection?{
private?static?Connection?conn;
public?DbConnection()?{
?String?drivername="com.mysql.jdbc.Driver";
?String?username="root";
?String?url="jdbc:mysql://localhost/jsptest?useUnicode=truecharacterEncoding=UTF-8";
?String?password="";
?//加載驅(qū)動
?try?{
Class.forName(drivername);
}?catch?(ClassNotFoundException?e)?{
System.out.println("驅(qū)動加載失敗!");
e.printStackTrace();
}
?//建立連接
?try?{
conn=DriverManager.getConnection(url,username,password);
}?catch?(SQLException?e)?{
System.out.println("數(shù)據(jù)庫連接失敗!");
e.printStackTrace();
}
?
?
}
//getResultSet
public?ResultSet?GetResultSet(String?sql)
{
ResultSet?rs=null;
//statemanage
try?{
Statement?st=conn.createStatement();
rs=st.executeQuery(sql);
}?catch?(SQLException?e)?{
System.out.println("狀態(tài)管理器創(chuàng)建失敗");
e.printStackTrace();
}
return?rs;
}
//DML
public?int?DML(String?sql)
{
int?count=-1;
try?{
Statement?statement=conn.createStatement();
count=statement.executeUpdate(sql);
}?catch?(SQLException?e)?{
System.out.println("狀態(tài)管理器創(chuàng)建失敗");
e.printStackTrace();
}
return?count;
}
}
3、可以新建service類來調(diào)用連接類里面的方法,實現(xiàn)自己所需用的功能。
1.?在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫的驅(qū)動程序。
接下來的實驗中,使用數(shù)據(jù)庫MySQL,所以需要下載MySQL支持JDBC的驅(qū)動程序(mysql-connector-java-5.1.18-bin.jar)。
2.?開發(fā)環(huán)境是MyEclipse,將下載得到的驅(qū)動程序加載進開發(fā)環(huán)境中。
3.?在Java程序中加載驅(qū)動程序。
在Java程序中,通過?“Class.forName(“指定數(shù)據(jù)庫的驅(qū)動程序”)”?
方式來加載添加到開發(fā)環(huán)境中的驅(qū)動程序,例如Class.forName(“com.mysql.jdbc.Driver”)。
4.?創(chuàng)建數(shù)據(jù)連接對象:通過DriverManager類創(chuàng)建數(shù)據(jù)庫連接對象Connection。
DriverManager類作用于Java程序和JDBC驅(qū)動程序之間,用于檢查所加載的驅(qū)動程序是否可以建立連接,然后通過它的getConnection方法,根據(jù)數(shù)據(jù)庫的URL、用戶名和密碼,創(chuàng)建一個JDBC?
Connection?對象。代碼如:Connection?connection?=??DriverManager.getConnection(“連接數(shù)據(jù)庫的URL",?"用戶名",?
"密碼”)。
其中,URL=協(xié)議名+IP地址(域名)+端口+數(shù)據(jù)庫名稱;用戶名和密碼是指登錄數(shù)據(jù)庫時所使用的用戶名和密碼。具體示例創(chuàng)建MySQL的數(shù)據(jù)庫連接代碼如下:
Connection?connectMySQL??=?
DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root"?
,"root"?);
5.?創(chuàng)建Statement對象:Statement?類的主要是用于執(zhí)行靜態(tài)?SQL?
語句并返回它所生成結(jié)果的對象。
通過Connection?對象的?createStatement()方法可以創(chuàng)建一個Statement對象。例如:Statement?statament?=?
connection.createStatement();?具體示例創(chuàng)建Statement對象代碼如下:Statement?statamentMySQL?=connectMySQL.createStatement();?
6.?調(diào)用Statement對象的相關(guān)方法執(zhí)行相對應的?SQL?
語句:通過execuUpdate()方法用來數(shù)據(jù)的更新,包括插入和刪除等操作,例如向staff表中插入一條數(shù)據(jù)的代碼:
statement.excuteUpdate(?"INSERT?INTO?
staff(name,?age,?sex,address,?depart,?worklen,wage)"?+?"?VALUES?('Tom1',?321,?
'M',?'china','Personnel','3','3000'?)?")?;?
7.?通過調(diào)用Statement對象的executeQuery()方法進行數(shù)據(jù)的查詢,而查詢結(jié)果會得到?
ResulSet對象,ResulSet表示執(zhí)行查詢數(shù)據(jù)庫后返回的數(shù)據(jù)的集合,ResulSet對象具有可以指向當前數(shù)據(jù)行的指針。通過該對象的next()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號或者字段名取出。如果當next()方法返回null,則表示下一行中沒有數(shù)據(jù)存在。使用示例代碼如下:
ResultSet?resultSel?=?
statement.executeQuery(?"select?*?from?staff"?);
8.?關(guān)閉數(shù)據(jù)庫連接:使用完數(shù)據(jù)庫或者不需要訪問數(shù)據(jù)庫時,通過Connection的close()?方法及時關(guān)閉數(shù)據(jù)連接。
1.下面代碼是使用jdbc直接來鏈接mysql的操作,方式與SQL SERVER類似,區(qū)別在于加載的驅(qū)動不同,url的設(shè)置也有點區(qū)別。
2.執(zhí)行腳本返回的結(jié)果,可以看出java成功鏈接上mysql并獲取到返回值
3.mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數(shù)驅(qū)動等等,所有的jar包都是放到web工程lib目錄下
4.如果工程是整合在ssh下,一般情況下都會有一個properties文件,該文件配置了數(shù)據(jù)庫鏈接常用的命令,下圖是mysql中的配置
5.使用spring框架下進行的測試,結(jié)果可以成功執(zhí)行,無論是sql server還是mysql還是其他的數(shù)據(jù)庫,基本功能都一樣,只是語法結(jié)構(gòu)有所區(qū)別,java在調(diào)用的過程中大部分功能只要切換了數(shù)據(jù)庫鏈接命令就可以公用,如果系統(tǒng)架構(gòu)設(shè)計的足夠好,切換數(shù)據(jù)庫的時候,應用程序是不用調(diào)整就能兼容的
import java.sql.*;
public class Conn {
static Connection con;
static PreparedStatement sql;
static ResultSet res;
public Connection getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");//需要自己下載
} catch (Exception e) {
e.printStackTrace();
}
try {
con= DriverManager.getConnection("jdbc:mysql://127.0.0.1/dbtest","root","123456"); //需要根據(jù)自己的修改
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Conn c=new Conn();
c.getConnection();
try {
sql= con.prepareStatement("select * from students");//選擇數(shù)據(jù)表,后面的操作就是根據(jù)自己的特殊情況具體實現(xiàn)了
res=sql.executeQuery();
System.out.println("執(zhí)行增刪改前的數(shù)據(jù):");
while (res.next()) {
String id=res.getString(1);
String name=res.getString("name");
String age=res.getString("age");
System.out.print("編號"+id+"\t");
System.out.print("姓名"+name+"\t");
System.out.println("年齡"+age+"\t");
}
sql=con.prepareStatement("insert into students values(?,?,?)");
sql.setString(1, "9");
sql.setString(2, "tf");
sql.setString(3, "33");
sql.executeUpdate();
sql=con.prepareStatement("update students set age=?where id='1'");
sql.setString(1, "55");
sql.executeUpdate();
Statement stmt=con.createStatement();
stmt.executeUpdate("delete from students where id='5'");
sql=con.prepareStatement("select * from students");
res=sql.executeQuery();
System.out.println("執(zhí)行增刪改后的數(shù)據(jù):");
while (res.next()) {
String id=res.getString(1);
String name=res.getString("name");
String age=res.getString("age");
System.out.print("編號"+id+"\t");
System.out.print("姓名"+name+"\t");
System.out.println("年齡"+age+"\t");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享文章:java怎么用mysql,java怎么用scanner輸入兩個數(shù)
本文鏈接:http://chinadenli.net/article44/dsgjihe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、建站公司、網(wǎng)站策劃、網(wǎng)站內(nèi)鏈、云服務器、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)