一个定时往mysql写数据的java类的设计与实现
来源:互联网 发布:哪里有砍价软件 编辑:程序博客网 时间:2024/06/01 21:42
我自己都感觉这个标题好像论文。(××××××××的设计与实现)
因为最近在尝试写《商人》网路游戏的服务端,要有时间定时循环执行,要有往数据库写数值。然后玩家的手机上微信,从数据库下载数据,实现游戏玩起来。
所以这篇文章讲了我昨天的进展,定时存数据。
我有两个文件,实际上我也是为了将来维护方便,才分开来写的。
mainGame.java 这个文件是主功能,
gameEnterFrame.java 这个文件是定时循环功能。
他们都隶属于game包中。
先看第一个mainGame.java的代码:
package game;import game.gameEnterFrame;//把定时循环类导入进来,一会要用。public class mainGame { //游戏运行,最主要的权限最高的main方案,无返回值。只要运行,就会先运行main。 //static意思是 我是绝对的,唯一的,至高无上的,不允许重名的。只要提到这个main名字就一定是我,的意思。 //public 意思是对外公开,只要你在别的地方导入了mainGame类,就可以执行mainGame类下的public的功能。 public static void main(String[]args){ //我想要一个定时循环类,起名叫aa吧,它是一个全新的定时循环类。 gameEnterFrame aa = new gameEnterFrame(); //现在执行aa的start功能。里面有啥看下一文件的代码。 aa.start(); System.out.println("GameStart"); } }
代码不多,就是启动后,运行一次,gameEnterFrame.
再贴出下面的代码:
package game;//这些导入的包你可以不用知道他们是干嘛的,因为只要使用MyExclipse软件敲代码,就会提示你,帮你自动添加导入,而且自动加的非常准确。import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Statement;import java.util.Date;import java.util.Timer;//导入定时器类import java.util.TimerTask;//导入定时任务类//由于gameEnterFrame是继承自TimerTask类的。//TimerTask类有这么一个关键的功能叫做run,是前人们已经写好的功能了。也是必须有的功能。只要继承了TimerTask的类一自动执行,就自动运行run里面的动作。public class gameEnterFrame extends TimerTask { //声明内部使用一个数据库链接,起名conn,这个conn酌情改代码 private Connection conn; //声明内部使用一个数据库驱动地址,不知何用,固定用法,不写就报错。这个地方酌情改代码 private String JDBC_DRIVER = "com.mysql.jdbc.Driver"; //声明内部使用mysql数据库的网络IP+端口+链接的数据库名字,这个地方酌情改代码 private String DB_URL = "jdbc:mysql://192.168.0.11:3306/gmbusiness"; //声明内部使用连接数据库的用户名,这个地方酌情改代码 private String user = "root"; //声明内部使用连接数据库的密码,这个地方酌情改代码 private String password = "root"; //我需要一个时间量,起名叫startdate吧,它是一个全新的时间量,他的值是现在这一刻的时间。 Date startdate = new Date(); //我需要一个定时器,起名叫itimer吧,它是一个全新的定时器。 private Timer itimer = new Timer(); public void start(){ //schedule英文翻译为“日程安排”,是定时器类下属的功能方案。在我们程序中是最关键的功能,后面有好几种参数情况,其中三个参数时候代表(做啥方案,啥时间开始,多少毫秒后再做), //要注意的是java里面的时间是单独的数据类型,区别于浮点数、整数、字符串类型。 //所以需要声明一下开始时间。我觉得使用“现在”作为开始时间最合适。这样每次程序运行时就立即开始。 //所以我在上面声明了一个startdate。接着让任务每隔2秒钟运行一次。 itimer.schedule(this, startdate, 2000); //你可能要问了,this是啥?this意思是当下方案。这里指gameEnterFrame。 } //下面来看看这个自动运行都运行了啥动作 public void run() { float n = (float) 1.22;//我瞎写的一个1.22数,后面会被修改为随机数。这里不必较真。 n = (float) Math.random();//我需要生成随机数,一会往数据库里面写。 System.out.println("Server make a new number : " +n );//把这个数打印出来方便我看。 //我发现链接数据库大家都爱用try。因为网络不稳定就会连不上,但不能崩了程序。 try { //固定用法,连接数据库。为的是后面往数据里写数 Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL,user,password); //准备往数据库里写啥值,引号中是mysql语句。 //java并不是直接往mysql里面写数据,而且先打个招呼,传达一下即将要填写的数在哪行哪列,具体的数则是留出问号,再让程序做填空题。 String sql = "insert into goods_price (price) values (?)"; //声明一个预处理语句叫rs,是个空的。 PreparedStatement rs = null; //先把格式填写进去,等着填空。 rs = conn.prepareStatement(sql); //而且据说每次只能写一个值,写入一个float类型的数值,在第一个位上把n的值(刚生的随机数)写进去。 rs.setFloat(1,n); //写完了更新吧 rs.executeUpdate(); //关闭数据库操作通道 rs.close(); //关闭数据库连接,固定用法 conn.close(); //以下到代码最后是MyEclipse自动帮我写的。 } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }}
定时循环执行的部分代码较多,写好后点击运行,就可以看到打印出来的数据啦。
祝你成功!
阅读全文
0 0
- 一个定时往mysql写数据的java类的设计与实现
- 使用navicat for mysql 写一个简单的定时任务。
- Java-Swing写的一个定时关机的小工具
- Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(一)Quartz组件
- Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(二)Quartz配置文件
- Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(三)Quartz持久化
- 新写的一个定时新闻小偷
- 写的一个定时小程序
- 用Java写的一个实现大数计算器的类
- 如何写mysql的定时任务
- Web后台任务定时执行工具的设计与实现
- VxWorks共享看门狗定时机制的设计与实现
- 用java实现的一个简单的定时报警程序
- mysql定时任务的实现
- 利用java定时器Timer实现定时传送数据的任务
- Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
- Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
- Java不写文件,LOAD DATA LOCAL INFILE大批量导入数据到MySQL的实现
- mac react-native 环境搭建与运行
- 开班第一天
- Java中Date和SimpleDateFormat
- QT学习——数据库SQL模型类(QSqlTableModel模型)
- 学习Linux的Shell命令
- 一个定时往mysql写数据的java类的设计与实现
- JAVA 攻城狮 第十天
- centos下nginx+php-fpm安装
- 1015. Reversible Primes (20)
- #3 给组件传递属性
- 【51Nod】1770 数数字
- SpringMVC过滤器
- 深入Java核心
- 输入输出