mapreduce--读取mysql数据库数据
    import java.io.File;
import java.io.IOException; 
import java.io.DataInput; 
import java.io.DataOutput; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.Iterator;  
import org.apache.hadoop.examples.EJob;
import org.apache.hadoop.filecache.DistributedCache; 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text; 
import org.apache.hadoop.io.Writable; 
import org.apache.hadoop.mapred.JobClient; 
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.JobConf; 
import org.apache.hadoop.mapred.MapReduceBase; 
import org.apache.hadoop.mapred.Mapper; 
import org.apache.hadoop.mapred.OutputCollector; 
import org.apache.hadoop.mapred.FileOutputFormat; 
import org.apache.hadoop.mapred.Reporter; 
import org.apache.hadoop.mapred.lib.db.DBWritable; 
import org.apache.hadoop.mapred.lib.db.DBInputFormat; 
import org.apache.hadoop.mapred.lib.db.DBConfiguration;   
public class ReadDB {   
    public static class Map extends MapReduceBase implements 
            Mapper<LongWritable, StudentRecord, LongWritable, Text> {   
        // map 
        public void map(LongWritable key, StudentRecord value, 
        OutputCollector<LongWritable, Text> collector, Reporter reporter) 
                throws IOException { 
            collector.collect(new LongWritable(value.id), 
                    new Text(value.toString())); 
        }   
    } 
    	//reducer
       public static class Reduce extends MapReduceBase implements Reducer<LongWritable,Text,LongWritable,Text>{
		@Override
		public void reduce(LongWritable key, Iterator<Text> value,
				OutputCollector<LongWritable,Text> collector, Reporter reporter)
				throws IOException {
			// TODO Auto-generated method stub
			while (value.hasNext()){
				collector.collect(key,value.next());
			}
		}    	   
       }  
    public static class StudentRecord implements Writable, DBWritable { 
        public int id; 
        public String name; 
        public String sex; 
        public int age;   
        @Override 
        public void readFields(DataInput in) throws IOException { 
            this.id = in.readInt(); 
            this.name = Text.readString(in); 
            this.sex = Text.readString(in); 
       &nbs