Java および Scala でデータベースを使用して追加、削除、確認、および変更操作を実行するにはどうすればよいですか?
jar パッケージの追加
ここでの Scala は Maven プロジェクトではないため、プロジェクト構造を見つけて (ショートカット キー: Ctrl + Alt + を同時に押します)、MySQL jar パッケージを追加する必要があります。 Maven プロジェクトの場合は、pom に直接追加するだけです。
データベースを操作するには 2 つのクラスが必要です。1 つはテスト用の Demo、もう 1 つは、追加、削除、確認、変更を行うための Util メソッドです
MysqlDemo では、コンパニオン クラスとコンパニオン オブジェクトを使用する必要があります。コンパニオン クラスは主にデータベースに接続するために使用されます。
class MysqlDemo { // 连接数据库 底层原理还是jdbc //驱动名称 var driver = "com.mysql.cj.jdbc.Driver" // 访问MySQL服务器,通过3306端口访问mysql数据库 var url = "jdbc:mysql://192.168.152.184:3306/exam" //用户名 var user = "root" //密码 var password = "123456" //辅助构造器 def this(driver: String, url: String, user: String, pwd: String) { this() this.driver = driver this.url = url this.user = user this.password = pwd } }
コンパニオン オブジェクトは主にデータベースの操作に使用されます。最初に apply メソッドを実装し、main 関数内で作成する必要があります。オブジェクトは apply メソッドを呼び出し、接続メソッドを呼び出し、リソースを解放します
object MysqlDemo { // 实现apply方法 def apply(): MysqlDemo = new MysqlDemo() def apply(driver: String, url: String, user: String, pwd: String): MysqlDemo = new MysqlDemo(driver, url, user, pwd) def main(args: Array[String]): Unit = { //创建对象,调用apply方法 val demo = MysqlDemo() //导入MySQLUtil包 import MysqlUtil._ //调用创建连接的方法 demo.conn() // 调用释放资源方法 demo.close(connection) /**操作数据库代码*/ }
Util はデータベース接続を初期化し、ドライバーを登録し、データベース接続を取得し、リソースを解放する必要があります。
import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet} object MysqlUtil { implicit class MysqlOp(obj: MysqlDemo) { //初始化数据连接 private var connection: Connection = _ def conn(): Connection = { //注册driver Class.forName(obj.driver) //得到数据库连接 val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password) connection } //释放资源 def close(conn: Connection): Unit = { if (conn != null) { conn.close() } } }
準備作業は完了したので、以下を実装する必要があります。データベース
データの追加
方法 1
//Util代码 //添加数据方法一 def insertStudent: Int = { val insertSqlStr = "insert into student(name, age, gender, telephone, email, classid)" + "values ('周七', 6, '男', '13888888888', '346497@qq.com', 2)" val i: Int = conn().createStatement.executeUpdate(insertSqlStr) i } //Demo测试代码 //添加数据方法一 val i: Int = demo.insertStudent if (i == 1) { println("添加成功") } else if (i == 0) { println("添加失败") }
方法 2
//Util代码 //添加数据方法二 def insertStudent(name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = { val insertSqlStr = "insert into student(id,name, age, gender, telephone, email, classid)" + "values (null,?,?,?,?,?,?)" val preStmt: PreparedStatement = conn().prepareStatement(insertSqlStr) preStmt.setString(1, name) preStmt.setInt(2, age) preStmt.setString(3, gender) preStmt.setString(4, telephone) preStmt.setString(5, email) preStmt.setInt(6, classid) val i: Int = preStmt.executeUpdate() i } //Demo测试代码 //添加数据方法二 val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1) if (i == 1) { println("添加成功") } else if (i == 0) { println("添加失败") }
データの削除
//Util代码 def deleteStudent(id: Int): Int = { val deleteSql = "delete from student where id= ?" val preStmt: PreparedStatement = conn().prepareStatement(deleteSql) preStmt.setInt(1, id) val i: Int = preStmt.executeUpdate() i } //Demo测试代码 val i: Int = demo.deleteStudent(21) if (i == 1) { println("删除成功") } else if (i == 0) { println("删除失败") }
データのクエリ
//Util代码 def selectStudent: Unit = { val selectSql = "select id,name, age, gender, telephone, email, classid from student" val rs: ResultSet = conn().createStatement().executeQuery(selectSql) println("学号\t姓名\t年龄\t性别\t手机号\t邮箱\t班级编号") while (rs.next()) { val id: Int = rs.getInt("id") val name: String = rs.getString("name") val age: Int = rs.getInt("age") val gender: String = rs.getString("gender") val telephone: String = rs.getString("telephone") val email: String = rs.getString("email") val classid: String = rs.getString("classid") println(id + "\t" + name + "\t" + age + "\t" + gender + "\t" + telephone + "\t" + email + "\t" + classid) } } //Demo测试代码 demo.selectStudent
データの変更
//Util代码 def updateStudent(id: Int, name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = { val updateSql = "update student set name=?," + "age=?, " + "gender=?," + "telephone=?," + "email=?, " + "classid=? where id=?" val preStmt: PreparedStatement = conn().prepareStatement(updateSql) preStmt.setString(1, name) preStmt.setInt(2, age) preStmt.setString(3, gender) preStmt.setString(4, telephone) preStmt.setString(5, email) preStmt.setInt(6, classid) preStmt.setInt(7, id) val i: Int = preStmt.executeUpdate() i } //Demo测试代码 val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2) if (i == 1) { println("修改成功") } else if (i == 0) { println("修改失败") }
完全なコード
MysqlUtilコード
import java.sql.{Connection, DriverManager, PreparedStatement, ResultSet} object MysqlUtil { implicit class MysqlOp(obj: MysqlDemo) { //初始化数据连接 private var connection: Connection = _ def conn(): Connection = { //注册driver Class.forName(obj.driver) //得到数据库连接 val connection: Connection = DriverManager.getConnection(obj.url, obj.user, obj.password) connection } //释放资源 def close(conn: Connection): Unit = { if (conn != null) { conn.close() } } //添加数据方法一 def insertStudent: Int = { val insertSqlStr = "insert into student(name, age, gender, telephone, email, classid)" + "values ('bbb', 6, '男', '13852277346', '3464975236@qq.com', 2)" val i: Int = conn().createStatement.executeUpdate(insertSqlStr) i } //添加数据方法二 def insertStudent(name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = { val insertSqlStr = "insert into student(id,name, age, gender, telephone, email, classid)" + "values (null,?,?,?,?,?,?)" val preStmt: PreparedStatement = conn().prepareStatement(insertSqlStr) preStmt.setString(1, name) preStmt.setInt(2, age) preStmt.setString(3, gender) preStmt.setString(4, telephone) preStmt.setString(5, email) preStmt.setInt(6, classid) val i: Int = preStmt.executeUpdate() i } //删除数据 def deleteStudent(id: Int): Int = { val deleteSql = "delete from student where id= ?" val preStmt: PreparedStatement = conn().prepareStatement(deleteSql) preStmt.setInt(1, id) val i: Int = preStmt.executeUpdate() i } //修改数据 def updateStudent(id: Int, name: String, age: Int, gender: String, telephone: String, email: String, classid: Int): Int = { val updateSql = "update student set name=?," + "age=?, " + "gender=?," + "telephone=?," + "email=?, " + "classid=? where id=?" val preStmt: PreparedStatement = conn().prepareStatement(updateSql) preStmt.setString(1, name) preStmt.setInt(2, age) preStmt.setString(3, gender) preStmt.setString(4, telephone) preStmt.setString(5, email) preStmt.setInt(6, classid) preStmt.setInt(7, id) val i: Int = preStmt.executeUpdate() i } //查询数据 def selectStudent: Unit = { val selectSql = "select id,name, age, gender, telephone, email, classid from student" val rs: ResultSet = conn().createStatement().executeQuery(selectSql) println("学号\t姓名\t年龄\t性别\t手机号\t邮箱\t班级编号") while (rs.next()) { val id: Int = rs.getInt("id") val name: String = rs.getString("name") val age: Int = rs.getInt("age") val gender: String = rs.getString("gender") val telephone: String = rs.getString("telephone") val email: String = rs.getString("email") val classid: String = rs.getString("classid") println(id + "\t" + name + "\t" + age + "\t" + gender + "\t" + telephone + "\t" + email + "\t" + classid) } } } }
Mysqlデモコード
import java.sql.Connection class MysqlDemo { // 连接数据库 底层原理还是jdbc //驱动名称 var driver = "com.mysql.cj.jdbc.Driver" // 访问MySQL服务器,通过3306端口访问mysql数据库 var url = "jdbc:mysql://192.168.152.184:3306/exam" //用户名 var user = "root" //密码 var password = "123456" //辅助构造器 def this(driver: String, url: String, user: String, pwd: String) { this() this.driver = driver this.url = url this.user = user this.password = pwd } } object MysqlDemo { // 实现apply方法 def apply(): MysqlDemo = new MysqlDemo() def apply(driver: String, url: String, user: String, pwd: String): MysqlDemo = new MysqlDemo(driver, url, user, pwd) def main(args: Array[String]): Unit = { //创建对象,调用apply方法 val demo = MysqlDemo() //导入MySQLUtil包 import MysqlUtil._ //调用创建连接的方法 val connection: Connection = demo.conn() // 调用释放资源方法 demo.close(connection) //添加数据方法一 val i: Int = demo.insertStudent if (i == 1) { println("添加成功") } else if (i == 0) { println("添加失败") } //添加数据方法二 val i: Int = demo.insertStudent("aaa", 18, "男", "12345678910", "34649756@qq.com", 1) if (i == 1) { println("添加成功") } else if (i == 0) { println("添加失败") } //查询数据 demo.selectStudent // 修改数据 val i: Int = demo.updateStudent(22, "test", 25, "女", "123456789", "369852@qq.com", 2) if (i == 1) { println("修改成功") } else if (i == 0) { println("修改失败") } //删除数据 val i: Int = demo.deleteStudent(21) if (i == 1) { println("删除成功") } else if (i == 0) { println("删除失败") } } }
以上がJava および Scala でデータベースを使用して追加、削除、確認、および変更操作を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。
