package connection;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Dao {
	private String dbName = "jdbc:mysql://localhost:3306/test";
	private String username;
	private String password;
	private Connection con;
	
	public Dao(String username, String password) {
		this.username = username;
		this.password = password;
	}
	
	public void getConnection() throws SQLException {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			this.con = DriverManager.getConnection(dbName, username, password);
			System.out.println(con);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public void createTable(String name) throws SQLException {  // Create a table of students with id, name, and age.
		Statement st = con.createStatement();
		String q = "CREATE TABLE " + name + "(ID int PRIMARY KEY AUTO_INCREMENT, name varchar(255), age int)";
		st.executeUpdate(q);
	}
	
	public void insert(String table, String name, int age) throws SQLException {
		PreparedStatement insertInto = con.prepareStatement("INSERT INTO " + table + "(name, age) VALUES (?,?);");
		insertInto.setString(1, name);
		insertInto.setInt(2, age);
		insertInto.executeUpdate();
		System.out.println("Insert Successful");
	}
	
	public void update(String table, String name, int age) throws SQLException {
		Statement st = con.createStatement();
		String q = "UPDATE " + table + " SET age = " + age + " WHERE name = \"" + name + "\"";
		System.out.println(q);
		st.executeUpdate(q);
	}
	
	public ResultSet selectColumn(String table, String col) throws SQLException {
		Statement st = con.createStatement();
		ResultSet r = st.executeQuery("SELECT " + col + " FROM " + table);
		return r;
	}
	
	public void close() throws SQLException {  // Close the connection.
			con.close();
	}
}
