java和mysql
連接資料庫簡單步驟:
導入驅動包(mysql官網有下),並添加該包為庫(add as Library)
注冊驅動:Class.forName("com.mysql.jdbc.Driver");
獲取連接對象:Connection conn=DirverManager.getConnection("jdbc:mysql://連接IP/資料庫名","資料庫用戶名","密碼");
獲取sql語句執行對象:Statement stmt=conn.createStatement();
使用對象運行sql語句:如 stmt.executeUpdate("Update A set a=b");
釋放資源:stmt.close();conn.close();
也可以用資料庫連接池,獲得連接,但是要下載相關的jar包,如:Druid.jar
要想寫更簡單的代碼,可以用spring框架,下載相應的jar包就可以了
B. 怎麼樣實現java與MYSQL的連接
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.struts.util.MessageResources;
public class DBconnection {
private String driveName = null;
private String userName = null;
private String password = null;
private String url = null;
private Connection con =null;
private Statement sta=null ;
private PreparedStatement pre = null;
private ResultSet result = null;
/** 創岩粗建一個沒有參數的資料庫構造器
*
*
*/
public DBconnection() {
construts();
linkDataBase();
}
public DBconnection(Connection con){
this.con=con;
}
/** 實例化對象時調用的方法
*
*MessageResources
*/
private void construts() {
MessageResources message=MessageResources.getMessageResources("resources.application");
driveName = message.getMessage("driveName");
url = message.getMessage("url");
userName = message.getMessage("userName");
password = message.getMessage("password");
}
/** 載入資料庫的驅動程ry {
Class.序
*
*
*/
private void linkDataBase() {
try {
Class.forName(driveName);
} catch (ClassNotFoundException e) {
System.out.println("Link DataBase Fail!");
}
}
/** 建立一個Connection對象
*
*
*/
public Connection createConnection() {
try {
con = DriverManager.getConnection(url, userName, password);
return con;
} catch (SQLException e) {
System.out.println("Connection Opened Fail!!");
e.printStackTrace();
}
return null;
}
/** 建立粗姿鎮一個Statement對象
*
*
*/
public void createNormalStatement() {
try {
sta = con.createStatement();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("NormalStatement Opened Fail!!");
}
}
/** 設冊粗置一個預編譯對象
*
* @param sql 初始化預編譯的語句
*/
public void createPreparedStatement(String sql) {
try {
pre = con.prepareStatement(sql);
} catch (SQLException e) {
System.out.println("PreparedStatement Opened Fail!!");
}
}
/**建立一個指定sql語句的ResultSet對象
*
* @param sql 一條普通的查詢Sql語句,
*/
public void setResultSet(String sql) {
try {
result = sta.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Nomal resultset get failer!");
}
}
/**執行准備好的 SQL 查詢並返回針對查詢SQL漏洞
*
*
*/
public void setPreparedStatementResultSet() {
try {
result = pre.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement resultset get failer!");
}
}
/** 判斷當前的Result對象中是否有結果集,有返回真,沒有返回假
*
* @return 是否有下一條記錄
*/
public boolean haveMoreResult() {
try {
return result.next();
} catch (SQLException e) {
System.out.println("block result next have errors");
return false;
}
}
/**關閉當前對象的Statement對象
*
*
*/
public void closeNormalStatement() {
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("NormalStatement close fail!");
}
}
/** 關閉當前的Prepared對象
*
*
*/
public void closePreparedStatement() {
try {
pre.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("PreparedStatement close fail!");
}
}
/**關閉當前的ResulrSet對象
*
*
*/
public void closeResultSet() {
try {
result.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Result close fail!");
}
}
/** 關閉Connection對象,檢查ResultSet,Statement,PrepardStament是否為空,
* 不為空就關閉,最後關閉Connection
*
*
*/
public void closeConnection() {
try {
if (result != null) {
result.close();
}
if (sta != null) {
sta.close();
}
if (pre != null) {
pre.close();
}
con.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Connection close fail!");
}
}
/** 設置Connection對象事務的支持
*
* @param bool 開啟變數
*/
public void setAutoCommit(Boolean bool) {
try {
con.setAutoCommit(bool);
} catch (SQLException e) {
e.printStackTrace();
}
}
/** 通過整數獲取ResultSet中的字元串值
*
* @param number 指定ResultSet中的列索引
* @return 獲得該值
*/
public String getResultSetValueByNumber(int number) {
try {
return result.getString(number);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/** 通過名字來獲得ResultSet指定列的字元串值
*
* @param columnName 指定的ResultSet列的名字
* @return 獲得該值
*/
public String getResultSetValueByColumn(String columnName) {
try {
return result.getString(columnName);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/** 通過整數獲取ResultSet中的整數值
*
* @param number 指定ResultSet中的列索引
* @return 獲得該值
*/
public int getResultSetIntValueByNumber(int number) {
try {
return result.getInt(number);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
/**通過名字來獲得ResultSet指定列的整數值
*
* @param columnName 指定的ResultSet列的名字
* @return 獲得該值
*/
public int getResultSetIntValueByColumn(String columnName) {
try {
return result.getInt(columnName);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
/** 設置預編譯語句的指定的數值列的?String值
*
* @param number 預編譯語句中?的索引
* @param value 相應的要傳入的值
* @return 是否成功設置
*/
public boolean (int number, String value) {
try {
pre.setString(number, value);
return true;
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" failer "
+ number);
}
return false;
}
/**設置預編譯語句的指定的數值列的?int值
*
* @param number 預編譯語句中?的索引
* @param value 相應的要傳入的值
*/
public void setPreparedStatementIntValue(int number, int value) {
try {
pre.setInt(number, value);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("setPreparedStatementIntValue failer " + number);
}
}
/** 提交preparedStatement(預編譯)針對多表事物語句
*
* @return 是否成功提交該語句
*/
public boolean preExecuteUpdate() {
try {
pre.executeUpdate();
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**提交事物(多條SQL一起提交)
*
*
*/
public void conCommit() {
try {
con.commit();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Transfer has failer!");
}finally{
closeConnection();
}
}
/** 資料庫事物不成功的時候回滾
*
*
*/
public void conRollback() {
try {
con.rollback();
System.out.println("database rollback");
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeConnection();
}
}
/** 運行一條普通的Insert,Update,Delete語句
*
* @param sql 普通的INSERT,UPDATE,DELETE語句
* @return 是否成功操作
*/
public boolean insertUpdateDelete(String sql) {
try {
sta.executeUpdate(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
// 測試程序
// public static void main(String[] args) {
// DBconnection db = new DBconnection();
// db.createConnection();
// db.createNormalStatement();
// String sql = "select * from book_infor;";
// db.setResultSet(sql);
// if (db.haveMoreResult()) {
// System.out.println(db.getResultSetIntValueByNumber(1));
// System.out.println(db.getResultSetValueByNumber(2));
// System.out.println(db.getResultSetValueByNumber(3));
// System.out.println(db.getResultSetValueByNumber(4));
// System.out.println(db.getResultSetValueByNumber(5));
// System.out.println(db.getResultSetValueByNumber(6));
// }
// }
}這個是jdbc,海有個連接池。
MySQl安裝個安裝版的,有圖形界面的。
C. java如何連接mysql
首先需要下載mysql資料庫驅動程序,去mysql官網下載,文件名為mysql-connector-java-5.1.11-bin.jar,其中5.1.11是版本,可下載最新的。要把這個jar加到工程中。
java代碼:
import java.sql.*;
public class TestInsert {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");/稿談/載入MySQL驅動程序
//建立與鍵空碰資料庫的連接
String url = "jdbc:mysql://localhost:3306/training"; //training是資料庫名虧型,可替換
String user = "root"; //root是mysql用戶名,可替換
String password = "root"; //替換為你的password
Connection cn = DriverManager.getConnection(url,user,password);
Statement stmt = cn.createStatement();//創建Statement對象
} catch (Exception e) {
e.printStackTrace();
}
}
}
D. java如何訪問資料庫(java訪問mysql資料庫)
Java可以使用JDBC訪問資料庫,也可以使用各類ORM框架訪問資料庫,但這些框架最終還是通過JDBC訪問資料庫,它們只是封裝了資料庫操作,而使得開發者可以減少這部分消耗。因此,本文只講解JDBC訪問方式。
JDBC訪問一般分為如下流程:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(StringclassName)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver");
}catch(e){
System.out.println("找不到驅動程序類,載入驅動失敗!");
e.();
}
成功載入後,會將Driver類的實例注冊到類中。
2、提供JDBC連接的URL
連接URL定義了連接資料庫時的協議、子協議、數據源標識。
書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&=gbk;
useUnicode=true:表示使用Unicode字元集。如果設置為
gb2312或GBK,本參數必須設置為true。=gbk:字元編碼方式。
3、創建資料庫的連接
要連接資料庫,需要向java.sql.請求並獲得Connection對象,該對象就代表一個資料庫的連接。
使用的(Stringurl,Stringusername,Stringpassword)方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
Stringurl="jdbc:mysql://localhost:3306/test";
Stringusername="root";
Stringpassword="root";
try{
Connectioncon=
.(url,username,password);
}catch(se){
System.out.println("資料庫連接失敗!");
se.();
}
4、創建一個Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過實例實現。
3、執行資料庫存儲過程。通常通過實例實現。
具體的實現方式:
Statementstmt=con.();
PreparedStatementpstmt=con.prepareStatement(sql);
CallableStatementcstmt=con.prepareCall("{CALLdemoSp(?,?)}");
5、執行慧轎SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery、executeUpdate和execute
1、ResultSetexecuteQuery(StringsqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。
2、intexecuteUpdate(StringsqlString):用於執行INSERT、UPDATE或DELETE語句以及SQLDDL語句,如:CREATETABLE和DROPTABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具芹尺體實現的代碼:
ResultSetrs=stmt.executeQuery("SELECT*FROM...");
introws=stmt.executeUpdate("INSERTINTO...");
booleanflag=stmt.execute(Stringsql);
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提嫌碧高供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
Stringname=rs.getString("name");
Stringpass=rs.getString(1);//此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs!=null){//關閉記錄集
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(stmt!=null){//關閉聲明
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){//關閉連接對象
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
E. 如何連接java和mysql資料庫
當然,首先要安裝有JDK(一般是JDK1.5.X)。然後安裝MySQL,這些都比較簡單,具體過程就不說了。配置好這兩個環境後,下載JDBC驅動mysql-connector-java-5.0.5.zip(這個是最新版的)。然後將其解壓縮到任一目錄。我是解壓到D盤,然後將其目錄下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具體如下:「我的電腦」->「屬性」->「高級罩賀答」->「環境變數」,在系統變數那裡編輯classpath,將D:mysql-connector-java-5.0.5mysql-connector-java-5.0.5-bin.jar加到最後,在加這個字元串前要加「;」,以與前一個classpath區分開。然後確定。
環境配置好了,很簡單。現在,先配置MySQL,設其用戶名為「root」,密碼為「root」。在命令行或用一個SQL的前端軟體創建Database。
我是用SQLyog的前端軟體來創建Database的。
先創建資料庫:
CREATEDATABASESCUTCS;
接著,創建表:
CREATETABLESTUDENT
(
SNOCHAR(7)NOTNULL,SNAMEVARCHAR(8)NOTNULL,SEXCHAR(2)NOTNULL,BDATEDATENOTNULL,HEIGHTDEC(5,2)DEFAULT000.00,PRIMARYKEY(SNO)
);
然後插入數據,可以用SQL語句insertinto<表名>values(value1,value2,...);
也可以用SQLyog來操作
好了,創建好了。
下面,我們來編寫.java文件來演示一下如何訪問MySQL資料庫。
importjava.sql.*;
publicclassJDBCTest{
publicstaticvoidmain(String[]args){
//驅動程序名
Stringdriver="com.mysql.jdbc.Driver";
//URL指向要訪問的資料庫名scutcs
Stringurl="jdbc:mysql://127.0.0.1:3306/scutcs";
//MySQL配置時的用戶名
Stringuser="root";
//MySQL配置時的密碼
Stringpassword="root";
try{
//載入驅動程序
Class.forName(driver);
//連續資料庫
Connectionconn=.(url,user,password);
if(!conn.isClosed())
System.out.println("!");
//statement用來執行SQL語句
Statementstatement=conn.();
//要執行的SQL語句
Stringsql="select*fromstudent";
//結果集
ResultSetrs=statement.(sql);
System.out.println("-----------------");
System.out.println("執行結果如下所示:");
System.out.println("-----------------");
System.out.println("學號"" ""姓名");
System.out.println("-----------------");
Stringname=null;
while(rs.next()){
//選擇sname這列數據
name=rs.getString("sname");
/*何問起hovertree*/
//首先使拍派用ISO-8859-1字元集將name解碼為位元組序列並將結果存儲新的位元組數組中。
//然後使用GB2312字元集解碼指定的位元組數組物慧
name=newString(name.getBytes("ISO-8859-1"),"GB2312");
//輸出結果
System.out.println(rs.getString("sno")" "name);
}
rs.close();
F. mysql必須和java一起用嗎
mysql必須陸伍和java一起用。答喚要在Java系統訪問MySQL,得加個MySQL驅動依賴,才能和MySQL建立連接,然後執行CRUD:maven配置,這段清悉凱maven配置中就引入了一個MySQL驅動。
G. javaweb怎麼連接mysql資料庫(javaweb項目連接MySQL資料庫)
安裝好mysql之後,那麼你現在應譽雀猛該安裝JDK了(JDK1.6就可以)
安裝好JDK之後,就是安裝Eclipse了,要支持JDK版本,Eclipse安裝的時候會自動去找JDK安裝位置的,如果你慶橋是解壓版的Eclipse,就要配置eclipse.ini文件了,將對應的JDK配置好,這些已經准備就緒的時候,就到mysql中創建資料庫和表
先創建資料庫:
CREATEDATABASESCUTCS;
接著,創建歲此表:
CREATETABLESTUDENT
(
SNOCHAR(7)NOTNULL,SNAMEVARCHAR(8)NOTNULL,SEXCHAR(2)NOTNULL,BDATEDATENOTNULL,HEIGHTDEC(5,2)DEFAULT000.00,PRIMARYKEY(SNO)
);
然後插入數據,可以用SQL語句insertinto<表名 H. java是怎麼連接mysql資料庫的 使用java連接MySQL資料庫與其他的資料庫連接核心是一樣的,如果說區別,那就是所需的驅動不一樣。 工具/原料 MySQL、JDK 方法/步驟 1、首先需要安裝好JDK(配置環境變數),如圖所示: 3、最後通過代碼進行連接。 (1)確定連接路徑URL: String url="jdbc:mysql://localhost(可以是本機IP地址):3306(埠號)/mysqltest(資料庫名稱)?"+"user=用戶賬號&password=用戶密碼&useUnicode=字元編碼"; (2)載入驅動: Class.forName("com.mysql.jdbc.Driver"); (3)連接,獲取Connection對象 Connection conn=DriverManager.getConnection(url) (4)可以通過conn對象檢驗連接與否。 I. 大數據分析師面試必備:java與mysql解析 【導讀】作為大數據工程師,其必須要掌握的基礎知識就是java與mysql的關系、交互和連接,作為基礎,也是面試考官經常會考的內容,為了幫助大家都能順利通過考試,今天小編就來和大家嘮一嘮java與mysql的關系、交互和連接,好了,開始今天的內容大數據分析師面試必備:java與mysql解析。 1. SQL語言四大類: DQL 數據查詢語言 select DML 數據操作語言 insert、update、delete DDL 數據界說語言 create、alter DCL 數據控制語言 grant許可權 2. mysql資料庫中的decimal類型(是數值型,不能存放字元串): 舉例:decimal(18,0) 常用於身份證號碼,但是帶x的不可以。 舉例:decimal(5,2) 狀況一:假設小數點前面是3位,後邊是2位,正常狀況。 狀況二:5指的是小數點前後不能超過5位,小數點後有必要是2位。 3. mysql中InnoDB和MyISAM引擎的差異: innodb支撐:事務和主外鍵 myisam不支撐:事務和主外鍵 4. 【不需要背誦,選擇題考點】向mysql中,a向表中添加數據的幾種寫法,題目:id int 主鍵自增,name varchar(11) 5. 操作mysql資料庫表有兩種方式,第一種:點八點吧;第二種:寫代碼。【不需要背誦,只需要了解,考試選擇題會出】 6. 在Java中,簡述面向對象三大特徵。 7. 在Java中,常用關鍵字: 1. 定義類的關鍵字是什麼? class 2. 繼承的關鍵字是什麼? extends 3. 定義介面的關鍵字是什麼? interface 4. 實現介面的關鍵字是什麼? implements 5. 抽象類的關鍵字是什麼? abstract 8. 在Java中,抽象類和介面的區別: 1. 抽象類中可以包含普通方法和抽象方法,介面中只能包含抽象方法 2. 抽象類中可以有構造方法,介面中沒有構造方法 3. 抽象類只能單繼承,可以實現多個介面 9. Java介面中有哪些成員? 1. 構造方法,沒有 2. 常量,默認訪問修飾符public static final,沒有變數 3. 抽象方法,默認訪問修飾符public abstract 10. 在Java中,抽象類和抽象方法的關系: 1. 抽象類中可以包含普通方法和抽象方法,抽象方法一定存在抽象類中。 2. 子類繼承抽象父類,必須實現|重寫抽象方法,除非子類也是抽象類。 3. 【判斷題】抽象類中必須包含抽象方法?【錯誤×】 4. 【判斷題】抽象方法一定存在抽象類中?【正確√】 11. Java重載的特點: 1. 在同一個類中 2. 方法名相同 3. 參數列表(個數、類型、順序)不同 4. 與返回值類型和訪問修飾符無關 12. Java重寫的特點: 1. 在父子類中 2. 方法名相同 3. 參數列表相同 4. 返回值類型相同,或是其子類 5. 訪問修飾符相同,或不能嚴於父類 13. 列舉幾種Java實現多態的形式: 1. 繼承的存在 2. 父類引用指向子類對象 | 向上轉型 3. 父類作為方法的返回值類型,父類作為方法的參數 14. Java介面的特性:單根性和傳遞性 15. 在Java中,throws和throw的區別: 1. throws 聲明異常,用在定義方法小括弧的後面 2. throw 拋出異常,寫在方法體內 以上就是小編今天給大家整理發送的關於大數據分析師面試必備:java與mysql解析的相關內容,希望對各位考生有所幫助,想知道更多關於數據分析師的基本要求有哪些,關注小編持續更新數據分析師崗位解析。 J. java如何連接mySQL資料庫 1.下面代碼是使用jdbc直接來鏈接mysql的操作,方式與SQL SERVER類似,區別在於載入的驅動不同,url的設置也有點區別。
不為空。