60.【贪吃的球球存档操作】

简介: 60.【贪吃的球球存档操作】

工具类:

import java.sql.*;
import java.util.Vector;
public class Util {
    //链接数据库工具包
    public static Connection getConnection(){
        Connection cn=null;
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            try {
                 cn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/grame_snack_greed","root","121788");
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        } catch (ClassNotFoundException classNotFoundException) {
            classNotFoundException.printStackTrace();
        }
        return cn;
    }
    //搜素数据库信息
    public static ResultSet Select(String sql, Vector v){
        ResultSet rs=null;
        try {
            Connection cn=getConnection();
            PreparedStatement ps=cn.prepareStatement(sql);
            for(int i=0;i<v.size();i++){
                ps.setString(i+1,v.get(i).toString());
            }
            rs=ps.executeQuery();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return rs;
    }
    //增删改 工具包
    public static int Updata(String sql,Vector v){
        int n=0;
        try {
            PreparedStatement ps=getConnection().prepareStatement(sql);
            for(int i=0;i<v.size();i++){
                ps.setString(i+1,v.get(i).toString());
            }
            n=ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return n;
    }//进行改查删的操作
}

JAVABEAN类

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.*;
import java.util.Random;
import java.util.Vector;
public class panel extends Panel implements KeyListener {
    //设置角色坐标 以及 大小
    int index_x;
    int index_y;
    int width;
    int height;
    //设置食物坐标 以及 大小
    int food_x;
    int food_y;
    int food_width;
    int food_height;
    //利用构造函数获取数据库  角色  以及 食物  的初始化 数据
    public panel(){
        try {
           Connection cn=Util.getConnection();
            Statement st=cn.createStatement();
            ResultSet rs=st.executeQuery("select *from information");
            while (rs.next()){
                index_y=rs.getInt(1);
                index_y=rs.getInt(2);
                width=rs.getInt(3);
                height=rs.getInt(4);
                food_x=rs.getInt(5);
                food_y=rs.getInt(6);
                food_width=rs.getInt(7);
                food_height=rs.getInt(8);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
   //引用画笔 函数,画出角色和食物
    public void paint(Graphics g){
        g.fillOval(index_x,index_y,width,height);
        g.fillOval(food_x,food_y,food_width,food_height);
    }
    //键盘事件
    @Override
    public void keyTyped(KeyEvent e) {
    }
    @Override
    public void keyPressed(KeyEvent e) {
        //移动操作的键盘
        if(e.getKeyChar()=='a'||e.getKeyCode()==37){
          index_x=index_x-10;
       }if(e.getKeyChar()=='w'||e.getKeyCode()==38){
          index_y=index_y-10;
       }if(e.getKeyChar()=='d'||e.getKeyCode()==39){
          index_x=index_x+10;
       }if(e.getKeyChar()=='s'||e.getKeyCode()==40){
          index_y=index_y+10;
          //假如吃到食物,角色和食物 进行转变
       }if(index_x<=food_x&&index_x+width>=food_x&&index_y<=food_y&&index_y+height>=food_y){
           Random r=new Random();
           width=width+10;
           height=height+10;
           food_x=r.nextInt(700)+1;
           food_y=r.nextInt(700)+1;
        }
        //更新数据库的数据
        String sql="update information set index_x=?,index_y=?,width=?,height=?,food_x=?,food_y=?,food_width=?,food_height=?";
        Vector v=new Vector();
        v.add(index_x);
        v.add(index_y);
        v.add(width);
        v.add(height);
        v.add(food_x);
        v.add(food_y);
        v.add(food_width);
        v.add(food_height);
        int n= Util.Updata(sql,v);
     //   System.out.println(n);
      repaint();
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
}

测试类:

import java.awt.*;
public class test {
    public static void main(String[] args) {
    Frame f=new Frame("键盘事件");
    f.setSize(800,800);
    f.setLocationRelativeTo(null);
    panel p=new panel();
    f.add(p);
    f.addKeyListener(p);
    p.addKeyListener(p);
    f.setVisible(true);
    }
}

数据库初始化信息

create table Information(
index_x int not null,
index_y int not null,
width int not null,
height int not null,
food_x int not null,
food_y int not null,
food_width int  not null,
food_height int not null
);
insert into information values(20,20,50,50,30,30,20,20);


相关文章
|
6月前
|
弹性计算 运维 Linux
存档拷贝后地图在人物不在的存档修复
存档拷贝后地图在人物不在的存档修复教学
|
18天前
|
算法 安全 固态存储
删除的文件怎么找回?删除文件恢复全面指南
我们常常在日常生活或工作中不小心删除了重要文件,这样的情况可能瞬间让人感到无助。不过,数据恢复技术已相当成熟,我们可以通过多种方法来找回误删的文件。下面我们将从简单到复杂逐步讲解找回删除文件的方法,希望可以帮助大家在意外发生时及时找回丢失的文件。
|
6月前
|
Oracle Unix 关系型数据库
通过磁带系统备份与还原的一些记录
通过磁带系统备份与还原的一些记录
34 1
|
存储 架构师 NoSQL
|
存储 安全 数据安全/隐私保护
电子邮件存档与备份的关键区别
任何电子邮件归档解决方案的主要目标是确保电子邮件数据随着时间的推移保持可用和可检索。对于公司而言,这对于与业务交易的准备、完成、执行或撤销有关的电子邮件(例如发票、报价、支持查询或任命请求)尤其重要。 相比之下,备份的目的是在短期和中期存储数据,从而提供有关数据的常规快照。此概念允许制作整个数据集的副本,以便可以将它们放到外部存储或云环境中,并在以后还原。
820 0
电子邮件存档与备份的关键区别
|
Oracle 关系型数据库
|
机器学习/深度学习
|
Linux
删除恢复的文件
当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。
855 0