package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import model.Company;
import model.Zipcode;
public class Dao
{
{
try {
String url =
"jdbc:mysql://localhost/exampledb";
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.
out.
println("Database connection established");
System.
err.
println("Cannot connect to database server: " + e
);
}
return conn;
}
public static void storeCompany(Company company)
{
try {
c = conn.prepareStatement("INSERT INTO company (companynr,companyname,zip) VALUES(?,?,?)");
c.setInt(1, company.getCompanynr());
c.setString(2, company.getCompanyname());
c.setString(3, company.getZip());
c.executeUpdate();
c.close();
}
}
public static void updateCompany(Company company, int oldNumber)
{
try {
c = conn.prepareStatement("UPDATE company SET companynr=?, companyname=?, zip=? WHERE companynr=?");
c.setInt(1, company.getCompanynr());
c.setString(2, company.getCompanyname());
c.setString(3, company.getZip());
c.setInt(4, oldNumber);
c.executeUpdate();
c.close();
if (e.getMessage().contains("Duplicate entry")) {
.println("Cannot have duplicate Primary Key (number)");
}
if (e.getMessage()
.contains(
"Cannot add or update a child row: a foreign key constraint fails")) {
System.
out.
println("Invalid ZIP");
}
}
}
public static void deleteCompany(Company company)
{
try {
c = conn.prepareStatement("DELETE FROM company WHERE companynr=?");
c.setInt(1, company.getCompanynr());
c.executeUpdate();
c.close();
}
}
public static List<Company> getAllCompanys()
{
ArrayList<Company> result = new ArrayList<Company>();
try {
c.executeQuery("SELECT companynr, companyname, zip FROM company");
while (rs.next()) {
Company company = new Company();
company.setCompanynr(rs.getInt("companynr"));
company.setCompanyname(rs.getString("companyname"));
if (rs.wasNull()) {
company.setCompanyname("(name missing)");
}
company.setZip(rs.getString("zip"));
if (rs.wasNull()) {
company.setZip("????");
}
result.add(company);
}
rs.close();
c.close();
}
return result;
}
public static ArrayList<Zipcode> getDistricts()
{
ArrayList<Zipcode> districts = new ArrayList<Zipcode>();
try {
z.executeQuery("SELECT zip, postaldistrict FROM zipcode");
while (rs.next()) {
Zipcode zipcode = new Zipcode();
zipcode.setZip(rs.getString("zip"));
if (rs.wasNull()) {
zipcode.setZip("????");
}
zipcode.setPostaldistrict(rs.getString("postaldistrict"));
if (rs.wasNull()) {
zipcode.setPostaldistrict("(district missing)");
}
districts.add(zipcode);
}
rs.close();
z.close();
}
return districts;
}
public static ArrayList<Zipcode> getDistricts
(String zip
) {
ArrayList<Zipcode> districts = new ArrayList<Zipcode>();
try {
z.executeQuery("SELECT zip, postaldistrict FROM zipcode WHERE zip LIKE '"
+ zip + "%'");
while (rs.next()) {
Zipcode zipcode = new Zipcode();
zipcode.setZip(rs.getString("zip"));
if (rs.wasNull()) {
zipcode.setZip("????");
}
zipcode.setPostaldistrict(rs.getString("postaldistrict"));
if (rs.wasNull()) {
zipcode.setPostaldistrict("(district missing)");
}
districts.add(zipcode);
}
rs.close();
z.close();
}
return districts;
}
}