zoukankan      html  css  js  c++  java
  • 简单Java类和数据库操作及javafx的结合小项目

    先图为上



    秦时明月汉时关,万里长征人未还,。

    学习永无止境。

    1.Start

    1.项目目的:

      开发工具: Idea + Mysql + JAVASE

      1.其实简单来说就是实现两张数据表的基本操作,

        1.添加

        2. 删除

        3.修改

        4.查询.

      不过,有些区别的是,我们要将这两张表关联起来,然后通过javafx显示出来; 在这个项目中,我们使用学生信息表和密码表, 因此,用学号来将两张表关联.

      学生表:

            

      

    密码表:



    我暂时学习的是Mysql数据库.

    所以在运行时,需要修改专门连接数据库的DatabaseConnection类中的URL需要修改。..

    程序完整项目如下:

      dababase  --- DatabaseConnction.java类

      log             --- atom ... 原子层,定义一些直接对数据库的操作,完全与逻辑处理分离,比如只取数据库的学生数据或者,查询记录条数等等

             --- service  业务处理层,一个业务处理可能去调用多个原子层的操作,来实现逻辑

                            --- vo          实体类,即将数据库的表映射到一个Java简单类中.

            --- test       存放一些测试的函数

      menu  --- javafx,, 具体的界面层,这个层是我写的,所以具有可变性,大家可以设计自己的界面...,


      stu        ---与log相似

      


    如下图


    //因为采用DAO设计模式,有了层次,减少了API之间的耦合性,

    //具体代码如下:

    database包:

     1 package database;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 
     7 /**
     8  * 本类专门用于数据库的连接于关闭,在实例化本对象时,便意味着要进行数据库的开发<br>
     9  * 所以在本类的构造方法中要进行数据库驱动的加载和数据库连接对象的取得
    10  */
    11 public class DatabaseConnection {
    12     private static final String DBS_NAME = "com.mysql.cj.jdbc.Driver" ;
    13     private static final String DBS_URL = "jdbc:mysql://127.0.0.1:3306/test?useSSL=true" ; jdbc是主协议,mysql是次协议,至于后面的useSSL别人也这么写,
          那我们也这么写,(不写警告), true / false 随意写
    14 private static final String DBS_USER = "scott" ; 15 private static final String DBS_PASSWORD = "tiger" ; 16 17 private Connection conn ; 18 public DatabaseConnection() { 19 try { 20 Class.forName(DBS_NAME); 21 this.conn = DriverManager.getConnection(DBS_URL, DBS_USER, DBS_PASSWORD); 22 } catch (Exception ex) { 23 ex.printStackTrace(); 24 } 25 } 26 //获取一个数据库的连接对象 27 public Connection getConn() { 28 return this.conn ; 29 } 30 public void close() { 31 if(this.conn != null) { 32 try { 33 this.conn.close(); 34 } catch (SQLException ex) { 35 ex.printStackTrace() ; 36 } 37 } 38 } 39 }

    //------------------------------------------------------卧室分解先----------------------------------//

    //这里的写的比较累赘,应该将所有的dao就放在dao,所有的service就放在service,不应该将两张表分开.

    也就是说总共分成

    database        //这里也有缺点,不应该将连接的数据域写死, 应该放到一个配置文件中,也就是以.properties为后缀得文件.Java中有一个叫ResourceBundle的借口,是专门处理配置文件的,他通过ResourceBundle.getResourceBundle(fileName   :   String)返回一个具体的实现类,然后通过getString("key")键值对的形式读取资源.至于配置文件么:

                       里面是这样写的

                                 driver=com.mysql.cj.jdbc.Driver         #driver是自定义的,

                                  url=.....

                                  username=...

                                  password=...

      dao  无论是stu表还是log表都应放在一起,减少不必要包的个数.  

      service

      test

  • 相关阅读:
    第七章LED将为我闪烁:控制发光二极管
    第六章第一个Linux驱动程序:统计单词个数
    搭s3c6410开发板的测试环境读后感
    第四章源代码的下载和编译
    第三章Git使用入门(读后感)
    第二章:搭建Android开发环境(读后感)
    第一章:Android系统移植与驱动开发概述(读后感)
    函数和代码复用
    python的基本数据类型
    Python的语法元素
  • 原文地址:https://www.cnblogs.com/jffx/p/9911968.html
Copyright © 2011-2022 走看看