/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.oic.client; import com.oic.map.MapFactory; import com.oic.map.OicMap; import com.oic.map.Position; import com.oic.utils.DatabaseConnection; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; /** * * @author morimoto */ public class OicCharacter { private Position pos; private long userId; private String studentNumber; private long avatarId; private String name; private int grade; private OicGender gender; private Date birthday; private String comment; private int mapid; private OicMap map; private static final int CHAR_WIDTH = 100; private static final int CHAR_HEIGHT = 230; public static OicCharacter loadCharFromDB(long userId){ Connection con = null; PreparedStatement ps = null; ResultSet rs = null; try{ OicCharacter ret = new OicCharacter(); String sql = "SELECT * FROM user WHERE userid = ? "; con = DatabaseConnection.getConnection(); ps = con.prepareStatement(sql); ps.setLong(1, userId); rs = ps.executeQuery(); if(!rs.next()){ throw new RuntimeException("Loading the Information Filed."); } ret.userId = rs.getLong("userid"); ret.studentNumber = rs.getString("studentnumber"); ret.avatarId = rs.getLong("avatarid"); ret.name = rs.getString("name"); ret.grade = rs.getInt("grade"); ret.gender = OicGender.getGender(rs.getString("sex")); ret.birthday = rs.getDate("birth"); ret.comment = rs.getString("comment"); Position pos = new Position(0, 0, CHAR_WIDTH, CHAR_HEIGHT); ret.setPos(pos); rs.close(); ps.close(); return ret; }catch(Exception e){ try{ rs.close(); }catch(Exception e1){} try{ ps.close(); }catch(Exception e1){} e.printStackTrace(); return null; } } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public String getStudentNumber() { return studentNumber; } public void setStudentNumber(String studentNumber) { this.studentNumber = studentNumber; } public long getAvatarId() { return avatarId; } public void setAvatarId(long avatarId) { this.avatarId = avatarId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } public OicGender getGender() { return gender; } public void setGender(OicGender gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public Position getPos() { return pos; } public void setPos(Position pos) { this.pos = pos; } public int getMapid() { return mapid; } public OicMap getMap(){ return map; } //TODO 整合性チェック public void changeMap(int mapid) { map.removeCharacter(userId); enterMap(mapid); } public void loginMap(int mapid){ enterMap(mapid); } private void enterMap(int mapid){ MapFactory factory = MapFactory.getInstance(); map = factory.getMap(mapid); this.mapid = map.getMapId(); map.setCharacter(this); } }