Tabelleninhalt als Objekt zurückgeben

fenerli23

Erfahrenes Mitglied
Hi,

habe folgendes Problem soll den Inhalt einer tabelle z.B. "select last_name, first_name, geb_date from employees where employee_id = ?" ausgeben können als java Objekt..

Wie muss ich ncoh meine Methode getPerson füllen damit ich das als Java Objekt "retun" kann, DANKE FÜR EURE HILFE

Habe nun folgendes gemacht:
das Hauptproblem die Mehtode zum eingeben der Employee_id:
Code:
	public Person getPerson(int Id) {
		Person person = null;
		//TODO
		
		Connection conn = null;
		ResultSet  rs   = null;
		PreparedStatement  stmt = null;
		
		String Sql = "Select last_name, first_name, geb_id from employees where employee_id = ?"; 
		try
		{
			Class.forName(DbDrv);
			conn = DriverManager.getConnection( DbUrl, User, Pwd );
			stmt = conn.prepareStatement(Sql);
			stmt.setInt(1, Id);
			
			rs = stmt.executeQuery();
		}catch (Exception ex) {
			ex.printStackTrace();
		}
		
		
		return person;
	
	}
 
Zuletzt bearbeitet:
hi,
habe die Methode Person soweit erstellt:
Nun wenn ich das ganze ausführe wird dies hier angezeigt, anstatt der Inhalt der Tabelle stimmt die erstellte Methode nicht?!

Code:
meinpackage.SqlParamStub$Person@29e357

Methode Person:
Code:
public Person getPerson(long Id) {
		Person person = null;

	
		String Sql = "Select last_name, first_name, geb_id from employees where employee_id = ?"; 
		try
		{
			Class.forName(DbDrv);
			conn = DriverManager.getConnection( DbUrl, User, Pwd );
			stmt = conn.prepareStatement(Sql);
			stmt.setLong(1, Id);
			
			rs = stmt.executeQuery();

			if(rs.next()){ 
			  person = new Person(); 
			  person.setNachname(rs.getString("last_name")); 
			  person.setVorname(rs.getString("first_name")); 
			  person.setGebDatum(rs.getDate("geb_id")); 
			} 
			
			rs.close(); 
			stmt.close(); 
			conn.close();
			

		}catch (Exception ex) {
			ex.printStackTrace();
		}
		
		
		return person;
	
	}
 
Ich gebe das als Client aus etwa so: Das stimmt doch soweit oder habe ich etwas falsch programmiert?!

Code:
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader in = new BufferedReader
			(new InputStreamReader (System.in));
		
		try {
			TestStub stub = new TestStub();
			TestStub.GetPerson request = new TestStub.GetPerson();
			TestStub.GetPersonResponse resp = null;
			
			String s_id = "";
			System.out.println("Eingabe der Employee_id: ");
			s_id = in.readLine();
			
			long id = Long.valueOf(s_id);
			
			request.setId(id);
			
			resp = stub.getPerson(request);
			
			System.out.println(resp.get_return());
			
		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
 
Ich habe doch direkt auf die methode getPerson() zugegriffen damit die Ausgabe erfolgen kann...
Code:
resp = stub.getPerson(request);
 
resp = stub.getPerson(request);
System.out.println(resp.get_return());

Wenn ich das richtig verstehe, versuchst du das Objekt selbst auszugeben. Das wird natürlich nicht gehen.
 
Die ausgabe klappt nun habe das so gemacht:
Code:
System.out.println(resp.get_return().getNachname() + " " + resp.get_return().getVorname() 
					+ " " + resp.get_return().getGebDatum());

Nur wird das datum nicht ausgegebn dafür steht das hier:
Code:
java.util.GregorianCalendar[time=156034800000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Berlin",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=143,lastRule=java.util.SimpleTimeZone[id=Europe/Berlin,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=1974,MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=346,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=3600000,DST_OFFSET=0]
 

Neue Beiträge

Zurück