コードフラグメントの一部

  JDBCベースの学生情報を達成するための条件を変更して再検索のJava + MySQLの、追加または削除
 データベースへの接続
#db.properties
jdbc.driver = com.mysql.cj.jdbc.Driver
jdbc.url = JDBCます。mysql:// localhostを:?3306 /動物園serverTimezone = UTC
jdbc.user =ルート
jdbc.password = 0000
INITSIZE = 1
MAXACTIVE = 2
 
 
(JDBCカプセル化のための)DBUTILツール
パッケージutilの。
輸入java.io.InputStreamを。
インポートのjava.sql.Connection;
輸入ます。java.sql.SQLException;
輸入java.util.Properties;
輸入org.apache.commons.dbcp.BasicDataSource。
/ **
*データベース接続プールの接続管理ツールのバージョン
同時実行アプリケーションに適し*
* @author LvChaoZhang
*
* /
パブリッククラスDbUtils {
プライベート静的な文字列ドライバー;
プライベート静的な文字列のURL;
プライベート静的な文字列名;
プライベート静的な文字列のパスワード、
プライベートint型INITSIZE静的;
MAXACTIVEプライベート静的int型、
静的のBasicDataSourceのプライベート・BS;
静的{
//接続プール
のBasicDataSourceのBS新(=新しい);
プロパティ新しい新しいCFGは(プロパティ=);
試み{
DbUtils.class.getClassLoader =(でのInputStream)getResourceAsStream(。 "db.properties");
cfg.load()内;
//初期化パラメータ
ドライバ= cfg.getProperty( "jdbc.driver") 。
URL = cfg.getProperty( "jdbc.url");
ユーザ名= cfg.getProperty( "jdbc.user");
パスワード= cfg.getProperty( "jdbc.password");
INITSIZE = Integer.parseInt(cfg.getProperty( "INITSIZE"));
MAXACTIVE = Integer.parseInt(cfg.getProperty( "MAXACTIVE"));
in.close();
//初始化连接池
bs.setDriverClassName(ドライバ)
bs.setUrl(URL);
bs.setUsername(ユーザー名);
bs.setPassword(パスワード);
bs.setInitialSize(INITSIZE)。
bs.setMaxActive(MAXACTIVE)。
}キャッチ(例外e){
新規のRuntimeException(e)を投げます。
}
}
接続のgetConnection静的パブリック(){
試み{
接続プールが満杯である場合、戻り接続は、再利用可能な得るために接続されている場合//のgetConnection()は、待って、再利用の接続プールから接続を取得
CONN = bs.getConnection()接続を;
;コネチカットを返す
キャッチ(のSQLException E){}
e.printStackTrace()
;新しい新規のRuntimeExceptionを(スロー)
}
}
公共の静的な無効ロールバック(接続conn)を{
(!connの= null)を場合{
{みてください
)(conn.rollbackを。
}キャッチ(のSQLException E){
// TODO自動生成キャッチブロック
e.printStackTrace();
}
}
}
公共の静的な無効近い(接続connが){
(!connの= null)を場合{
{試みる
//将用过的连接归还到连接池中
はconn.close();
}キャッチ(のSQLException E){
// TODO自動生成キャッチブロック
e.printStackTrace();
}
}
}
}
 
DAO:主DBUTIL対応する変更検索操作model--削除を呼び出します
 
パッケージDAO。
輸入はjava.util.List;
entity.Studentインポート;
学生はインターフェース//
パブリックインターフェイスStudentDAO {
//抽象メソッドは、学生を照会、学生が全体を返す
パブリックリストを<学生> findStudent();
//は、学生を保存し、戻り値は空で、学生を維持する必要性がで合格します情報
ます。public void保存(学生STU);
// stuId学生情報によるクエリは、学生のオブジェクトが返される
(int型stuId)公共学生findByIdを;
// Studentオブジェクトに渡された更新操作、ノーリターン値変更
公共ボイドupdateStudentを(学生学生);
//に従ってを削除する操作を削除するには、stuId
ます。public void deleteStudentを(int型stuId);
}
 
 
 
 
 
パッケージDAO。
インポートしたjava.io.Serializable;
インポートのjava.sql.Connection;
インポートのjava.sql.PreparedStatement;
インポートのjava.sql.ResultSet;
輸入java.sql.Statementの。
輸入はjava.util.ArrayList;
輸入はjava.util.List;
輸入entity.Student。
輸入sun.management.snmp.util.SnmpListTableCache;
輸入util.DbUtils。
パブリッククラスStudentDaoImplは、StudentDaoを{Serializableを実装します
/ **
*
* /
プライベート静的最終長いserialVersionUIDの= 1L;
一覧公共<学生> findStudent(){
接続コネティカット= NULL;
試み{
//接続なさい
コネティカットDbUtils.getConnection =();
//クエリの実行
文字列= SQLは"学生からのSELECT *";
ステートメントconn.createStatement SM =( );
//クエリが結果を取得
するResultSet RSを= sm.executeQuery(SQL);
//セットが学生格納するために使用されるオブジェクトのリスト作成する
一覧<学生> ArrayListのリストは=新しい新しい<学生>();
しばらく(rs.next()){
//学生は、オブジェクト生成
、生徒、生徒=新しい学生()
//学生それぞれの情報記憶
、student.setStuId(rs.getInt( "stuId"))
student.setStuName(rs.getString( "stuname"));
学生。 setStuSex(rs.getString( "stuSex"));
student.setStuTel(rs.getString( "stuTel"));
student.setStuDisc(rs.getString( "stuDisc"));
student.setScore(rs.getString( "スコア"));
//コレクションへの学生
list.add(学生);
}
戻りリスト;
}キャッチ( E例外){
E、RuntimeExceptionが新新(「見つからない学生を」投げる);
}最後に{
//接続クローズ
DbUtils.close(コネティカット州)を;
}
}
学生情報保存//
(学生STU){保存公共空間を
接続コネティカット= NULL;
試み{
//接続を取得
CONNを= DbUtils.getConnection();
文字列のSQLが= "学生値のINSERT INTO(,,,,, ??????)";
PreparedStatementのPS = conn.prepareStatement(SQL)、
PS .setObject(1、stu.getStuId());
ps.setString(2、stu.getStuName())。
ps.setString(3、stu.getStuSex());
ps.setString(4、stu.getStuTel());
ps.setString(。5、stu.getStuDisc());
。ps.setString(6、stu.getScore() );
ps.executeUpdate(); //実行のインサートの文 
}キャッチ(例外E){
()E、 "学生の情報を保存することができません"のRuntimeException新新投げる;
} {最後に
DbUtils.close(コネティカット州)を;
}
}
// stuIdの学生によってクエリ
公共学生findById(int型stuId){
接続CONN = NULL;
試す{
CONN = DbUtils.getConnection()。
文字列のSQL = "?どこstuId =学生SELECT * FROM";
PreparedStatementのPS = conn.prepareStatement(SQL)。
ps.setInt(1、stuId)。
//执行SQL语句
のResultSet RS = ps.executeQuery()。
学生の学生=新学生();
IF(rs.next()){ 
student.setStuId(rs.getInt( "stuId"));
student.setStuName(rs.getString( "stuName"));
student.setStuSex(rs.getString( "stuSex"));
student.setStuTel(rs.getString( "stuTel"));
student.setStuDisc(rs.getString( "stuDisc"));
student.setScore(rs.getString( "スコア"));
}
学生を返します。


}最後に{
DbUtils.close(CONN)。
}
}
//更新操作
公共ボイドupdateStudent(学生学生){
接続CONN = NULL; 
試す{
CONN = DbUtils.getConnection()。
文字列のSQLは= "?stuName = ?, stuSex = ?, stuTel = ?, stuDisc = ?,スコア=どこstuId =設定の更新学生?"。
PreparedStatementのPS = conn.prepareStatement(SQL)。
ps.setString(1、student.getStuName())。
ps.setString(2、student.getStuSex())。
ps.setString(3、student.getStuTel())。
ps.setString(4、student.getStuDisc())。
ps.setInt(5、student.getStuId())。
ps.setString(6、student.getScore())。
//更新操作
ps.executeUpdate();
}キャッチ(例外e){
;新しいのRuntimeException( "更新に失敗しました"、E)投げる
} {最後に
DbUtils.close(コネティカットを);
}
}
//削除し
ます。public void deleteStudent(int型stuId){
;接続コン= nullのを
試してみる{
)コネティカット= DbUtils.getConnection( ;
文字列のSQL = "stuId =学生から削除しますか?";
PreparedStatementのconn.prepareStatement PS =(SQL);
ps.setInt(1、stuId。);
//操作を実行
ps.executeUpdate();
}キャッチ(例外E){
新規のRuntimeExceptionをスローする( "失敗削除"、E);
} {最後に
DbUtils.close(コネティカット);
}
}
/ *試験方法削除
パブリック静的無効メイン(文字列[] args){
StudentDAO DAO新しい新しいStudentDaoImplを=();
dao.deleteStudent(2018004)。
}
* /
/ *試験方法stuIdによって
パブリック静的無効メイン(文字列[] args){
StudentDAO DAO新しい新しいStudentImpl =();
学生学生dao.findById =(2018001)
のSystem.out.println(student.getStuName()) ;
}
* /
/ *テスト保存
パブリック静的無効メイン(文字列[] args){
StudentDAO DAO新しい新しいStudentImpl =();
学生学生新しい新しいSTU =を();
stu.setStuId(2018003);
stu.setStuName( "小花") ;
stu.setStuSex( "F");
stu.setStuTel( "123");
stu.setStuDisc( "花が良い女の子である");
dao.save(STU);
}
* /
/ *テスト
パブリック静的な無効メイン(文字列[]引数){
StudentDAO DAO新しい新しいStudentImpl =();
一覧<学生>学生= dao.findStudent();
(学生の学生:学生)のための{
System.out.printlnは(student.getStuName());
}
}
* /
}

おすすめ

転載: www.cnblogs.com/ting-3/p/10991166.html
おすすめ