《飞机大战》面B+数据库 实训

今天更一篇《飞机大战》游戏,总的来说通过编程了解数据库与面B(Java设计模式)之间的更关系联系及应用,此外还有熟练运用JDBC来连接数据库,
1.1开发条件:
1.1.1导入基本飞机大战项目Hero.java、Bullet.java、EnemyPlane.javaStart.java、Started.java、MyJPanel.java 1.1.2导入mysql-connector-java-5.1.20-bin.jar包
1.2实现的目标:
1.2.1需要实现登陆注册界面
1.2.2实现创建数据库planegame
1.2.3连接JDBC数据库
1.2.4完成录入数据
1.3实现:敌机自屏幕上方向下移动,玩家操控飞机可以自由移动,自动发射子弹,躲避并消灭敌机。控制飞机以确保尽可能长的时间并通过消灭敌机获取分数。

2.1实体类实现实体模块的调用,子弹类、敌机类、战机类和用户类2.2控制器实现控制整体动作BD_Operator.java、MyJPanel.java类
2.3状态编写号关卡状态的不同,与切换状态,和关卡接口
2.4连接JDBC数据库
2.4.1加载驱动 DriverManger
2.4.2创建连接 Connection
2.4.3创建Statement对象(SQL)
2.4.4执行SQL查询execute()/executeQuery()
2.4.5处理结果集ResultSet
2.4.6释放连接,释放数据库资源,关闭数据库 close(公共√)2.5视图三种界面,注册登录界面、开始界面、游戏界面

3.1登陆界面完成先实现Jm_start类中的视图界面以及登陆实现去数据库中对比是否存在和用户名密码字段相同的记录,如果存在,登录成功。注册实现首先根据用户名去检查数据库中是否存在同名记录 ,如果不存在,向数据库中添加注册信息。
3.2连接数据库①加载驱动DriverManger ②创建连接 Connection ③创建Statement对象(SQL)④执行SQL查询execute()/executeQuery() ⑤处理结果集ResultSet ⑥释放连接,释放数据库资源,关闭数据库
3.3更新登陆数据值更新记录开始游戏界面游戏数据。连接Start类显示用户名name 等级level 得分grade 最高得分maxgrade 累计游戏时间time,和监听器button按钮。
3.4关卡状态模式加入状态关卡 Hero中单例模式整个工程里所有类共享单例数据,getInstance中判断单例模式MyJPanel类中单例模式应用替换Hero创建战机方法调用hero。创建状态模型包加入4个关卡与战机状态接口,4个关卡类实现战机状态接口。创建关卡数组,每一关卡切换条件,记录当前关卡,定义构造方法Context(),设置四个状态关卡,放入数组,加入change方法遍历关卡切换条件,执行状态模式的通用方法。
3.5更新数据库信息存档信息、当前等级、当前得分、累计游戏时间、最高分,更新完善系统
下面是JDBC连接数据库代码

public class JDBCTools {
public static Connection GetConnection() throws IOException, ClassNotFoundException, SQLException {
  Properties properties = new Properties();
  InputStream inputStream = JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
  properties.load(inputStream);
  
  
  //准备连接数据库
  String jdbcDriver = properties.getProperty("jdbcDriver");
  String url = properties.getProperty("url");
  String user = properties.getProperty("user");
  String password = properties.getProperty("password");
  
  //加载驱动
  Class.forName(jdbcDriver);
  //创建连接
  Connection connection = DriverManager.getConnection(url,user,password);
  return connection;
  
 }
 public static void releaseDB(ResultSet resultSet,Connection connection,PreparedStatement preparedStatement) {
  if(resultSet!=null) {
   try {
    resultSet.close();
   } catch (SQLException e) {
    // TODO: handle exception
    e.printStackTrace();
   }
  }  
   if(connection!=null) {
   try {
    resultSet.close(); 
   } catch (SQLException e) {
    // TODO: handle exception
    e.printStackTrace();
   }
  }
  if(preparedStatement!=null) {
   try {
    resultSet.close();
   } catch (SQLException e) {
    // TODO: handle exception
    e.printStackTrace();
   }
}
}
}
  

以下是全部代码链接

《飞机大战》面B+数据库 实训_第1张图片

你可能感兴趣的:(《飞机大战》面B+数据库 实训)