6 my $schema = MyDatabase::Main->connect('dbi:SQLite:db/example.db');
7 # for other DSNs, e.g. MySql, see the perldoc for the relevant dbd
8 # driver, e.g perldoc L<DBD::mysql>.
10 get_tracks_by_cd('Bad');
11 get_tracks_by_artist('Michael Jackson');
13 get_cd_by_track('Stan');
14 get_cds_by_artist('Michael Jackson');
16 get_artist_by_track('Dirty Diana');
17 get_artist_by_cd('The Marshall Mathers LP');
20 sub get_tracks_by_cd {
22 print "get_tracks_by_cd($cdtitle):\n";
23 my $rs = $schema->resultset('Track')->search(
25 'cd.title' => $cdtitle
29 prefetch => [qw/ cd /]
32 while (my $track = $rs->next) {
33 print $track->title . "\n";
38 sub get_tracks_by_artist {
39 my $artistname = shift;
40 print "get_tracks_by_artist($artistname):\n";
41 my $rs = $schema->resultset('Track')->search(
43 'artist.name' => $artistname
51 while (my $track = $rs->next) {
52 print $track->title . "\n";
59 my $tracktitle = shift;
60 print "get_cd_by_track($tracktitle):\n";
61 my $rs = $schema->resultset('Cd')->search(
63 'tracks.title' => $tracktitle
66 join => [qw/ tracks /],
70 print $cd->title . "\n\n";
73 sub get_cds_by_artist {
74 my $artistname = shift;
75 print "get_cds_by_artist($artistname):\n";
76 my $rs = $schema->resultset('Cd')->search(
78 'artist.name' => $artistname
81 join => [qw/ artist /],
82 prefetch => [qw/ artist /]
85 while (my $cd = $rs->next) {
86 print $cd->title . "\n";
93 sub get_artist_by_track {
94 my $tracktitle = shift;
95 print "get_artist_by_track($tracktitle):\n";
96 my $rs = $schema->resultset('Artist')->search(
98 'tracks.title' => $tracktitle
106 my $artist = $rs->first;
107 print $artist->name . "\n\n";
111 sub get_artist_by_cd {
113 print "get_artist_by_cd($cdtitle):\n";
114 my $rs = $schema->resultset('Artist')->search(
116 'cds.title' => $cdtitle
122 my $artist = $rs->first;
123 print $artist->name . "\n\n";