您好,登錄后才能下訂單哦!
自己隨便寫的,以爐石為背景,寫一個參考用的小例子,先上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;//***力
private Integer cardProperty;//卡牌特性值:0:普通,1:沖鋒,2:亡語, 3:戰吼,10:法術牌效果,11:武器裝備
private String cardPropertyDesc;//卡牌特性說明:沖鋒、亡語、戰吼
/**
* 卡牌剛一應用到戰場時的效果
* @param obj
* @param bloodAdd
* @param effect 1:凍結,2:毀滅,3:生命增加
*/
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 {
/**
* @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值,避免寫入時出現重復鍵值
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點傷害
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。