📄 testcustomertracking.java
字号:
import java.util.*;
import org.jlf.log.*;
import org.jlf.dataMap.*;
/**
* This class tests the objects of the Recording Java
* database application ability to track customer purchases
* and interests in recordings.
*/
public class TestCustomerTracking {
/**
* Main method to kick off the tests.
*/
public static void main(String[] args) {
Customer cust1, cust2, cust3, cust4;
Recording rec1, rec2, rec3, rec4, findRec;
CustomerTrackedRecording ctr1, ctr2, ctr3, ctr4, ctr5, findCtr;
DataMapper dataMapper = null;
try {
cust1 = new Customer("shiney", "shiney@yahoo.com");
cust2 = new FrequentBuyer("charlemange", "charle@hotmail.com",
"Charlie Charlemange", "123 Main Street",
"Minneapolis", "MN", "55132");
cust3 = new Corporation("choo", "choo@aol.com", "Chester Sunshine",
"Trains And More...", "431 Broadway",
"Minneapolis", "MN", "55332");
cust4 = new NonProfitCorporation("honey", "honey@yahoo.com",
"Honey Princess",
"Princess For a Day",
"3390 3rd Ave. North",
"Minneapolis", "MN", "55133",
"3390-honey-USMN");
rec1 = new Recording("Cuts Like A Knife", "Bryan Adams",
"392-0000022", 11.99);
rec2 = new Recording("Working Class Dog", "Rick Springfield",
"RS-32-1133", 10.99);
rec3 = new Recording("Come And Join Us", "Petra", "303-9388293",
11.99);
rec4 = new Recording("Lucky Town", "Bruce Springsteen",
"BK-30-23993", 13.99);
dataMapper = cust1.getDefaultDataMapper();
// Create the customers in the database
cust1.write(dataMapper);
cust2.write(dataMapper);
cust3.write(dataMapper);
cust4.write(dataMapper);
// Create the recordings in the database
rec1.write(dataMapper);
rec2.write(dataMapper);
rec3.write(dataMapper);
rec4.write(dataMapper);
dataMapper.commitWrites();
// Add some customer trackings.
// Customer 1 has an interest in Petra recording 3
ctr1 =
new CustomerTrackedRecording(cust1, rec3,
CustomerTrackingType
.CUSTOMER_INTEREST);
ctr1.write(dataMapper);
// Customer 4 has interest in Springfield (2) and Springsteen (4)
ctr2 =
new CustomerTrackedRecording(cust4, rec2,
CustomerTrackingType
.CUSTOMER_INTEREST);
ctr2.write(dataMapper);
ctr3 =
new CustomerTrackedRecording(cust4, rec4,
CustomerTrackingType
.CUSTOMER_INTEREST);
ctr3.write(dataMapper);
// Customer 2 has interest in Springsteen (4)
ctr4 =
new CustomerTrackedRecording(cust2, rec4,
CustomerTrackingType
.CUSTOMER_INTEREST);
ctr4.write(dataMapper);
// Customer 3 has purchased in Springfield (2)
ctr5 =
new CustomerTrackedRecording(cust3, rec2,
CustomerTrackingType
.CUSTOMER_PURCHASE);
ctr5.write(dataMapper);
dataMapper.commitWrites();
// Now for the real test. Let's see if we can find
// all customers that have registered an interest
// in any recording with artist %Spring%, any title.
// The result should be customer 3 and 4
// Build Recording object to find artist and title
findRec = new Recording();
findRec.setRecordingArtist("%Spring%");
findRec.setRecordingTitle("%");
// Build CustomerTrackedRecording object to
// find the recording above with a tracking type
// of customer interest
findCtr = new CustomerTrackedRecording();
findCtr.setRecording(findRec);
findCtr
.setCustomerTrackingType(CustomerTrackingType.CUSTOMER_INTEREST);
// Find customers by tracking criteria built above
Vector customersInterestedInSpringArtists =
Customer.findByTrackingCriteria(findCtr);
System.out.println("\nShould have found 2 customers below, one "
+ "Frequent Buyer and one Non-Profit Corp.");
Customer.outputCustomers(customersInterestedInSpringArtists);
// Next let's find any customers with purchases.
// The result should be corporate customer 2 only
// Build Recording object to find any artist and title
findRec = new Recording();
findRec.setRecordingArtist("%");
findRec.setRecordingTitle("%");
// Build CustomerTrackedRecording object to
// find the recording above with a tracking type
// of customer purchase
findCtr = new CustomerTrackedRecording();
findCtr.setRecording(findRec);
findCtr
.setCustomerTrackingType(CustomerTrackingType.CUSTOMER_PURCHASE);
// Find customers by tracking criteria built above
Vector customersWithPurchases =
Customer.findByTrackingCriteria(findCtr);
System.out.println("\nShould have found 1 Corporate customer below");
Customer.outputCustomers(customersWithPurchases);
// Wrap it up with a query to find non-volume
// customer 1, who is interested in Petra's
// "Come And Join Us" recording
// Build Recording object to find any artist and title
findRec = new Recording();
findRec.setRecordingArtist("%");
findRec.setRecordingTitle("Come%");
// Build CustomerTrackedRecording object to
// find the recording above with a tracking type
// of customer interest
findCtr = new CustomerTrackedRecording();
findCtr.setRecording(findRec);
findCtr
.setCustomerTrackingType(CustomerTrackingType.CUSTOMER_INTEREST);
// Find customers by tracking criteria built above
Vector customers = Customer.findByTrackingCriteria(findCtr);
System.out.println("\nShould have found 1 non-volume Customer below");
Customer.outputCustomers(customers);
// Delete all tracking relationships
ctr1.deleteOnWrite();
ctr1.write(dataMapper);
ctr2.deleteOnWrite();
ctr2.write(dataMapper);
ctr3.deleteOnWrite();
ctr3.write(dataMapper);
ctr4.deleteOnWrite();
ctr4.write(dataMapper);
ctr5.deleteOnWrite();
ctr5.write(dataMapper);
// Delete all customers
cust1.deleteOnWrite();
cust1.write(dataMapper);
cust2.deleteOnWrite();
cust2.write(dataMapper);
cust3.deleteOnWrite();
cust3.write(dataMapper);
cust4.deleteOnWrite();
cust4.write(dataMapper);
dataMapper.commitWrites();
// Delete all recordings
rec1.deleteOnWrite();
rec1.write(dataMapper);
rec2.deleteOnWrite();
rec2.write(dataMapper);
rec3.deleteOnWrite();
rec3.write(dataMapper);
rec4.deleteOnWrite();
rec4.write(dataMapper);
dataMapper.commitWrites();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if (dataMapper != null) {
dataMapper.close();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -