package com.demo;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class FindErrorRow {
public static class Student{
public Student(String name, int age){
this.age = age;
this.name = name;
}
public int age;
public String name;
}
public static void main(String[] args) throws SQLException,
ClassNotFoundException, IOException {
String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(driver);
Connection conn = DriverManager
.getConnection("jdbc:sqlserver://192.168.11.84; DatabaseName=dbintranet20160908; user=sa;password=1");
PreparedStatement state = conn
.prepareStatement("select id,qianyuetime,birthday,name from tblStudentStatus");
ResultSet rs = state.executeQuery();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
sf.setLenient(false); // 设置为false, 表示不会宽松的处理时间字符串,严格检验
SimpleDateFormat sf1 = new SimpleDateFormat("yyyy");
String name;
String qianyue;
String birthday;
Date qianyueDate;
Date birtDate;
int qianyue_int;
int birtday_int;
int age_current;
int id;
Map<Integer, List<Student>> map = new HashMap<Integer, List<Student>>();
List<Student> students;
Student student;
while (rs.next()) {
try {
qianyue = rs.getString("qianyuetime");
birthday = rs.getString("birthday");
name = rs.getString("name");
qianyueDate = sf.parse(qianyue);
birtDate = sf.parse(birthday);
qianyue_int = Integer.parseInt(sf1.format(qianyueDate));
birtday_int = Integer.parseInt(sf1.format(birtDate));
age_current = qianyue_int - birtday_int;
if(age_current > 0){
student = new Student(name, age_current);
if(map.containsKey(qianyue_int)){
map.get(qianyue_int).add(student);
}else{
students = new ArrayList<Student>();
students.add(student);
map.put(qianyue_int, students);
}
}
} catch (ParseException e) {
continue;
} catch ( NullPointerException e){
continue;
} catch(NumberFormatException e){
continue;
}
}
String sql = "insert into Temp_StudentAge(name, age, qianyue) values(?,?,?)";
int qianyue_year;
for(Entry<Integer, List<Student>> entry : map.entrySet()){
qianyue_year = entry.getKey();
for(Student stu : entry.getValue()){
state = conn.prepareStatement(sql);
state.setString(1, stu.name);
state.setInt(2, stu.age);
state.setInt(3, qianyue_year);
state.execute();
}
}
conn.close();
state.close();
rs.close();
System.out.print("end");
}
}
Finderror
最新推荐文章于 2024-03-20 20:00:00 发布