mysql調用java
使用jdbc驅動 六個步驟
創建鏈接
載入驅動
獲取示例
執行sql語句
獲取結果集
關閉連接
代碼示例
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassDbDemo{
publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub
ResultSetresult=null;
Connectioncon=null;
Statementstatement=null;try{//第0步:將mysql的jdbcjar包加入到引用庫中來
//第一步:將想要連接的資料庫驅動類載入到JVM中來,載入過程中並向DriverManager注冊Driver
//成功載入後,會將Mysql的驅動Driver類的實例注冊到DriverManager類中。
//使得下面我們獲取Connection只需要通過DriverManager就可以了。我不需要通過每個資料庫具體的Driver。
Class.forName("com.mysql.jdbc.Driver").newInstance();//第二步,通過DriverManager獲取一個和mysql的連接實例con
StringJDBCUrl="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";//
StringuserName="root";
Stringpassword="1557862201";//接受一個jdbcurl,username,password;
con=DriverManager.getConnection(JDBCUrl,userName,password);//第三步:通過con連接獲取到Statement實例,執行sql語句
statement=con.createStatement();//statement實例是用於一些不帶參數的sql執行,查詢,更新,插入,刪除操作都可以但是需要構建一個沒有佔位符的sql字元串
//第四步,statement執行sql語句,查詢到的結果集到ResultSet實例,簡單查詢,沒有where語句的查詢
result=statement.executeQuery("select*fromstudent");//第五步:從結果集中獲取數據
while(result.next()){//根據test庫中student表格列名讀取數據
intid=result.getInt("id");
Stringname=result.getString("_stuName");
Stringnumber=result.getString("_stuNumber");
StringGrade=result.getString(result.findColumn("_stuGrade"));
StringAddress=result.getString(result.findColumn("_stuAddress"));
System.out
.println("name="+name+"number="+number+"Grade="+Grade+"Address="+Address);
}//插入語句
//statement.executeUpdate("");
insert(statement);//執行帶參數的查詢,有where語句的查詢
intid=2;
executeQuery(con,id);//執行更新操作
updateDate(con,2);
delete(con,"XX");//刪除數據行
}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblock
System.out.println("找不到驅動程序類,載入驅動失敗!");
e.printStackTrace();
}catch(InstantiationExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptionex){//TODOAuto-generatedcatchblock
System.out.println("SQLException:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("VendorError:"+ex.getErrorCode());
ex.printStackTrace();
}finally{//第六步:釋放資源
/**
*關閉JDBC對象操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:1、關閉記錄集
*2、關閉聲明3、關閉連接對象
*/
if(result!=null){//關閉結果集
try{
result.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
result=null;
}if(statement!=null){//關閉執行sql語句代碼塊
try{
statement.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
statement=null;
}if(con!=null){//關閉連接
try{
con.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
con=null;
}
}
}
❷ 怎樣用java連接mysql
Java MySQL 連接
Java 連接 MySQL 需要驅動包,網路就有自行下載,解壓後得到jar庫文件,然後在對應的項目中導入該庫文件。
本實例使用的是 Eclipse,導入 jar 包:
我有一個微信公眾號,經常會分享一些Java技術相關的干貨,還有一些學習資源。
如果你喜歡我的分享,可以用微信搜索「Java團長」或者「javatuanzhang」關注。
❸ 請問mysql語句中怎麼引用java變數啊謝謝啦!
用預編譯對象
PreparedStatement
例:
PreparedStatement pstmt = new PreparedStatement();
public static String select(int sno)
{
String sql = "select * from student where sno = ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, sno);
rs = pstmt.executeQuery();
while(rs.next())
{
message = "學號"+rs.getString("sno")+" 姓名"+rs.getString("sname")
}
} catch (SQLException e) {
e.printStackTrace();
}
finally
{
DBDao.close(rs, pstmt, conn);
}
return message;
}
❹ JAVA調用MySQL存儲過程
java代碼:
Class.forName("com.mysql.jdbc.Driver");
Connectioncon=DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");
Stringsql="{callsel(?)}";
CallableStatementcs=(CallableStatement)con.prepareCall(sql);
cs.execute();
Stringname=cs.getString(1);
System.out.println(name);
創建存儲過程代碼:
dropprocereifexistssel;
createproceresel(outname1varchar(225))
begin
;
end
輸出結果:
❺ 如何使用java連接mysql資料庫
Java要連接資料庫:
首先你必須安裝mysql資料庫
當你安裝好mysql之後,那麼你現在應該安裝JDK了(JDK1.6就可以)
安裝好JDK之後,就是安裝Eclipse了,要支持JDK版本,Eclipse安裝的時候會自動去找JDK安裝位置的,如果你是解壓版的Eclipse,就要配置eclipse.ini文件了,將對應的JDK配置好,這些已經准備就緒的時候,就到mysql中創建資料庫和表先創建資料庫
CREATE DATABASE SCUTCS;
接著,創建表:
CREATETABLESTUDENT
(
SNOCHAR(7)NOTNULL,
SNAMEVARCHAR(8)NOTNULL,
SEXCHAR(2)NOTNULL,
BDATEDATENOTNULL,
HEIGHTDEC(5,2)DEFAULT000.00,
PRIMARYKEY(SNO)
);然後插入數據,可以用SQL語句insert into <表名> values (value1, value2, ...)
下面,我們來編寫.java文件來演示一下如何訪問MySQL資料庫importjava.sql.*;
publicclassJDBCTest{
publicstaticvoidmain(String[]args){
//驅動程序名Stringdriver="com.mysql.jdbc.Driver";
//URL指向要訪問的資料庫名scutcsStringurl="jdbc:mysql://127.0.0.1:3306/scutcs";
//MySQL配置時的用戶名Stringuser="root";//MySQL配置時的密碼Stringpassword="root";
try{//載入驅動程序Class.forName(driver);
//連續資料庫Connectionconn=DriverManager.getConnection(url,user,password);
if(!conn.isClosed())System.out.println("!");
//statement用來執行SQL語句Statementstatement=conn.createStatement();
//要執行的SQL語句Stringsql="select*fromstudent";
//結果集ResultSetrs=statement.executeQuery(sql);
while(rs.next())//選擇sname這列數據name=rs.getString("sname
//輸出結果System.out.println(rs.getString("sno")+" "+name);}
rs.close();conn.close();
}catch(ClassNotFoundExceptione){
System.out.println("Sorry,can`tfindtheDriver!");e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}}}
❻ 關於mysql中的觸發器能調用JAVA嗎的搜索推薦
肯定不可以,mysql不能調用java代碼,但是可以在java中創建觸發器
1.使用SQL創建觸發器
DELIMITER$$CREATETRIGGER`catefiles_trigger`AFTERINSERTON`catefiles`FOREACHROWbegin
declarenum1int;setnum1=(selectnumfromest_client_catescan_statuswherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);if(num1>=0)thenupdatecatescan_statussetnum=num1+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;elseinsertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);endif;end$$
2.在Java程序里創建觸發器
Stringsql=+"CREATETRIGGERcatefiles_"
+"begin"
+"declarescannumint;"
+"setscannum=(selectnumfromest_client_catescan_statuswhere"
+"cateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);"
+"if(scannum>=0)then"
+"updatecatescan_statussetnum=scannum+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;"
+"else"
+"insertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);"
+"endif;"
+"end";
Connectioncon=DbConnectionManager.getConnection();
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.execute();
3.可以看出區別:在java中創建觸發器,不需要限定符DELIMITER ,加上的話執行過程中會報MySQL語法錯誤
❼ 一個關於java調用mysql 存儲過程的問題
在存儲過程中如果有查詢結果集,在java中執行存儲過程後,應使用其父介面Statement的getResultSet()方法獲取查詢結果集,此方法就返回ResultSet,如你上面若想獲取存儲過程中查詢結果集應如下:
ResultSet rs = cst.getResultSet();
以下遍歷此rs即可... ...
❽ mysql語句中如何引用java變數 jsp
select
*
from
資料庫名
where
name(資料庫中欄位名)=name;
查詢結果是個對象user,然後
if(user!=null){
if(user.getPassword.equals(password)){
判斷出用戶名和密碼正確
}
}
❾ 如何使用Java訪問MySQL資料庫
import java.sql.*;
public class DataBasePractice {
public static void main(String[] args) {
//聲明Connection對象
Connection con;
//驅動程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要訪問的資料庫名mydata
String url = "jdbc:mysql://localhost:3306/mydata";
//MySQL配置時的用戶名
String user = "root";
//MySQL配置時的密碼
String password = "root";
//遍歷查詢結果集
try {
//載入驅動程序
Class.forName(driver);
//1.getConnection()方法,連接MySQL資料庫!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.創建statement類對象,用來執行SQL語句!!
Statement statement = con.createStatement();
//要執行的SQL語句
String sql = "select * from student";
//3.ResultSet類,用來存放獲取的結果集!!
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("執行結果如下所示:");
System.out.println("-----------------");
System.out.println(" 學號" + "\t" + " 姓名");
System.out.println("-----------------");
String name = null;
String id = null;
while(rs.next()){
//獲取stuname這列數據
name = rs.getString("stuname");
//獲取stuid這列數據
id = rs.getString("stuid");
//首先使用ISO-8859-1字元集將name解碼為位元組序列並將結果存儲新的位元組數組中。
//然後使用GB2312字元集解碼指定的位元組數組。
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
//輸出結果
System.out.println(id + "\t" + name);
}
rs.close();
con.close();
} catch(ClassNotFoundException e) {
//資料庫驅動類異常處理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//資料庫連接失敗異常處理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("資料庫數據成功獲取!!");
}
}
}
在上面while代碼段後面添加以下代碼段:
String name = null;
String id = null;
while(rs.next()){
//獲取stuname這列數據
name = rs.getString("stuname");
//獲取stuid這列數據
id = rs.getString("stuid");
//首先使用ISO-8859-1字元集將name解碼為位元組序列並將結果存儲新的位元組數組中。
//然後使用GB2312字元集解碼指定的位元組數組。
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
//輸出結果
System.out.println(id + "\t" + name);
}
PreparedStatement psql;
ResultSet res;
//預處理添加數據,其中有兩個參數--「?」
psql = con.prepareStatement("insert into student values(?,?)");
psql.setInt(1, 8); //設置參數1,創建id為5的數據
psql.setString(2, "xiaogang"); //設置參數2,name 為小明
psql.executeUpdate(); //執行更新
//預處理更新(修改)數據
psql = con.prepareStatement("update student set stuname = ? where stuid = ?");
psql.setString(1,"xiaowang"); //設置參數1,將name改為王五
psql.setInt(2,10); //設置參數2,將id為2的數據做修改
psql.executeUpdate();
//預處理刪除數據
psql = con.prepareStatement("delete from student where stuid = ?");
psql.setInt(1, 5);
psql.executeUpdate();
//查詢修改數據後student表中的數據
psql = con.prepareStatement("select*from student");
res = psql.executeQuery(); //執行預處理sql語句
System.out.println("執行增加、修改、刪除後的數據");
while(res.next()){
name = res.getString("stuname");
id = res.getString("stuid");
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
System.out.println(id + "\t" + name);
}
res.close();
psql.close();
❿ java裡面怎麼調用mysql的存儲過程的
java代碼:
Class.forName("com.mysql.jdbc.Driver");
Connectioncon=DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");
Stringsql="{callsel(?)}";
CallableStatementcs=(CallableStatement)con.prepareCall(sql);
cs.execute();
Stringname=cs.getString(1);
System.out.println(name);
創建存儲過程代碼:
dropprocereifexistssel;
createproceresel(outname1varchar(225))
begin
;
end
輸出結果: