Deling af Java kode til læring og sjov og ballade

Du kan i dette forum stille og svare på spørgsmål vedrørende Java programmering på alle typer platforme.
Besvar
cristian
Moderator
Moderator
Indlæg: 882
Tilmeldt: 26. sep 2011, 21:31
Kontakt:

Deling af Java kode til læring og sjov og ballade

Indlæg af cristian » 20. jan 2015, 17:05

Som titlen siger så har jeg lavet denne tråd for at dele Java kode jeg selv bruger, samt se om hvad andre kan komme med af kreative løsninger i forlængelse af hvad jeg måske deler.
Må det give lidt sjov i gaden :D og til dem som starter ud med Java have lidt sjov og se hvad man ellers kan gøre med Java :ugeek:


List dine lokale netværk interfaces

Kode: Vælg alt

Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
for (NetworkInterface netint : Collections.list(nets)) {            
	Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
	for (InetAddress inetAddress : Collections.list(inetAddresses)) {
		String s = inetAddress.toString().replace("/", "");
    		if(!s.isEmpty() && s.startsWith("192") || s.startsWith("172") || s.startsWith("10")) {  		
    			String[] s1 = netint.getName().split("\\s+");
    			String[] s2 = s.split("\\s+");
    			System.out.println(s1[0]);
    			System.out.println(s2[0]);
    		}
	}
}

List dit OS

Kode: Vælg alt

final String os = System.getProperty("os.name");
System.out.println(os);

Nested switch statement

Kode: Vælg alt

		boolean running = true;
		
		try (Scanner inputReader1 = new Scanner(System.in);
			Scanner inputReader2 = new Scanner(System.in);) {
			try {
				
				do {
					System.out.println("1:\tPrint something");
					System.out.println("2:\tPrint something");
					System.out.println("3:\tPrint something");
					
					String command = inputReader1.nextLine();
					
					switch(command) {
						case "1":
							outerLoop:
							do {
								System.out.println("1:\tPrint something");
								System.out.println("2:\tPrint something");
								System.out.println("3:\tPrint something");
								System.out.println("9:\tBack");

								String command2 = inputReader2.nextLine();
								
								switch(command2) {
									case "1":
										//Do something
										break;
									case "2":
										//Do something
										break;
									case "3":
										//Do something
										break;
									case "9":
										break outerLoop;
									default:
										System.out.println("You didnt select one of the correct values above");
										break;
								}
							}while(true);
							break;	
						case "2":
							System.out.println("This is case 2");
							break;
						case "3":
							System.out.println("Quitting");
							running = false;
							break;
						default:
							System.out.println("You didnt select one of the correct values above");
							break;
					}	
				}while(running);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

Eksekver en kommando igennem Java til Windows eller Linux

Kode: Vælg alt

		ArrayList<String> command = new ArrayList<String>();
		
		final String os = System.getProperty("os.name");
		if(os.contains("Windows") || os.contains("windows")) {
			command.add("cmd.exe");
			command.add("/C");
			command.add("Kommando du ville eksekvere");
		} else {
			command.add("/bin/bash");
			command.add("-c");
			command.add("Kommando du ville eksekvere");
		}
		
		ProcessBuilder pb = new ProcessBuilder(command);
		final Process process = pb.start();
		
		try(BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()))){			
			String line;
			while ((line = br.readLine()) != null) {
				System.out.println(line);//OUTPUT
		    }				
		}

cristian
Moderator
Moderator
Indlæg: 882
Tilmeldt: 26. sep 2011, 21:31
Kontakt:

Re: Deling af Java kode til læring og sjov og ballade

Indlæg af cristian » 29. maj 2015, 12:11

Note. Dette er en rå sketch, retter tråden til senere med overskrifter, eksempler mm over weekenden.
Indtil da, leg med det.

Databaser

Opret en properties fil
Når vi vil forbinde til en database, så skal vi have et sted at opbevare vores kodeord, brugernavn og ip adresse til databasen samt vores driver.
Den nemmeste og sikreste måde jeg har fundet for dette er at oprette en properties fil.

Dette gøres ved at oprette en alminde tekst fil (i src mappen under projektet) med .properties til slut. Min fil hedder f.eks
"database.properties"

Inde i den skriver vi vores fire værdier
  • JDBC_DRIVER=com.mysql.jdbc.Driver
  • USER=brugernavn
  • PASS=kodeord
  • DB_URL=jdbc:mysql://IP:3306/database-navn
Load vores properties fil i Java og opret forbindelsen til DB - eksempel

Kode: Vælg alt

//opret et properties objekt til at holde selve properties filen
Properties properties = new Properties();

//opret et connection objekt til at holde vores forbindelse, sådan så vi kan return den til andre dele af programmet
Connection connection = null;

String path = System.getProperty("user.dir");
path += "/src/database.properties";

try(FileInputStream fin = new FileInputStream(path)) {

	properties.load(fin);
	//herefter kan vi lave vores forbindelse til databasen
	try {
		Class.forName(properties.getProperty("JDBC_DRIVER"));
				
		//opening connection
		connection = (Connection) DriverManager.getConnection(properties.getProperty("DB_URL"),properties.getProperty("USER"),properties.getProperty("PASS"));
				
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}

} catch (IOException io) {
	io.printStackTrace();
}

return connection;
Note. Opretter et link til jdbc driveren over weekenden.

Opret prepared statement

Eksekver prepared statement imod DB (få retur værdi)

Løb igennem retur værdi (result set)

Besvar