当我在Eclipse中运行我的启动器时,它默认运行我的第一个方法。为什么呢?
这是我的代码。
public static void main(String[] args) {
Wolf wolf = new Wolf("Wolf", "Wollig", "Zwart", "Joost", 1000, 100, true, false, true, false, false);
wolf.jagen();
}
这是我Wolf
课程中的第一个方法。
package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Random;
public class Wolf extends Zoogdier{
public Wolf(String diersoort, String soortHuid, String pigment,
String naam, int energie, int humeur, boolean isMannelijk,
boolean isZwanger, boolean isHonger, boolean isZiek,
boolean heeftTandpijn) {
super(diersoort, soortHuid, pigment, naam, energie, humeur, isMannelijk,
isZwanger, isHonger, isZiek, heeftTandpijn);
}
public void JDBC(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/pro_dierentuin";
String user = "root";
String password = "DhFlyB75";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
int m = 1;
if(isMannelijk() == true){
m = 1;
}
else {
m = 0;
}
int z = 1;
if(isZwanger() == true){
z = 1;
}
else{
z = 0;
}
int h = 1;
if(isHonger() == true){
h = 1;
}
else {
h = 0;
}
int ziek = 1;
if(isZiek() == true){
ziek = 1;
}
else {
ziek = 0;
}
int tand = 1;
if(isHeeftTandpijn() == true){
tand = 1;
}else {
tand = 0;
}
String sql = "INSERT INTO dier_gegevens (diersoort, soorthuid,
pigment, naam, energie, humeur, isMannelijk, isZwanger, isHonger, isZiek,
heeftTandpijn) VALUES ('Wolf', '"+ getSoortHuid() +"', '"+ getPigment() +"', '"+
getNaam() +"', '"+ getEnergie() +"', '"+ getHumeur() +"', '"+ m +"', '"+ z +"',
'"+ h +"', '"+ ziek +"', '"+ tand +"')";
stmt.executeUpdate(sql);
System.out.println("Query uitgevoerd");
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
System.out.println("Duplicate entry " + getNaam() + " for key
'PRIMARY'");
e.printStackTrace();
}
}
public String jagen(){
Random r = new Random();
boolean b = r.nextBoolean();
if(b == true){
eten();
}
else{
System.out.println("Je wolf heeft geen voedsel");
setZiek(true);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost/pro_dierentuin";
String user = "root";
String password = "DhFlyB75";
Connection conn = DriverManager.getConnection(url, user,
password);
PreparedStatement stmt = conn.prepareStatement("UPDATE
dier_gegevens SET isZiek = 1 WHERE naam = '"+ getNaam() +"'");
stmt.executeUpdate();
System.out.println("Query uitgevoerd");
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
return "";
}
public String lopen() {
Random r = new Random();
boolean b = r.nextBoolean();
if(b == true){
int energie = getEnergie() - 10;
setEnergie(energie);
System.out.println(getEnergie());
}
if(b == false){
int energie2 = getEnergie() - 5;
setEnergie(energie2);
System.out.println(getEnergie());
}
return null;
}
public Dier bevallen() {
if(isZwanger()){
return new Wolf("wolf", getSoortHuid(), getPigment(), getNaam(),
getEnergie(), getHumeur(), isMannelijk(), false, true, false, false);
}
return null;
}
public String verzorgen() {
if(bevallen() != null){
return "Welp wordt verzorgd";
}
return null;
}
public String dokterbezoek() {
if(isZiek()){
setZiek(false);
System.out.println("Je wolf is weer beter!");
}
return null;
}
public String tandartsbezoek() {
if(isHeeftTandpijn()){
setHeeftTandpijn(false);
System.out.println("Je wolf heeft weer een gezond gebit!");
}
return null;
}
public String eten() {
Random r = new Random();
int voedsel = r.nextInt(100);
if(voedsel > 60){
setZiek(true);
System.out.println("Je Wolf is nu ziek..");
}
else if(voedsel < 40){
int energie = getEnergie() + 20;
setEnergie(energie);
System.out.println(getEnergie());
setHeeftTandpijn(true);
setHonger(false);
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
setHonger(true);
}
else{
System.out.println("Je geeft een ongewenst gram voedsel!");
}
return "";
}
public String spelen() {
if(getHumeur() < 40){
System.out.println("Je dier gaat spelen");
int humeur = getHumeur();
for(int i = humeur; i <= 100; i++){
setHumeur(i);
}
System.out.print(getHumeur());
}
return "";
}
public void Voortplanten(Dier partner) {
if(isMannelijk()){
setZwanger(true);
}
else{
setZwanger(true);
}
}
}
我希望有足够的信息来解决我的问题。
答案 0 :(得分:0)
在main方法的开头调用JDBC方法,如下所示:
public static void main(String[] args) {
JDBC();
Wolf wolf = new Wolf("Wolf", "Wollig", "Zwart", "Joost", 1000, 100, true, false, true, false, false);
wolf.jagen();
}
这假定JDBC()是您班级的方法。
编辑:看到你的类的代码,我还建议将初始化JDBC连接的代码与插入分开。