Java基础总结(数据库)
首先我开始学习Java。
我将从非常基础的水平开始写作。
我会创建自己可以复习的备忘录。
数据库连接机制
数据库 (DB)这是整理和积累数据的东西。也称为数据库(DB)。
数据是资料。是基本事实。是通过实验、观察、调查和统计处理获得的数字信息。
base有”基地”的意思,直译过来就是一种”信息的基地”类似的东西。
数据库 (DB)这是整理和积累数据的东西。也称为数据库(DB)。
数据是资料。是基本事实。是通过实验、观察、调查和统计处理获得的数字信息。
base有”基地”的意思,直译过来就是一种”信息的基地”类似的东西。
能管理数据的软件。
还有各种不同类型的软件,可以根据选择的数据库进行开发。
-
- Oracle
- MySQL
有各种各样的数据库软件可供选择。
JDBC:Java数据库连接。Java数据库连接(JDBC)的缩写,是用于将Java和数据库连接的一组类和接口所起的作用。
-
JDBC API
- JDBC API
-
- APIとはプログラムやサービスの機能を外部から使えるようにする仕組みや利用方法
-
- JDKに含まれるパッケージなので、一般的なJava環境が整っていれば使用できる。
-
- JDBC ドライバ
- 各DBの開発元が公開してくれている。各サイトのDLページなどからダウンロードできるようになっていたりする。
它是由两个部分构建而成的。
JDBC驱动程序的作用是什么?JDBC驱动器具备吸纳各个数据库的差异的功能。
即使每个数据库的处理方式不同,Java程序也几乎不需要改动,因为JDBC驱动器可以吸收这些差异。
SQL (Structured Query Language) 在中国人调香热衷于固化查询语言结构化查询语言(SQL)是一种用于操作数据库的结构化查询语言。
流动
-
DB和JDBC驱动的安装
流动
-
DB和JDBC驱动的安装
- DB和JDBC驱动的安装
-
- SQL操作
-
- JDBC编程
- Web应用程序集成
按照以下顺序进行
事前准备(安装DB和JDBC驱动程序)在本文中,我们将使用MySQL进行操作。
MySQL的安装MySQL是一种常用的开源数据源(OSS)的数据库。
OSS是Open Source Software的缩写,其源代码是公开的,
可以免费使用、修改和再分发的软件。
OSS是Open Source Software的缩写,其源代码是公开的,
可以免费使用、修改和再分发的软件。
本次我们将使用MySQL Community Server。
请参考下面的YouTube视频来进行操作。
需要设置管理者账户“root”的密码。
在中国,只需要一种中文选项的话,可以将以下句子释义为:
下载JDBC驱动程序只需下载。只是有点难以理解应该下载哪一个。
请参考下方的Youtube视频进行操作。
设定环境变量需要非常小心地进行操作。如果设置错误可能会影响其他程序。
-
PATHの設定
- PATHの設定
-
- MySQL内のbinフォルダの場所を指定する
-
- CLASSPATHの設定
- JDBCドライバーのファイルを指定する
其他术语等
-
JARファイル(Java ARchive)
- JARファイル(Java ARchive)
-
- クラスファイルなどを圧縮してまとめたファイル
- 「~.jar」
SQL是什么?SQL是操作关系数据库(RDB)的标准语言,也是最常用的数据库操作语言。
换句话说,操作数据库的语言不仅仅是SQL。
还有XQuery/OQL/GraphQL/LINQ等等。
SQL的基础入门开始深入研究SQL的实际操作。
首先,在SQL中不区分大小写。
使用大写或小写取决于具体场景。
在数据库中,有一种称为“表”的细分分类。
它类似于Excel的表格,用于整理信息。
纵轴被称为“列”,横轴被称为“行”。
有时也将一行的数据称为“记录”。
数据定义语言(DDL)能够进行数据库和表的创建和修改的语言。
创建
修改
删除等
数据操作语言(DML) ※特别常用对数据表格中的数据进行操作的编程语言。这是最常用的一种。
查询(取得)
插入(挿入)
更新(更新)
删除(削除)等
例如,获取登录信息和进行会员注册等操作可以使用 DML(数据操作语言)来向表中添加记录。
数据控制语言(DCL)哪个用户可以访问哪个表格?这种语言用于权限管理。
授权 (Grant)
取消授权 (Revoke)
我第一次尝试进行SQL操作从实际的简单操作步骤开始执行。
创建数据库表
CREATE DATABASE データベースの名前;
CREATE TABLE データベース名.表名(列名 データ型,~);
//例
CREATE TABLE sampledb.student(no int PRIMARY KEY,name varchar(10),score int);
CREATE DATABASE データベースの名前;
CREATE TABLE データベース名.表名(列名 データ型,~);
//例
CREATE TABLE sampledb.student(no int PRIMARY KEY,name varchar(10),score int);
由于MySQL的数据类型与Java的感觉有点不同,所以在进行注册时最好进行一些调查。
通过在数据类型后面加上「PRIMARY KEY」,保证数据的唯一性。而数据的唯一性意味着不能注册相同的数据。具体来说,会员编号就是一个例子。
查看数据库和表的方法在命令提示符中启动MySQL后介绍在SQL中执行的命令。
show databases;
show tables in データベース名;
desc データベース名.テーブル名;
在进行表操作之前
use データベース名;
//これから触るデータベースにしてから作業スタートするように。
source ~.sql;
show databases;
show tables in データベース名;
desc データベース名.テーブル名;
use データベース名;
//これから触るデータベースにしてから作業スタートするように。
source ~.sql;
主要是使用命令操作,但是可以通过将命令汇总到SQL文件中来一次性执行SQL文件中的命令。
所有在「~.sql」文件中的内容将被读取并执行命令。
在SQL中进行数据操作(SELECT语句)。当需要获取表格内的数据时使用
SELECT 列名 FROM 表名;
//列名は「,」で区切って複数指定可能
SELECT * FROM student;
//studentテーブルの情報をすべて取得
SELECT no , score*0.5 FROM student
//studentテーブルの中の「no」行と「score」行に0.5の掛け算をした値を出力
//ここでの*は数値に挟まれているので計算式として扱われる。
SELECT 列名か* FROM テーブル名 ORDER BY 対象の列名 ASCかDESC;
//ASCか昇順、DESCが降順
SELECT 列名か* FROM テーブル名 LIMIT 件数;
SELECT 列名か* FROM テーブル名 WHERE 列名 IS NULL;
SELECT 列名か* FROM テーブル名 WHERE 列名 IS NOT NULL;
SELECT 列名か* FROM テーブル名 WHERE 列名 >= 10;
SELECT 列名か* FROM テーブル名 WHERE 列名 IN (A,B);
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '検索文字%';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '%検索文字';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '%検索文字%';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '検索文字%' AND 列名 LIKE '%検索文字%';
//比較演算子や中身にデータがあるかどうかなど指定できる
select player from game as gm join goal as go on gm.id=go.matchid
where stadium = 'National Stadium, Warsaw';
//asはテーブル名の別名を設定(省略もできる)、joinは関連するテーブルの追加on以下で共通項の設定をする。
SELECT title, name FROM movie m
JOIN casting c ON m.id=c.movieid
JOIN actor a ON a.id=c.actorid
WHERE
yr=1962
AND
ord = 1;
select title, name
from movie m, casting c, actor a
where
c.movieid=m.id
and c.actorid=a.id
and ord=1
and movieid in
(select movieid
from casting, actor
where actorid=actor.id
and name='Julie Andrews')
SELECT distinct(player)
FROM game ga JOIN goal go ON go.matchid = ga.id
WHERE (team1='GER' or team2='GRE')AND teamid <> 'GRE';
//同じ要件が複数重複している場合disinctで重複分をまとめてくれる
SELECT name FROM teacher
WHERE dept IS NULL;
SELECT name,COALESCE(mobile,'未登録') FROM teacher
select
name,
case when dept=1 then 'Sci'
when dept=2 then 'Sci'
else 'Art' end
from
teacher;
SELECT 列名 FROM 表名;
//列名は「,」で区切って複数指定可能
SELECT * FROM student;
//studentテーブルの情報をすべて取得
SELECT no , score*0.5 FROM student
//studentテーブルの中の「no」行と「score」行に0.5の掛け算をした値を出力
//ここでの*は数値に挟まれているので計算式として扱われる。
SELECT 列名か* FROM テーブル名 ORDER BY 対象の列名 ASCかDESC;
//ASCか昇順、DESCが降順
SELECT 列名か* FROM テーブル名 LIMIT 件数;
SELECT 列名か* FROM テーブル名 WHERE 列名 IS NULL;
SELECT 列名か* FROM テーブル名 WHERE 列名 IS NOT NULL;
SELECT 列名か* FROM テーブル名 WHERE 列名 >= 10;
SELECT 列名か* FROM テーブル名 WHERE 列名 IN (A,B);
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '検索文字%';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '%検索文字';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '%検索文字%';
SELECT 列名か* FROM テーブル名 WHERE 列名 LIKE '検索文字%' AND 列名 LIKE '%検索文字%';
//比較演算子や中身にデータがあるかどうかなど指定できる
select player from game as gm join goal as go on gm.id=go.matchid
where stadium = 'National Stadium, Warsaw';
//asはテーブル名の別名を設定(省略もできる)、joinは関連するテーブルの追加on以下で共通項の設定をする。
SELECT title, name FROM movie m
JOIN casting c ON m.id=c.movieid
JOIN actor a ON a.id=c.actorid
WHERE
yr=1962
AND
ord = 1;
select title, name
from movie m, casting c, actor a
where
c.movieid=m.id
and c.actorid=a.id
and ord=1
and movieid in
(select movieid
from casting, actor
where actorid=actor.id
and name='Julie Andrews')
SELECT distinct(player)
FROM game ga JOIN goal go ON go.matchid = ga.id
WHERE (team1='GER' or team2='GRE')AND teamid <> 'GRE';
//同じ要件が複数重複している場合disinctで重複分をまとめてくれる
SELECT name FROM teacher
WHERE dept IS NULL;
SELECT name,COALESCE(mobile,'未登録') FROM teacher
select
name,
case when dept=1 then 'Sci'
when dept=2 then 'Sci'
else 'Art' end
from
teacher;
▼加入的使用方法
▼如何使用GROUP BY
使用SQL进行数据操作(插入语句)。
当我们想要插入表内的数据时使用。
INSERT INTO 表名(列名:省略可) VALUES(挿入したい値)
//例
INSERT INTO student VALUES(1,'山田',80);
「''」で囲ったものは文字列であるということを示している。
//例2
INSERT INTO student(no,name) VALUES(1,'山田');
列を指定して挿入することもできる
在SQL中进行数据操作(更新语句)。在想要更新表内数据时使用
UPDATE 表名 SET 列名 = 列値;
//列名 = 列値は「,」で複数記述できる
//例
UPDATE student SET score = score+5;
用SQL进行数据操作(删除指令)您可以删除表中的数据。 de .)
DELETE FROM 表名;
//例
DELETE FROM student
studentテーブルのデータをすべて削除
用SQL进行条件筛选(选择语句)通过使用”WHERE子句”,可以在SELECT语句/UPDATE语句/DELETE语句中指定条件。
而在进行条件指定时,还必须具备操作符的知识。
-
関係演算子 >,>=,<,<=,=,<>
INSERT INTO 表名(列名:省略可) VALUES(挿入したい値)
//例
INSERT INTO student VALUES(1,'山田',80);
「''」で囲ったものは文字列であるということを示している。
//例2
INSERT INTO student(no,name) VALUES(1,'山田');
列を指定して挿入することもできる
UPDATE 表名 SET 列名 = 列値;
//列名 = 列値は「,」で複数記述できる
//例
UPDATE student SET score = score+5;
用SQL进行数据操作(删除指令)您可以删除表中的数据。 de .)
DELETE FROM 表名;
//例
DELETE FROM student
studentテーブルのデータをすべて削除
用SQL进行条件筛选(选择语句)通过使用”WHERE子句”,可以在SELECT语句/UPDATE语句/DELETE语句中指定条件。
而在进行条件指定时,还必须具备操作符的知识。
-
関係演算子 >,>=,<,<=,=,<>
DELETE FROM 表名;
//例
DELETE FROM student
studentテーブルのデータをすべて削除
而在进行条件指定时,还必须具备操作符的知识。
-
- 関係演算子 >,>=,<,<=,=,<>
-
- (=はjavaの==と同義、<>はjavaの!=と同義)
-
- 論理演算子 AND,OR,NOT
- 特殊演算子 BETWEEN,LIKE
SELECT {*1列名} FROM 表名[WHERE 取得条件]
//列名は「,」で複数指定可
//例1
SELECT * FROM student WHERE 50<=score AND score<=80;
//例2
SELECT * FROM student WHERE score BETWEEN 50 AND 80;
//例3
SELECT * FROM student WHERE name LIKE '%原';
%は0文字以上の任意の文字列。「~原」を抜き出す。「原」もOK。
使用SQL进行条件指定(UPDATE语句)
UPDATE 表名 SET 列名=値 WHERE 更新条件
//例
UPDATE student SET score=score+5 WHERE no=1;
使用SQL时对条件进行指定(DELETE语句)
DELETE FROM 表名 WHERE 更新条件
//例
DELETE FROM student WHERE no=1;
关于JDBC当涉及使用Java操作数据库时,由于其超重要性,需要详细描述。
在处理JDBC之前必须将JDBC驱动程序设置在环境变量CLASSPATH中。
JDBC更新处理程序的流程
将连接到数据库。处理DriverManager类。
DriverManager类是用来管理JDBC驱动程序的类。
可以使用getConnection方法来进行操作。
Connection con = Driver.Manager.getConnection(JDBCURL,username,pass);
//接続するDBを指定する文字列
//URL:jdbc:mysql://dbサーバー名(localhost)/DB名
//MySQLはURLの形だが、違うデータベースはそれぞれ指定の形で行う
//変数conを作る
生成语句管理DB的连接信息
Statement stmt = con.createStatement();
//変数conを使う
//変数stmtを作る
执行SQL执行 SQL
int count=stmt.executeUpdate(SQL文);
//変数stmtを使う
//変数countには変更件数が入る
释放资源
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
UPDATE 表名 SET 列名=値 WHERE 更新条件
//例
UPDATE student SET score=score+5 WHERE no=1;
DELETE FROM 表名 WHERE 更新条件
//例
DELETE FROM student WHERE no=1;
关于JDBC当涉及使用Java操作数据库时,由于其超重要性,需要详细描述。
在处理JDBC之前必须将JDBC驱动程序设置在环境变量CLASSPATH中。
JDBC更新处理程序的流程
将连接到数据库。处理DriverManager类。
DriverManager类是用来管理JDBC驱动程序的类。
可以使用getConnection方法来进行操作。
Connection con = Driver.Manager.getConnection(JDBCURL,username,pass);
//接続するDBを指定する文字列
//URL:jdbc:mysql://dbサーバー名(localhost)/DB名
//MySQLはURLの形だが、違うデータベースはそれぞれ指定の形で行う
//変数conを作る
生成语句管理DB的连接信息
Statement stmt = con.createStatement();
//変数conを使う
//変数stmtを作る
执行SQL执行 SQL
int count=stmt.executeUpdate(SQL文);
//変数stmtを使う
//変数countには変更件数が入る
释放资源
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
JDBC更新处理程序的流程
将连接到数据库。处理DriverManager类。
DriverManager类是用来管理JDBC驱动程序的类。
可以使用getConnection方法来进行操作。
Connection con = Driver.Manager.getConnection(JDBCURL,username,pass);
//接続するDBを指定する文字列
//URL:jdbc:mysql://dbサーバー名(localhost)/DB名
//MySQLはURLの形だが、違うデータベースはそれぞれ指定の形で行う
//変数conを作る
生成语句管理DB的连接信息
Statement stmt = con.createStatement();
//変数conを使う
//変数stmtを作る
执行SQL执行 SQL
int count=stmt.executeUpdate(SQL文);
//変数stmtを使う
//変数countには変更件数が入る
释放资源
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
DriverManager类是用来管理JDBC驱动程序的类。
可以使用getConnection方法来进行操作。
Connection con = Driver.Manager.getConnection(JDBCURL,username,pass);
//接続するDBを指定する文字列
//URL:jdbc:mysql://dbサーバー名(localhost)/DB名
//MySQLはURLの形だが、違うデータベースはそれぞれ指定の形で行う
//変数conを作る
生成语句管理DB的连接信息
Statement stmt = con.createStatement();
//変数conを使う
//変数stmtを作る
执行SQL执行 SQL
int count=stmt.executeUpdate(SQL文);
//変数stmtを使う
//変数countには変更件数が入る
释放资源
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
Statement stmt = con.createStatement();
//変数conを使う
//変数stmtを作る
int count=stmt.executeUpdate(SQL文);
//変数stmtを使う
//変数countには変更件数が入る
释放资源
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
stmt.close();
con.close();
//作った変数を作った順と逆順でstmt⇒conの順番で閉じる
让我们实际看一下代码。
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
public class InsertStudent{
public static void main(String[] args){
//「①DBに接続」で使う引数を事前に設定
final String URL = "jdbc:mysql://localhost/sampledb";
final String USER = "root";
final String PASS = "pass";
//「③SQLを実行」で使う引数を事前に設定
String sql = "INSERT INTO student VALUES(6,'Kobayashi',95)";
//変数conとstmtを事前にnullで定義
Connection con = null;
Statement stmt = null;
//try内で定義してしまうと、try内でしか使えないのでconとstmtがcloseできない
try{
//①DBに接続
con = DriverManager.getConnection(URL, USER, PASS);
//②ステートメントを生成
stmt = con.createStatement();
//③SQLを実行
int count = stmt.executeUpdate(sql);
System.out.println( count + "件更新しました");
} catch(Exception e){
//tryの中でエラーが発生したときのエラー表示
e.printStackTrace();
} finally {
try{
//④リソースを解放
//例外が発生しても必ず実行されるfinallyブロックに
//nullだとcloseができないのでif文に入れている
if(stmt != null) stmt.close();
if(con != null) con.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
}
//conとstmtは必ずラストにcloseしなければならない
JDBC搜索处理程序的流程
执行SQL在更新处理和搜索处理中,执行SQL语句时的方法不同。
在更新时,返回值是数字;在搜索时,返回值是搜索结果。
ResultSet rs = stmt.executeQuery(SQL文);
//ResultSet検索した結果を保持している
处理搜索结果
while(rs.next()){
//getterメソッド呼び出しデータ型により記述内容が変わる
}
//nextメソッドは行(横軸)の移動、データがあれば戻り値はtrue、なければfalse
//gettterメソッドは列(縦軸)へのアクセス
//getXxx("列名"/列番号)列番号は1から始まる
//String name = rs.getString("name");
释放资源同样需要释放资源的是搜索处理。
rs.close();
stmt.close();
con.close();
在更新时,返回值是数字;在搜索时,返回值是搜索结果。
ResultSet rs = stmt.executeQuery(SQL文);
//ResultSet検索した結果を保持している
处理搜索结果
while(rs.next()){
//getterメソッド呼び出しデータ型により記述内容が変わる
}
//nextメソッドは行(横軸)の移動、データがあれば戻り値はtrue、なければfalse
//gettterメソッドは列(縦軸)へのアクセス
//getXxx("列名"/列番号)列番号は1から始まる
//String name = rs.getString("name");
释放资源同样需要释放资源的是搜索处理。
rs.close();
stmt.close();
con.close();
while(rs.next()){
//getterメソッド呼び出しデータ型により記述内容が変わる
}
//nextメソッドは行(横軸)の移動、データがあれば戻り値はtrue、なければfalse
//gettterメソッドは列(縦軸)へのアクセス
//getXxx("列名"/列番号)列番号は1から始まる
//String name = rs.getString("name");
rs.close();
stmt.close();
con.close();
让我们实际动手编写代码吧。
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
public class SelectAllStudent{
public static void main(String[] args){
final String URL = "jdbc:mysql://localhost/sampledb";
final String USER = "root";
final String PASS = "pass";
String sql = "SELECT * FROM student";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try{
//①DBに接続
con = DriverManager.getConnection(URL, USER, PASS);
//②ステートメントを生成
stmt = con.createStatement();
//③SQLを実行
rs = stmt.executeQuery(sql);
//④検索結果の処理
System.out.println("+-------+-------+-------+");
System.out.println("| no | name | score |");
System.out.println("+-------+-------+-------+");
while(rs.next()){
System.out.print("| " + rs.getInt("no") + "\t");
System.out.print("| " + rs.getString("name") + "\t");
System.out.println("| " + rs.getInt("score") + "\t|");
}
System.out.println("+-------+-------+-------+");
} catch(Exception e){
e.printStackTrace();
} finally {
try{
//⑤リソースの解放
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
}
使用预编译语句。
预备的意思是已经准备好的。
这种方法是在语句阶段将SQL语句作为参数传递的方法。
可以事先编写指定了IN参数的SQL语句,并使用setter方法简便地将值赋给SQL语句的IN参数。
操作步骤指定一个包含IN参数的SQL语句
IN参数是指(?.?.?)
INSERT INTO students VALUES(?.?.?)
INSERT INTO students VALUES(?.?.?)
使用setter方法来设置值到?
使用setter函数来给?赋值。
ps.setInt(1,7);
ps.setString(2,"藤原");
//データ型は第2引数に合わせる
//第1引数は?の位置を指定している
执行SQL
必须关闭资源。
让我们实际动手写一次
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
public class InsertStudent2{
public static void main(String[] args){
final String URL = "jdbc:mysql://localhost/sampledb";
final String USER = "root";
final String PASS = "pass";
String sql = "INSERT INTO student VALUES(?, ?, ?)";
String[] names = {"sato", "yamada", "kawata", "uchida"};
int[] scores = {90, 85, 80, 75};
Connection con = null;
PreparedStatement ps = null;
try{
//①DBに接続
con = DriverManager.getConnection(URL, USER, PASS);
//②ステートメントを生成
ps = con.prepareStatement(sql);
//③SQLを実行
for(int i = 0; i < names.length; i++){
ps.setInt(1, i + 7);
ps.setString(2, names[i]);
ps.setInt(3, scores[i]);
ps.executeUpdate();
}
System.out.println( names.length + "件更新しました");
} catch(Exception e){
e.printStackTrace();
} finally {
try{
//リソースの解放
if(ps != null) ps.close();
if(con != null) con.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
}
涉及Web应用的关键词
这里只是简单介绍一下关键词,不做详细解释。
MVC模型将应用程序分为模型、视图和控制器三部分,并相互作用来搭建应用程序的机制。这种机制在之前自己学习的Ruby on Rails中也被使用,Java也采用了类似的机制。
由于MVC模型的详细介绍在另一篇文章中已经整理好,请参考那篇文章。
在Java的MVC中的关键词Ruby on Rails和Java的MVC模型有一个很大的区别,就是Java的MVC模型要根据Java的语法规范来创建。而在Ruby on Rails中,由于每个MVC组件的编写方式都不同,所以这是一个很大的区别。
DAO
Data Accces Objectの略。
MVCモデルのモデルに当たる。
データベースとのやりとりの箇所のみ。
基本的にSQLがらみの記述はDAOにするイメージ。
サーブレット
MVCモデルのコントローラーに当たる。
JSP
Java Server Pagesの略
MVCモデルのビューに当たる。HTMLなどで記述する。
Java的MVC要点 (Java de MVCDAO和Servlet是一种能够连接已存在的类之间的语法,可以建立它们之间的连接。
StuDAO sdao = new StuDAO;
//この記述で「StuDAO」という名前のDAOファイルと接続ができる。
-
DTO
StuDAO sdao = new StuDAO;
//この記述で「StuDAO」という名前のDAOファイルと接続ができる。
- DTO
-
- Data Transfer Object
- データを転送するために使用するクラス
StuDTO select(){...}
//テーブル内の情報をすべて取得するイメージ
Entitiyクラス
テーブルの1行分を転送するために使用するクラスのこと。DTOの中の1つのようなイメージ。
DTOにadd,get,sizeメソッドなどの、一覧から表示するようなメソッドを定義。
Entityにはテーブル内の項目(氏名、生徒番号)などの情報に基づいたset,getメソッドの定義が必要
DAOとDTOとEntity
すごくふんわりしたイメージ。
クラスの種類。3クラスとも必ず事前に定義が必要。
DAOはデータ取得
DTOはデータ転送(全件データ)
Entityはデータ転送のより詳細な指示(詳細データ)
DTOとEntityはDAOを補助するツールクラスみたいなイメージ
一覧情報をDTOで取得し、Entityで1行などの詳細情報を取得するイメージ。
EntityはBeansなどの変数で定義されることが多い。
与网络应用程序相关的应用编辑
关于网页制作,实际操作中在创建时要进行反复检查和重新组装。