我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JAVA数据库应用的一个小例子

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JAVA数据库应用的一个小例子

自己随便写的,以炉石为背景,写一个参考用的小例子,先上SQL表:

if OBJECT_ID('card_pool') is not null

drop table card_pool;

create table card_pool(

card_id int identity(1,1) not null,

card_name varchar(32),

card_occupation varchar(32), --卡牌职业:中立、德鲁伊、猎人、法师、圣骑士、牧师、潜伏者、萨满祭司、术士、战士

card_race varchar(16), --卡牌种族:鱼人、恶魔、野兽、图腾、海盗、龙

card_type varchar(16), --类型:武器、随从、英雄、法术、法术效果、英雄能力

card_rarity varchar(16), --稀有度:普通、免费、稀有、史诗、传说

card_consumption int, --法力耗费值

card_blood int, --初始生命值

card_attack int, --***力

card_property int, --卡牌特性值:0:普通,1:冲锋,2:亡语, 3:战吼,10:法术牌效果,11:武器装备

card_property_desc varchar(128), --卡牌特性说明:冲锋、亡语、战吼

card_desc varchar(128) --卡牌上的文字描述

);

insert into card_pool values('弓箭精灵','中立','','随从','普通',1,1,1,3,'战吼:造成1点伤害','造成1点伤害');

insert into card_pool values('猎犬','猎人','野兽','随从','普通',1,1,1,0,'','');

insert into card_pool values('奥术飞弹','法师','','法术','普通',1,0,3,10,'随机3点伤害','随机3点伤害');

insert into card_pool values('奥金斧','战士','','武器','普通',5,2,5,11,'','那个消失了的潜行者再也不曾出现过...');

insert into card_pool values('克苏恩的信徒','中立','','随从','普通',3,1,2,3,'战吼:造成2点伤害。使你的克苏恩获得+2/+2(无论它在手牌、牌库或是战场)','战吼:造成2点伤害。使你的克苏恩获得+2/+2(无论它在手牌、牌库或是战场)');

insert into card_pool values('厄运召唤者','中立','','随从','稀有',8,9,7,3,'战吼:使你的克苏恩获得+2/+2(无论它在你的手牌、牌库或是战场)。如果该随从死亡,将其吸入你的牌库','战吼:使你的克苏恩获得+2/+2(无论它在你的手牌、牌库或是战场)。如果该随从死亡,将其吸入你的牌库');

insert into card_pool values('克苏恩','中立','','随从','传说',10,6,6,3,'战吼:造成等同于该随从***力的伤害,随机分配到所有敌人身上。','战吼:造成等同于该随从***力的伤害,随机分配到所有敌人身上。');

insert into card_pool values('阿努巴拉克','潜伏者','','随从','传说',9,4,8,2,'亡语:将所有敌方随从***变为1点。','亡语:将所有敌方随从***变为1点。');

insert into card_pool values('烈焰巨兽','法师','机械','随从','传说',7,7,7,0,'当你抽到该牌时,使所有角色造成2点伤害。','当你抽到该牌时,使所有角色造成2点伤害。');

insert into card_pool values('神秘挑战者','圣骑士','','随从','史诗',6,6,6,3,'战吼:将所有不同奥秘从你的牌库中置入战场。','战吼:将所有不同奥秘从你的牌库中置入战场。');

insert into card_pool values('妖术','萨满祭司','','随从','普通',3,1,0,10,'把一名仆从变为0/1的青蛙,并赋予嘲讽技能','把一名仆从变为0/1的青蛙,并赋予嘲讽技能');

insert into card_pool values('火元素','中立','','随从','普通',6,5,6,3,'战吼:造成3点伤害','战吼:造成3点伤害');




接下来是卡牌类:

public class Cards {

private String cardName;//卡牌名称

private String cardOccupation;//卡牌职业:中立、德鲁伊、猎人、法师、圣骑士、牧师、潜伏者、萨满祭司、术士、战士

private String cardRace;//卡牌种族:鱼人、恶魔、野兽、图腾、海盗、龙

private String cardType;//类型:武器、随从、英雄、法术、法术效果、英雄能力

private String cardRarity;//稀有度:普通、免费、稀有、史诗、传说

private Integer cardConsumption;//法力耗费值

private Integer cardBlood;//初始生命值

private Integer cardAttack;/

public void cardBeginApply(String obj,Integer bloodAdd,Integer effect){

}

public void printCard(){

String cardInfo="卡牌名称:"+this.cardName

+"|"+"职业:"+this.cardOccupation

+"|"+"种族:"+this.cardRace

+"|"+"类型:"+this.cardType

+"|"+"稀有度:"+this.cardRarity

+"|"+"法力耗费值:"+this.cardConsumption

+"|"+"初始生命值:"+this.cardBlood

+"|"+"***力:"+this.cardAttack

+"|"+"卡牌特性值:"+this.cardProperty

+"|"+"说明:"+this.cardPropertyDesc;

System.out.println(cardInfo);

}

public void cardBloodAdd(Cards obj,Integer bloodAdd){

obj.cardBlood += bloodAdd;

}

public void cardConsumptionAdd(Cards obj,Integer consumptionAdd){

obj.cardConsumption += consumptionAdd;

}

public void cardAttackAdd(Cards obj,Integer attackAdd){

obj.cardAttack += attackAdd;

}


public String getCardName() {

return cardName;

}


public void setCardName(String cardName) {

this.cardName = cardName;

}


public String getCardOccupation() {

return cardOccupation;

}


public void setCardOccupation(String cardOccupation) {

this.cardOccupation = cardOccupation;

}


public String getCardRace() {

return cardRace;

}


public void setCardRace(String cardRace) {

this.cardRace = cardRace;

}


public String getCardType() {

return cardType;

}


public void setCardType(String cardType) {

this.cardType = cardType;

}


public String getCardRarity() {

return cardRarity;

}


public void setCardRarity(String cardRarity) {

this.cardRarity = cardRarity;

}


public Integer getCardConsumption() {

return cardConsumption;

}


public void setCardConsumption(Integer cardConsumption) {

this.cardConsumption = cardConsumption;

}


public Integer getCardBlood() {

return cardBlood;

}


public void setCardBlood(Integer cardBlood) {

this.cardBlood = cardBlood;

}


public Integer getCardAttack() {

return cardAttack;

}


public void setCardAttack(Integer cardAttack) {

this.cardAttack = cardAttack;

}


public Integer getCardProperty() {

return cardProperty;

}


public void setCardProperty(Integer cardProperty) {

this.cardProperty = cardProperty;

}


public String getCardPropertyDesc() {

return cardPropertyDesc;

}


public void setCardPropertyDesc(String cardPropertyDesc) {

this.cardPropertyDesc = cardPropertyDesc;

}



}


最后是调用数据库和这个卡牌类的一个测试类:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;


public class TestData {


public static void main(String[] args) throws ClassNotFoundException, SQLException {

final String className="com.microsoft.jdbc.sqlserver.SQLServerDriver";

final String URL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=lushi";

final String NAME="wjz";

final String PASSWORD="wjz";

String sql1 = "select top 5 * from card_pool order by newid()";//取出表中最后一行的id值,避免写入时出现重复键值

String sql2 ="select count(1) cnt from (select top 5 * from card_pool order by newid()) as a";

Class.forName(className);

Connection conn = null ;

Statement stmt = null;

try {

conn = DriverManager.getConnection(URL, NAME, PASSWORD);

stmt = conn.createStatement();

ResultSet rs2 = stmt.executeQuery(sql2);

rs2.next();

//得到本次SQL语句实际得到的行数

int rsCount = rs2.getInt("cnt");

ResultSet rs = stmt.executeQuery(sql1);

//声明一个对象数组,用以将从数据库中取出的每一行值对应到card类的一个属性

Cards[] card = new Cards[5];

for(int i=0 ; i<rsCount ; i++){

rs.next();


card[i] = new Cards();//数据对象赋值前必须初始化

card[i].setCardName(rs.getString("card_name"));

card[i].setCardOccupation(rs.getString("card_occupation"));

card[i].setCardRace(rs.getString("card_race"));

card[i].setCardType(rs.getString("card_type"));

card[i].setCardRarity(rs.getString("card_rarity"));

card[i].setCardConsumption(rs.getInt("card_consumption"));

card[i].setCardBlood(rs.getInt("card_blood"));

card[i].setCardAttack(rs.getInt("card_attack"));

card[i].setCardProperty(rs.getInt("card_property"));

card[i].setCardPropertyDesc(rs.getString("card_property_desc"));

card[i].printCard();

}


} catch (Exception e) {

e.printStackTrace();

} finally{

stmt.close();

conn.close();

}


}


}



-------------------------------------------------

执行结果:

卡牌名称:神秘挑战者|职业:圣骑士|种族:|类型:随从|稀有度:史诗|法力耗费值:6|初始生命值:6|***力:6|卡牌特性值:3|说明:战吼:将所有不同奥秘从你的牌库中置入战场。

卡牌名称:猎犬|职业:猎人|种族:野兽|类型:随从|稀有度:普通|法力耗费值:1|初始生命值:1|***力:1|卡牌特性值:0|说明:

卡牌名称:妖术|职业:萨满祭司|种族:|类型:随从|稀有度:普通|法力耗费值:3|初始生命值:1|***力:0|卡牌特性值:10|说明:把一名仆从变为0/1的青蛙,并赋予嘲讽技能

卡牌名称:烈焰巨兽|职业:法师|种族:机械|类型:随从|稀有度:传说|法力耗费值:7|初始生命值:7|***力:7|卡牌特性值:0|说明:当你抽到该牌时,使所有角色造成2点伤害。

卡牌名称:奥术飞弹|职业:法师|种族:|类型:法术|稀有度:普通|法力耗费值:1|初始生命值:0|***力:3|卡牌特性值:10|说明:随机3点伤害


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JAVA数据库应用的一个小例子

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL数据库:子查询的应用

子查询子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。# 子查询的用法# 在字段select (select cName from courses where cNo = cID) as
2018-04-26

java 用递归获取一个目录下的所有文件路径的小例子

还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹
2022-11-15

SqlServer将数据库中表复制到另一个数据库的示例

这篇文章主要介绍SqlServer将数据库中表复制到另一个数据库的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SqlServer将数据库中的表复制到另一个数据库一、如果两个数据库在同一台服务器上1、复制表结构和
2023-06-14

完成一个中小规模的Hadoop技术应用的数据分析处理

中小规模的Hadoop技术应用的数据分析处理可以包括以下步骤:1. 数据收集:收集需要进行数据分析的数据,可以包括结构化数据、半结构化数据和非结构化数据等。2. 数据清洗:对收集到的数据进行清洗和预处理,包括去除重复数据、去除噪声数据、填充
2023-10-11

一个分析和解决Java应用程序内存浪费的实战例子,值得收藏!

内存是当今世界上被广泛浪费的硬件资源之一。由于编程效率低下,惊人量的内存浪费被浪费了。这种模式在多个企业应用程序中重复出现。为了证明这种情况,我们进行了一项小型研究。
2023-06-04

应用开发实践之关系型数据库(以MySql为例)小结

多年开发实践中遇到的DB相关的话题研究和整理,不介绍DB的基本概念,也不过于深入DB原理,以满足日常应用、知其然知其所以然为准。包含十几个子话题,含事务传播性、索引优化、拆分、FailOver等。 本文主要是对目前工作中使用到的DB相关知识点的总
应用开发实践之关系型数据库(以MySql为例)小结
2018-01-10

java基于数据库实现全局唯一ID的示例

本文主要介绍了java基于数据库实现全局唯一ID的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-15

利用java怎么编写一个创建数据库与表的脚本

这篇文章给大家介绍利用java怎么编写一个创建数据库与表的脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:import java.sql.*; public class Test { publi
2023-05-31

是否应该为我的数据库中的每个表创建一个继承

在数据库设计中,继承是一种将共同属性和行为组织在一起的方式。在某些情况下,可以使用继承来简化数据库模型并提高可维护性和可扩展性。然而,是否应该为数据库中的每个表创建一个继承取决于具体情况。以下是考虑的几个因素:1. 共享的属性和行为:如果多
2023-09-26

编程热搜

目录