溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA數(shù)據(jù)庫應用的一個小例子

發(fā)布時間:2020-07-11 15:47:50 來源:網(wǎng)絡 閱讀:518 作者:z5wjz 欄目:數(shù)據(jù)庫

自己隨便寫的,以爐石為背景,寫一個參考用的小例子,先上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), --卡牌職業(yè):中立、德魯伊、獵人、法師、圣騎士、牧師、潛伏者、薩滿祭司、術(shù)士、戰(zhàn)士

card_race varchar(16), --卡牌種族:魚人、惡魔、野獸、圖騰、海盜、龍

card_type varchar(16), --類型:武器、隨從、英雄、法術(shù)、法術(shù)效果、英雄能力

card_rarity varchar(16), --稀有度:普通、免費、稀有、史詩、傳說

card_consumption int, --法力耗費值

card_blood int, --初始生命值

card_attack int, --***力

card_property int, --卡牌特性值:0:普通,1:沖鋒,2:亡語, 3:戰(zhàn)吼,10:法術(shù)牌效果,11:武器裝備

card_property_desc varchar(128), --卡牌特性說明:沖鋒、亡語、戰(zhàn)吼

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

);

insert into card_pool values('弓箭精靈','中立','','隨從','普通',1,1,1,3,'戰(zhàn)吼:造成1點傷害','造成1點傷害');

insert into card_pool values('獵犬','獵人','野獸','隨從','普通',1,1,1,0,'','');

insert into card_pool values('奧術(shù)飛彈','法師','','法術(shù)','普通',1,0,3,10,'隨機3點傷害','隨機3點傷害');

insert into card_pool values('奧金斧','戰(zhàn)士','','武器','普通',5,2,5,11,'','那個消失了的潛行者再也不曾出現(xiàn)過...');

insert into card_pool values('克蘇恩的信徒','中立','','隨從','普通',3,1,2,3,'戰(zhàn)吼:造成2點傷害。使你的克蘇恩獲得+2/+2(無論它在手牌、牌庫或是戰(zhàn)場)','戰(zhàn)吼:造成2點傷害。使你的克蘇恩獲得+2/+2(無論它在手牌、牌庫或是戰(zhàn)場)');

insert into card_pool values('厄運召喚者','中立','','隨從','稀有',8,9,7,3,'戰(zhàn)吼:使你的克蘇恩獲得+2/+2(無論它在你的手牌、牌庫或是戰(zhàn)場)。如果該隨從死亡,將其吸入你的牌庫','戰(zhàn)吼:使你的克蘇恩獲得+2/+2(無論它在你的手牌、牌庫或是戰(zhàn)場)。如果該隨從死亡,將其吸入你的牌庫');

insert into card_pool values('克蘇恩','中立','','隨從','傳說',10,6,6,3,'戰(zhàn)吼:造成等同于該隨從***力的傷害,隨機分配到所有敵人身上。','戰(zhàn)吼:造成等同于該隨從***力的傷害,隨機分配到所有敵人身上。');

insert into card_pool values('阿努巴拉克','潛伏者','','隨從','傳說',9,4,8,2,'亡語:將所有敵方隨從***變?yōu)?點。','亡語:將所有敵方隨從***變?yōu)?點。');

insert into card_pool values('烈焰巨獸','法師','機械','隨從','傳說',7,7,7,0,'當你抽到該牌時,使所有角色造成2點傷害。','當你抽到該牌時,使所有角色造成2點傷害。');

insert into card_pool values('神秘挑戰(zhàn)者','圣騎士','','隨從','史詩',6,6,6,3,'戰(zhàn)吼:將所有不同奧秘從你的牌庫中置入戰(zhàn)場。','戰(zhàn)吼:將所有不同奧秘從你的牌庫中置入戰(zhàn)場。');

insert into card_pool values('妖術(shù)','薩滿祭司','','隨從','普通',3,1,0,10,'把一名仆從變?yōu)?/1的青蛙,并賦予嘲諷技能','把一名仆從變?yōu)?/1的青蛙,并賦予嘲諷技能');

insert into card_pool values('火元素','中立','','隨從','普通',6,5,6,3,'戰(zhàn)吼:造成3點傷害','戰(zhàn)吼:造成3點傷害');




接下來是卡牌類:

public class Cards {

private String cardName;//卡牌名稱

private String cardOccupation;//卡牌職業(yè):中立、德魯伊、獵人、法師、圣騎士、牧師、潛伏者、薩滿祭司、術(shù)士、戰(zhàn)士

private String cardRace;//卡牌種族:魚人、惡魔、野獸、圖騰、海盜、龍

private String cardType;//類型:武器、隨從、英雄、法術(shù)、法術(shù)效果、英雄能力

private String cardRarity;//稀有度:普通、免費、稀有、史詩、傳說

private Integer cardConsumption;//法力耗費值

private Integer cardBlood;//初始生命值

private Integer cardAttack;//***力

private Integer cardProperty;//卡牌特性值:0:普通,1:沖鋒,2:亡語, 3:戰(zhàn)吼,10:法術(shù)牌效果,11:武器裝備

private String cardPropertyDesc;//卡牌特性說明:沖鋒、亡語、戰(zhàn)吼


/**

* 卡牌剛一應用到戰(zhàn)場時的效果

* @param obj

* @param bloodAdd

* @param effect 1:凍結(jié),2:毀滅,3:生命增加

*/

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

}

public void printCard(){

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

+"|"+"職業(yè):"+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;

}



}


最后是調(diào)用數(shù)據(jù)庫和這個卡牌類的一個測試類:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;


public class TestData {


/**

* @param args

* @throws ClassNotFoundException 

* @throws SQLException 

*/

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值,避免寫入時出現(xiàn)重復鍵值

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語句實際得到的行數(shù)

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

ResultSet rs = stmt.executeQuery(sql1);

//聲明一個對象數(shù)組,用以將從數(shù)據(jù)庫中取出的每一行值對應到card類的一個屬性

Cards[] card = new Cards[5];

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

rs.next();


card[i] = new Cards();//數(shù)據(jù)對象賦值前必須初始化

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();

}


}


}



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

執(zhí)行結(jié)果:

卡牌名稱:神秘挑戰(zhàn)者|職業(yè):圣騎士|種族:|類型:隨從|稀有度:史詩|法力耗費值:6|初始生命值:6|***力:6|卡牌特性值:3|說明:戰(zhàn)吼:將所有不同奧秘從你的牌庫中置入戰(zhàn)場。

卡牌名稱:獵犬|職業(yè):獵人|種族:野獸|類型:隨從|稀有度:普通|法力耗費值:1|初始生命值:1|***力:1|卡牌特性值:0|說明:

卡牌名稱:妖術(shù)|職業(yè):薩滿祭司|種族:|類型:隨從|稀有度:普通|法力耗費值:3|初始生命值:1|***力:0|卡牌特性值:10|說明:把一名仆從變?yōu)?/1的青蛙,并賦予嘲諷技能

卡牌名稱:烈焰巨獸|職業(yè):法師|種族:機械|類型:隨從|稀有度:傳說|法力耗費值:7|初始生命值:7|***力:7|卡牌特性值:0|說明:當你抽到該牌時,使所有角色造成2點傷害。

卡牌名稱:奧術(shù)飛彈|職業(yè):法師|種族:|類型:法術(shù)|稀有度:普通|法力耗費值:1|初始生命值:0|***力:3|卡牌特性值:10|說明:隨機3點傷害


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI