Javaデータベースプログラミング
1.リレーショナルデータベースシステム
1.データベースシステムの構造
2.リレーショナルデータベースシステム
リレーショナルデータベースシステムでは、行はタプルであり、列は属性を表します
Two.SQL
1.まず、コマンドラインでMySQLファイルが配置されているbinディレクトリを入力します
2.root権限でデータベースにログインします
2. MySqlとTestが必要なデータベースが存在するかどうかを確認します。MySqlは、サーバー情報やその他のユーザー情報テーブルの保存に使用されます。ユーザーの作成、権限の付与、ユーザーの取り消し、管理者向けの作成に使用されます。テストデータベースが使用されます。データを保存するか、新しいデータベースを作成します。
3.「Bob」という名前のユーザーと「123」のパスワードを作成します
。4。アクセス許可を付与し
ます。5。任意のIPからのアクセス権限を付与します。6 。
特定のIPからのリモートアクセス権限を付与
します
。7。Bobを使用して他の一般的なMySqlコマンドにログインします。 :
exit;//退出
net stop mysql;//停止mysql服务
net start mtsql;//开启mysql服务
source script.sql;//运行sql脚本文件
\c //退出当前命令,重新输入
show grants;//查看权限
3. JDBC
1. JDBCは、リレーショナルデータベースにアクセスするためのAPIであり、データベースにアクセスして操作するためのインターフェイスを提供します。
2.Javaでデータベースアプリケーションを開発するために必要な4つのインターフェイス:
Driver//加载一个合适的驱动
Connection//连接到数据库
Statement//创建和运行SQL语句
ResultSet//处理结果
データベースにアクセスするための4つの一般的な手順
[拡張機能] mysql jarパッケージをEclipseIDEに追加します。アクセスして、jarパッケージをeclipseにインポートできます。
1.適切なドライバーをロードする
使用するデータベースはmySqlなので、MySqlデータベースドライバーをロードします
public static void main(String[] args) {
try {
//第一步:加载合适的驱动
Class.forName("com.mysql.jdbc.Driver");
//下面打印语句测试驱动是否加载成功,可选择性添加
System.out.println("驱动加载成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
2.接続を作成します
//第二步:建立连接
Connection connection=DriverManager.getConnection("jdbc:mysql://192.168.0.103/javabook","Bob","123");
//Javabook数据库是登录Bob用户新创建的
【拡張】
データベース | URLパターン |
---|---|
アクセス | jdbc:odbc:dataSource |
MySql | jdbc:mysql:// hostname / dbname |
オラクル | jdbc:oracle:thin:@hostname:port#:oracleDBSID |
3.SQLステートメントを作成します
パラメータなし:ステートメントインターフェイス
//第三步:创建SQL语句
Statement statement=connection.createStatement();
パラメータの有無にかかわらず使用できます:PreparedStatementインターフェイス
PreparedStatement ps=connection.prepareStatement("select firstName,lastName from student where ssn=?");
[注] PreparedStatementインターフェイスを使用するには、SQLステートメントを作成する必要があります。(疑問符)はプレースホルダーを表し、値をセッター修飾子に渡します
ps.setString(1,"444111110");//1代表传给第几个参数,后面的代表传的内容
SQLの実行に使用されるストアドプロシージャ:CallableStatementインターフェイス
CallableStatement cs=connection.prepareCall("{call samplePrepare (?,?,?)}");///三个?代表转义语句;samplrPrepare是已经创建好的存储过程
実行ステートメント:結果セットインターフェイス
ResultSet rs=ps.executeQuery();//执行查询语句
ResultSet rs2=ps.executeUpdate();//执行更新语句
プロセス結果
方法:現在の初期位置がnullの場合、次の方法に進みます
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));//分别是firstName和lastName
}
最終的な実行結果
5.メタデータを取得する
- DatabaseMetaDataインターフェース:データベース全体の情報を取得します
DatabaseMetaData dmd=connection.getMetaData();
結果:
情報がデータベースの範囲内にある限り、これら2つの情報だけを取得することはできません。
- ResultSetMetaDataインターフェイス:結果セットのメタデータを取得します
ResultSetMetaData rsmd=rs.getMetaData();
for(int i=1;i<=rsmd.getColumnCount();i++){
System.out.printf("%-10s\t",rsmd.getColumnName(i));
}
結果:
【補足】
- Java6はドライバーを明示的にロードする必要はありません
- 「。」を分割するときは、splitメソッドをエスケープする必要があります。
いい加減にして!