MVCプログラミング思想例(java,jdbc操作mysqlデータベースに基づいてログイン登録を実現)
20441 ワード
1.mvcは、MVC(Model View Controllerモデル-ビュー-コントローラ)を使用してWebプログラムを設計するアプリケーションモードです.MVC階層化は、異なる開発者がビュー、コントローラロジック、ビジネスロジックを同時に開発できるように、パケット開発を簡素化します.
Modelはアプリケーションでプログラムデータロジックを処理するための部分であり、通産ロジック部分はアプリケーションデータロジック部分を処理するために使用される.通常、モデル・オブジェクトは、データベースにオブジェクトを格納します.Viewは、アプリケーションにおける処理データ表示部である.通常ビューは、モデルデータに基づいて作成されます. Controller階層化は、アプリケーションの管理に役立ち、1つの部分に集中できます.
2.内容摘要:javaはJDBCを通じてmysql操作データベースを操作し、ユーザーの登録と登録機能を実現する.MVCプログラミングの思想によって異なる登録と登録の機能をカプセル化し、プログラムの入力、処理、出力を分離させる. JDBCはどのようにデータベースを操作して、私の令の1篇の博文を参照してください.JAva jdbc操作mysql(クイック理解) 3.操作構造
M:JDBCを使用して、検索および追加されたデータのクラスを実装します.この2つのメソッドを検索して追加するとbooleanタイプの値が返されます.
V:Mの1つのビューを与え、Mの戻り値を判断することでログイン登録の結果を判断し、結果を出力する.
C:ユーザーの入力を受け入れることで、ヒューマンマシンのインタラクションを実現する.
4.構造実現
・M部:propertiesファイルを使用してファイルパラメータを抽出する(JDBCとmysqlの接続情報を格納する) JDBC接続、コンパイル、クローズなどの操作パッケージをツールクラス として使用データベースに対応するパラメータ(本明細書ではユーザ名とパスワード) を格納するエンティティクラスを作成する
・コード実装
1.現在の作業ディレクトリの下にjdbcを作成する.propertiesファイル、ファイルに次の内容を追加します.
2.パッケージツール類
3.エンティティークラスの作成:
・V部
・C部
Modelはアプリケーションでプログラムデータロジックを処理するための部分であり、通産ロジック部分はアプリケーションデータロジック部分を処理するために使用される.通常、モデル・オブジェクトは、データベースにオブジェクトを格納します.
2.内容摘要:
M:JDBCを使用して、検索および追加されたデータのクラスを実装します.この2つのメソッドを検索して追加するとbooleanタイプの値が返されます.
V:Mの1つのビューを与え、Mの戻り値を判断することでログイン登録の結果を判断し、結果を出力する.
C:ユーザーの入力を受け入れることで、ヒューマンマシンのインタラクションを実現する.
4.構造実現
・M部:
・コード実装
1.現在の作業ディレクトリの下にjdbcを作成する.propertiesファイル、ファイルに次の内容を追加します.
driverClass=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/1_mydata
user=root
password=123456
注意:driverClass,url,user,passwordはJDBCとmysqlデータベースを接続する際に使用する情報ですので、ご自身の構成情報をご記入ください2.パッケージツール類
package lesson15_jdbc;
import java.sql.*;
import java.util.ResourceBundle;
public class jdbc_FZ {
//
public static Connection get_Connection(){
// properties
ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
String driverClass=bundle.getString("driverClass");
String url=bundle.getString("url");
String user=bundle.getString("user");
String password=bundle.getString("password");
Connection conn=null;
try{
//
Class.forName(driverClass);
//
conn= DriverManager.getConnection(url,user,password);
}catch (ClassNotFoundException e){
e.printStackTrace();
}catch (SQLException e){
e.printStackTrace();
}
return conn;
}
//
public static void closeAll(PreparedStatement pst,ResultSet res,Connection coon){
closeResultSet(res);
closepst(pst);
closeCoon(coon);
}
//
public static void closepst(PreparedStatement pst){
try{
pst.close();
}catch (SQLException e){
e.printStackTrace();
}
}
//
public static void closeResultSet(ResultSet res){
if (res!=null){
try{
res.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
//
public static void closeCoon(Connection coon){
if(coon!=null){
try{
coon.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
3.エンティティークラスの作成:
package lesson15_jdbc;
public class User {
private String username;//
private String password;//
public void setUsername(String name){
this.username=name;
}
public String getUsername(){
return this.username;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return this.password;
}
}
4. Modelの構築package lesson15_jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class jdbc_dengluzhuce {
//
public static boolean add(User user){
Connection conn=jdbc_FZ.get_Connection();
String sql="insert into user(username,password) value(?,?)";
int count=0;
try{
PreparedStatement pst=conn.prepareStatement(sql);
String username = user.getUsername();
String password = user.getPassword();
pst.setString(1,username);
pst.setString(2, password);
count = pst.executeUpdate();
pst.close();
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
return count==1?true:false;
}
//
public static boolean login(User user){
Connection conn=jdbc_FZ.get_Connection();
String sql="select * from user where username=? and password=?";
boolean flag=false;
try{
PreparedStatement pst=conn.prepareStatement(sql);
String username = user.getUsername();
String password = user.getPassword();
pst.setString(1,username);
pst.setString(2, password);
ResultSet res = pst.executeQuery();
if (res!=null){
flag=true;
}
jdbc_FZ.closeAll(pst,res,conn);
}catch (SQLException e){
e.printStackTrace();
}
return flag;
}
}
・V部
package lesson15_jdbc;
public class T {
//
public boolean login(User user){
return jdbc_dengluzhuce.add(user);
}
//
public boolean register(User user){
return jdbc_dengluzhuce.login(user);
}
}
・C部
package lesson15_jdbc;
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
User user =new User();
System.out.println("*** ***");
System.out.println(" :1. 2. ");
int op=input.nextInt();
switch (op){
case 1:
while(true){
System.out.println(" :");
String username=input.next();
System.out.println(" :");
String password=input.next();
user.setUsername(username);
user.setPassword(password);
boolean result=T.register(user);
if (result){
System.out.println(" !");
break;
}else{
System.out.println(" !");
}
}
break;
case 2:
while(true){
System.out.println(" :");
String username=input.next();
System.out.println(" :");
String password=input.next();
user.setUsername(username);
user.setPassword(password);
boolean result=T.login(user);
if (result){
System.out.println(" !");
break;
}else{
System.out.println(" !");
}
}
break;
}
}
}