Finderror

本文介绍了一个Java程序,该程序从SQL Server数据库中读取学生状态数据,并通过日期解析计算学生的年龄。处理后的数据被插入到另一个表格中,便于进一步分析。程序使用了日期格式化、异常处理等技术。
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");
	}
}

在MySQL中,"Can't find error-message file 'C:\dev\mysql\share\errmsg.sys'"这个错误是由于找不到错误消息文件引起的。根据引用提供的信息,这个错误消息指示MySQL无法找到错误消息文件'errmsg.sys'。可能的原因是错误消息文件的位置不正确或者配置文件中的'lc-messages-dir'指令有问题。 你可以参考引用提供的MySQL官方文档了解更多关于错误消息语言的信息。如果你的错误消息文件确实位于'C:\dev\mysql\share\errmsg.sys',请检查MySQL的配置文件中的'lc-messages-dir'指令,确保它指向正确的错误消息文件的目录。 另外,根据引用提供的附加信息,如果你正在使用特定的命令行选项来初始化MySQL数据库,你需要确保命令行选项的顺序正确。在你的情况下,你可以尝试将--initialize选项放在--defaults-file选项之后,如下所示: /data/mysql/usr/sbin/mysqld --defaults-file=/data/mysql/etc/my.cnf --initialize --user=dongzw 这样,MySQL将会使用指定的配置文件和用户来初始化数据库。 希望这些信息对你有帮助!如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [[ERROR] Can't find error-message file '/data/mysql/share/errmsg.sys'. Check error-message file ...](https://blog.youkuaiyun.com/weixin_30440721/article/details/113230024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [处理普通用户安装启动mysql报:Can't find error-message file'/usr/share/mysql/errmsg.sys' 问题](https://blog.youkuaiyun.com/ohaozy/article/details/105385479)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值