자바 csv 파일 가 져 오기 및 중국어 혼란 해결

첫 번 째 줄 은 MultipartFile 을 통 해 java. util. Scanner 대상 을 얻 었 을 때 GBK 라 는 인 자 를 추가 해 야 합 니 다. 그렇지 않 으 면 csv 파일 에 중국어 가 존재 할 때 중국어 오류 가 발생 할 수 있 습 니 다.
userDelimiter ("\ \ A") 는 직접 이렇게 쓰 면 됩 니 다. 구체 적 으로 왜 이렇게 쓰 는 지 는 아직 연구 되 지 않 았 습 니 다.
// file  MultipartFile ,controller      
Scanner s = new Scanner(file.getInputStream(), "GBK").useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";
List userList = new ArrayList();
try {
	List> data = JsonUtil.readObjectsFromCsv(result);
	JSONArray json = JsonUtil.listOfMapToJsonArray(data);
	JSONObject jsonObj = null;
	Date date = null;
	SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
	for (int i = 0; i < json.length(); i++) {
		User user = new User();
		jsonObj = json.getJSONObject(i);
		String id = jsonObj.getString("ID");
		String name = jsonObj.getString("name");
		String age = jsonObj.getString("age");
		String telephone = jsonObj.getString("telephone");
		String sex = limitAndCurrency.replaceAll("sex");
		user.setId(id);
		user.setName(name);
		user.setAge(age);
		user.setTelephone(telephone);
		user.setSex(sex);
		//        
		user.setType("1");
		user.setIsClosed("1");
                userList.add(user);
	}
} catch (Exception e) {
	e.printStackTrace();
}
return userList;

위의 코드 를 통 해 사용자 집합 userList 를 얻 은 후에 대량으로 추가 하 는 방법 으로 데이터베이스 에 삽입 할 수 있 습 니 다.
MyBatis 에서 다음 코드 는 데이터 가 존재 하지 않 으 면 새로 추가 하고 존재 하면 업데이트 할 수 있 습 니 다 (홈 키 에 따라 판단).
이 방법 은 MySQL 데이터베이스 에 만 적 용 됩 니 다!!!

  	insert into user()
  	values 
  	
  		(
  			#{item.id,jdbcType=VARCHAR},
  			#{item.name,jdbcType=VARCHAR},
  			#{item.age,jdbcType=VARCHAR},
  			#{item.telephone,jdbcType=VARCHAR},
  			#{item.sex,jdbcType=VARCHAR},
  			#{item.type,jdbcType=VARCHAR},
  			#{item.isClosed,jdbcType=VARCHAR}
  		)
  	
  	ON DUPLICATE KEY UPDATE 
  	name = VALUES(name),
  	age = VALUES(age),
  	telephone = VALUES(telephone),
  	sex = VALUES(sex),
  	type = VALUES(type),
  	is_closed = VALUES(is_closed)

테스트 진행, 가 져 오기 성공!

좋은 웹페이지 즐겨찾기