您好,登錄后才能下訂單哦!
今天小編給大家分享一下Java怎么連接MySQL數據庫的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
首先說明,由于是8版本的數據庫,所以配置類的寫法上與5版本的有所區別,需要注意,同時用idea或eclipse時需要導入jar包
如果想要下載8版本不同的jar包只需要修改8.0.28為指定版本即可。
idea導入jar包的方法如下:
然后是代碼部分,首先先建表:
CREATE TABLE `train_message` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主鍵id', `train_name` varchar(20) NOT NULL COMMENT '列車名', `origin` varchar(30) NOT NULL COMMENT '始發地', `terminal` varchar(30) NOT NULL COMMENT '終到地', `departure_time` timestamp NOT NULL COMMENT '出站時間', `state` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '正常' COMMENT '列車狀態', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3
然后創建連接的配置類DbConfig.java,localhost是本機的ip地址,如果有服務器就填服務器的ip地址,message是數據庫的名字,這里一張圖說下有很多新手誤解的名字
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 數據庫配置類 * @author 景苒 */ public class DbConfig { public Connection dbConfig() throws SQLException { try { Class.forName("com.mysql.cj.jdbc.Driver"); }catch (Exception e) { System.out.print("加載驅動失敗!"); e.printStackTrace(); } String url = "jdbc:mysql://localhost:3306/message?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true"; String user = "root"; String password = "123456"; return DriverManager.getConnection(url, user, password); } }
然后寫下主函數Main.java,這里主函數的函數體可以在最后再寫,需要什么功能就把注釋打開就好,快捷注釋的方法,選中這句話,按ctrl加/,就能全注釋了。
import java.sql.SQLException; /** * 主函數,調用功能 * @author 景苒 */ public class Main { public static void main(String[] args) throws SQLException { // new GetMessage().getMessage(); // new UpdateTrainState().updateTrainState(); // new InsertTrain().insertTrain(); // new GetNumber().getNumber(); } }
然后是每個的功能:
建GetMessage.java類
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 查詢沈陽到武漢的所有列車信息,按出發時間先后排序 * @author 景苒 */ public class GetMessage { public void getMessage() throws SQLException { Connection con = new DbConfig().dbConfig(); String sql = "select * from `train_message` where origin = ? and terminal = ? ORDER BY departure_time ASC"; String origin = "沈陽"; String terminal = "武漢"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, origin); ps.setString(2, terminal); ResultSet rs = ps.executeQuery(); try { while (rs.next()) { System.out.println("列車名:" + rs.getString("train_name") + " 始發站:" + rs.getString("origin") + " 終到站:" + rs.getString("terminal") + " 出發時間:" + rs.getString("departure_time") + " 列車狀態:" + rs.getString("state")); } }catch (SQLException e) { e.printStackTrace(); }finally { ps.close(); con.close(); } } }
建UpdateTrainState.java類
import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; /** * 修改T2255列車的狀態為停運 * @author 景苒 */ public class UpdateTrainState { public void updateTrainState() throws SQLException { Connection con = new DbConfig().dbConfig(); String sql = "UPDATE `train_message` SET state = '停運' WHERE train_name = 'T2255'"; Statement statement = con.createStatement(); try { int i = statement.executeUpdate(sql); if (i > 0) { System.out.println("更新成功"); }else { System.out.println("更新失敗"); } }catch (SQLException e) { e.printStackTrace(); }finally { statement.close(); con.close(); } } }
建InsertTrain.java類
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Scanner; /** * 新增一輛列車信息(自己輸入) * 始發時間為timestamp類型,輸入時需要確保格式正確,如:2019-01-01 00:00:00 * @author 景苒 */ public class InsertTrain { public void insertTrain() throws SQLException { Connection con = new DbConfig().dbConfig(); Scanner scanner = new Scanner(System.in); String sql = "insert into `train_message` values(null, ?, ?, ?, ?, default)"; System.out.print("請輸入列車名:"); String trainName = scanner.nextLine(); System.out.print("請輸入始發站:"); String origin = scanner.nextLine(); System.out.print("請輸入終到站:"); String terminal = scanner.nextLine(); System.out.print("請輸入始發時間:"); String departureTime = scanner.nextLine(); PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, trainName); ps.setString(2, origin); ps.setString(3, terminal); ps.setString(4, departureTime); try { int i = ps.executeUpdate(); if (i > 0) { System.out.println("添加成功"); }else { System.out.println("添加失敗"); } }catch (SQLException e) { e.printStackTrace(); }finally { ps.close(); con.close(); } } }
建GetNumber.java類
import java.sql.Statement; /** * 查詢狀態為正常的列車數量 * @author 景苒 */ public class GetNumber { public void getNumber() throws SQLException { Connection con = new DbConfig().dbConfig(); String sql = "select count(state) from `train_message` where state = '正常'"; Statement statement = con.createStatement(); try { ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { System.out.println("狀態為正常的列車數量為:" + resultSet.getInt(1)); } }catch (SQLException e){ e.printStackTrace(); }finally { statement.close(); con.close(); } } }
最后附上navicat的屬性結構圖和樣例插入的語句
數據根據自己需求自行寫入幾個就行,以上就是java連接mysql數據庫的實例代碼,eclipse也大同小異,就導入jar包的方式不同。
以上就是“Java怎么連接MySQL數據庫”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。