# ArrayList in mysql Datenbank speichern



## somahu (10. Jul 2012)

Guten Abend, 

Ich hab eine Aufgabe einen Arbeitszeit Rechner zu programmieren.
das ist mein Quellcode:

Main Class:

```
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
 
public class Mainclass
{
	public static String input = null;
	public static List<Input> inputList = new ArrayList<Input>();
	public static Scanner scanner = new Scanner(System.in);
	
    public static void main(String[] args) throws Exception
 
    {
    	do
    	{
    
    	System.out.println("----------------------------------------------------------------------");
        System.out.println("Calculate your work time:  (1)  ");
        System.out.println("List all work times:       (2)  ");
        System.out.println("Save as Txt:               (3)  ");
        System.out.println("Save as Xml:               (4)  ");
        System.out.println("Save as Mysql Database:    (5)  ");
        System.out.println("Exit:                      (6)  ");
        System.out.println("----------------------------------------------------------------------");

        input = scanner.next();
    
  
        if (input.equals("1"))
        {
            calculateWork(inputList,scanner);
        }
        else if (input.equals("2"))
        {
            listWork(inputList);
        }
        else if (input.equals("3"))
        {
            Save.saveWorkTxt(inputList);
        }
        else if (input.equals("4"))
        {
        	Save.saveWorkXml(inputList);
        }
        else if (input.equals("5"))
        {
        	//Mysql.***(inputList);
        }
        
        else if (input.equals("6"))
        {
        	
        	System.out.println("Thank you for using The program.\n" +
        					   "Exit will Done !");
        	System.exit(0);
        }
        else
        {
            System.out.println("Incorrect entry!!!");
         
        }
    	}
        while (true);

    }
         

	private static void calculateWork( List<Input> inputList, Scanner scanner) 
    {
    	 double fulltime = 0.0;
    	 
        do
        {
            
            System.out.println("Please put your yame:\n ");
            String name = scanner.next();
            System.out.println("Please put a date:\n");
            String date = scanner.next();
            System.out.println("Please put your start work time:\n");
            String starttime = scanner.next();
            System.out.println("Please put your end work time:\n");
            String endtime = scanner.next();
            System.out.println("Please put your start pause time:\n");
            String startpause = scanner.next();
            System.out.println("Please put your start pause time:\n");
            String endpause = scanner.next();
  
            Input inputObject = new Input(name, date, starttime, endtime,
                    startpause, endpause, fulltime );
 
            inputList.add(inputObject);
            inputObject.calculateTime();
 
            System.out.println(name+ " have worked on " +Input._icurrDay +
                    + inputObject.getFulltime()   +  "  hours.\n");
        
            System.out.println("Calculate another date ? (y/n)");
        }
        while (scanner.next().equals("y"));
        
    }
    
    
    private static void listWork( List<Input> inputList) 
    {
    	do
        {
    		
        for (int i = 0; i < inputList.size(); i++)
        {
            System.out.println("Date: " + inputList.get(i).getDate()
                    + "\nName: " + inputList.get(i).getName()
                    + "\nYou worked on this day: "
                    + inputList.get(i).getFulltime() + "hours.\n");
        }   
        System.out.println("To MainMenu ? (y/n)");
        }
        while (scanner.next().equals("n"));
        }
    	 
}
```

Input Class:

```
import java.util.GregorianCalendar;


public class Input
{
    public static String   _icurrDay;
    
    public String   _name;
    public String   _date;
    public String   _starttime;
    public String   _endtime;
    public String   _startpause;
    public String   _endpause;
    public double   _fulltime;

    
    public Input(String name, String date, String starttime, String endtime,
            String startpause, String endpause, double fulltime)
    {
        this._name = name;
        this._date = date;
        this._starttime = starttime;
        this._endtime = endtime;
        this._startpause = startpause;
        this._endpause = endpause;
        this._fulltime = fulltime;
    
    }
 
    public String getName()
    {
        return _name;
    }
 
    public void setName(String newName)
    {
        this._name = newName;
    }
 
    public String getDate()
    {
        return _date;
    }
 
    public void setDate(String newDate)
    {
        this._date = newDate;
    }
 
    public String get_starttime()
    {
        return _starttime;
    }
 
    public void set_starttime(String _starttime)
    {
        this._starttime = _starttime;
    }
 
    public String getEndtime()
    {
        return _endtime;
    }
 
    public void setEndtime(String newEndtime)
    {
        this._endtime = newEndtime;
    }
 
    public String get_startpause()
    {
        return _startpause;
    }
 
    public void setStartpause(String newStartpause)
    {
        this._startpause = newStartpause;
    }
 
    public String getEndpause()
    {
        return _endpause;
    }
 
    public void setEndpause(String newEndpause)
    {
        this._endpause = newEndpause;
    }
 
    public double getFulltime()
    {
        return _fulltime;
    }
 
    public void setFulltime(double newfulltime)
    {
        this._fulltime = newfulltime;
    }

    
 public void calculateTime()
    
    {
        String[] splitStartTime = _starttime.split(":");
 
        double startHour = Integer.valueOf(splitStartTime[0]).intValue();
        double startMinute = Integer.valueOf(splitStartTime[1]).intValue();
 
        double istartTime = startHour * 60 + startMinute;
 
        String[] splitEndTime = _endtime.split(":");
 
        double endHour = Integer.valueOf(splitEndTime[0]).intValue();
        double endMinute = Integer.valueOf(splitEndTime[1]).intValue();
 
        double iendTime = endHour * 60 + endMinute;
 
        String[] splitPauseStart = _startpause.split(":");
 
        double pauseStartHour = Integer.valueOf(splitPauseStart[0]).intValue();
        double pauseStartMinute = Integer.valueOf(splitPauseStart[1]).intValue();
 
        double ipauseStart = pauseStartHour * 60 + pauseStartMinute;
 
        String[] splitPauseEnd = _endpause.split(":");
 
        double pauseEndHour = Integer.valueOf(splitPauseEnd[0]).intValue();
        double pauseEndMinute = Integer.valueOf(splitPauseEnd[1]).intValue();
 
        double ipauseEnd = pauseEndHour * 60 + pauseEndMinute;
 
		        if (iendTime < istartTime)
		        {
		            if (ipauseEnd < ipauseStart)
		            {
		                _fulltime = (((24 * 60) + iendTime - istartTime) - ((24 * 60) + (ipauseEnd - ipauseStart))) / 60;
		            }
		            else
		            {
		                _fulltime = (((24 * 60) + iendTime - istartTime) - (ipauseEnd - ipauseStart)) / 60;
		            }
		        }
		        else
		        {
		            _fulltime = ((iendTime - istartTime) - (ipauseEnd - ipauseStart)) / 60;
		        }
    }
 
 public void calculateDate()
 {
	 String[] splitDate = _date.split("-");
	 int year = Integer.valueOf(splitDate[2]);
	 int month = Integer.valueOf(splitDate[1]);
	 int day = Integer.valueOf(splitDate[0]);
	 GregorianCalendar calendar = new GregorianCalendar(year, month, day);
	 int icurrDay = calendar.get(GregorianCalendar.DAY_OF_WEEK);
	 
			 if(icurrDay == 0)
			 {
				 _icurrDay = "Sunday";
			 }
			 if(icurrDay == 1)
			 {
				 _icurrDay = "Monday";
			 }
			 if(icurrDay == 2)
			 {
				 _icurrDay = "Tuesday";
			 }
			 if(icurrDay == 3)
			 {
				 _icurrDay = "Wednesday";
			 }
			 if(icurrDay == 4)
			 {
				 _icurrDay = "Thursday";
			 }
			 if(icurrDay == 5)
			 {
				 _icurrDay = "Friday";
			 }
			 if(icurrDay == 6)
			 {
				 _icurrDay = "Saturday";
			 }
		 }
 }
```

Save Class: 


```
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.List;

import com.thoughtworks.xstream.XStream;

public class Save {

    public static void saveWorkTxt(List<Input> inputList) throws Exception 
    {
	   do
	    {
 
		    	 PrintWriter writer = new PrintWriter("Times.txt"); 
		    	 
		    	 for (int i = 0; i < inputList.size(); i++)
		    	{
		    	  writer.println();
		    	}
		    	 writer.close(); 
		    	 
		    	 System.out.println("The Info´s saved in your Workspace folder");
		    	 System.out.println("To MainMenu ? (y/n)");
		    }
		    while (Mainclass.scanner.next().equals("n"));
    }
    	
    public static void saveWorkXml(List<Input> inputList) throws Exception 
    {
    	do
    	{
    		File data = new File("Times.xml"); 
    		Writer writer= new BufferedWriter(new FileWriter(data));
       	 
    			XStream xstream = new XStream();
				xstream.alias("Times", Input.class);
				String string = xstream.toXML(inputList);
    				writer.write(string);
    				writer.close();
    				
    				System.out.println("The Info´s saved in your Workspace folder");
    				System.out.println("To MainMenu ? (y/n)");
    	}
    				while (Mainclass.scanner.next().equals("n"));

    }
}
```

Mysql Class:


```
public class Mysql {

???????????????


}
```

die mysql Klasse & speicher Funktion txt und xml klappt nicht so ganz !! ich versuch seit 3 tage aber ich hab es nicht gekriegt. 
und ich hab viel gelesen wie man die Objekte oder die liste in mysql Database speichern kann .. ich hab es auch nicht gekriegt, nur dass ich xstream und mysql connector java und xampp installieren soll, ich hab es gemacht aber wie soll es jetzt weiter gehen !! bitte kann man mir mal weiter helfen .. ich muss es morgen vormittag ab geben!

Danke


----------



## somahu (11. Jul 2012)

ich hab es hi gekriegt mit xml und txt .. mega geil jetzt bleibt mysql database !! kann mir jemand helfen !! bitte, vielen dank


----------



## Gast2 (11. Jul 2012)

Gibts schon ne existierende DB in die du speichern willst? Wenn nicht dann würd ich dir zu ner embedded DB raten, z.b. H2:
H2 Database Engine


----------



## somahu (11. Jul 2012)

also ich hab irgendwie raus gekriegt dass man das mit Plugins in eclipse installieren soll:

plugins: mysql-connector

und dann Xampp installieren, aber ich komm nicht weiter wie soll ich die tabellen bauen und ect. 

ich hab ein macbook pro .. gibst es das Programm auch für mac os ! 
wenn du mir es zeigen kannst wie es man macht und was soll man in die klasse mysql schreiben soll es wäre echt ganz nett und cool
danke dir


----------



## Gast2 (11. Jul 2012)

Ich gehe mal davon aus dass du dir in 6 Minuten nicht die Seite, die Tutorials oder Examples auf der Seite angeschaut hast... Mach das bitte, da werden viele deiner Fragen geklärt!

Wenn du ne embedded DB nimmst, dann brauchst du kein xampp, dann brauchst du kein eclipse plugin und auch keinen extra Treiber, der ist schon mit drin.


----------



## somahu (11. Jul 2012)

also ich hab H2 downloaded .. 
meinst ich soll hier jcsv - Simple CSV library for Java - Google Project Hosting lesen oder wo genau !! wo soll ich anfangen zu gucken ..!! sorry aber ich bin müde
! danke dir noch mal


----------



## Gast2 (11. Jul 2012)

Na auf der H2 Seite gibts Tutorials und Beispiele, siehe:
Installation
Tutorial

zusätzlich kannst du dir noch nen JDBC Tutorial anschauen.


----------

