ホームページ >データベース >mysql チュートリアル >JavaでMySQLデータベースに接続する方法
まず、バージョン8のデータベースなので、構成クラスの記述方法がバージョン5とは異なります。ideaやeclipseを同時に使用する場合は、jarパッケージをインポートする必要があるので注意してください。
8 つの異なるバージョンを含む jar パッケージをダウンロードする場合は、8.0.28 を指定されたバージョンに変更するだけです。
#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 アドレスを入力します。メッセージはデータベースの名前です。これは、多くの初心者が誤解している名前を示す図です。
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(); } }
次に、それぞれの機能があります:
1. 瀋陽から武漢までのすべての列車情報を出発時刻順にクエリします
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(); } } }
2. T2255 列車のステータスを運休に変更します
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(); } } }
3. 新しい列車情報を追加します (自分で入力します)
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(); } } }
4. 正常なステータスの列車の数をクエリします
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データベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。