Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DataServer extends UnicastRemoteObject implements RMIServer {
- public static int rmiRegistry;
- public static PreparedStatement mysql;
- public static ResultSet resultSet;
- public static Connection conn = null;
- public DataServer() throws RemoteException {
- super();
- }
- public static void load_config() {
- String file = "DataServerConfig.txt";
- String line;
- StringTokenizer tokenizer;
- System.out.println("Uploding DataServer configurations...");
- try {
- FileReader inputFile = new FileReader(file);
- BufferedReader buffer = new BufferedReader(inputFile);
- for (int i = 0; i < 1; i++) {
- line = buffer.readLine();
- tokenizer = new StringTokenizer(line, "=");
- line = tokenizer.nextToken();
- if (line.equals("RMI Registry")) {
- rmiRegistry = Integer.parseInt(tokenizer.nextToken());
- }
- }
- } catch (FileNotFoundException e) {
- System.out.println("File " + file + " not found");
- System.exit(0);
- } catch (IOException e) {
- }
- System.out.println("DataServerConfig.txt successfully uploaded.");
- }
- @Override
- public boolean userRegistration(Info info) throws RemoteException {
- System.out.println("Register Client");
- try {
- User user = (User) info.getUser();
- mysql = conn.prepareStatement("INSERT INTO users(USERNAME, PASSWORD,ADMIN, LOG) VALUES (?,?,?,?);");
- mysql.setString(1, user.getUsername());
- mysql.setString(2, user.getPassword());
- mysql.setBoolean(3, user.getAdmin());
- mysql.setBoolean(4, user.getLog());
- mysql.executeUpdate();
- conn.commit();
- } catch (SQLException e) {
- System.out.println("False");
- return false;
- }
- System.out.println("True");
- return true;
- }
- @Override
- public boolean createAuction(Info info) {
- System.out.println("Create auction");
- try {
- Leilao leilao = (Leilao) info.getAuction();
- mysql = conn.prepareStatement("INSERT INTO leilao(IDLEILAO, USER,CODIGO,TITULO,DESCRICAO,AMOUNT,FIM,DATA,VENCEDOR) VALUES (null,?,?,?,?,?,false,?,null);");
- mysql.setString(1, leilao.getUser().getUsername());
- mysql.setInt(2, leilao.getCodigoBarras());
- mysql.setString(3, leilao.getTitulo());
- mysql.setString(4, leilao.getDetalhes());
- mysql.setInt(5, leilao.getPrecoMaximo());
- //FALTA TERMINAR DATA - ainda não passa data
- /*DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date myDate = formatter.parse(leilao.getData().toString());
- java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());*/
- mysql.setDate(6, null);
- mysql.executeUpdate();
- conn.commit();
- } catch (SQLException e) {
- return false;
- } /*catch (ParseException ex) {
- Logger.getLogger(DataServer.class.getName()).log(Level.SEVERE, null, ex);
- return false;
- }*/
- System.out.println("True");
- return true;
- }
- @Override
- public boolean userLogin(Info info) throws RemoteException {
- System.out.println("Login Client ");
- System.out.println("Resquest for User: " + info.getUser().getUsername());
- try {
- User user = (User) info.getUser();
- mysql = conn.prepareStatement("SELECT password FROM users WHERE username=?;");
- mysql.setString(1, user.getUsername());
- resultSet = mysql.executeQuery();
- while (resultSet.next()) {
- if (resultSet.getString(1).equals(info.getUser().getPassword())) {
- System.out.println("True");
- conn.commit();
- mysql = conn.prepareStatement("UPDATE users SET log=? WHERE username=?;");
- mysql.setBoolean(1,true);
- mysql.setString(2, user.getUsername());
- mysql.executeUpdate();
- conn.commit();
- return true;
- }
- }
- conn.commit();// Usamos commit, mas não era necessario visto que o select sem "FOR UPDATE" não bloquei a transação
- } catch (SQLException e) {
- System.out.println("False");
- return false;
- }
- return false;
- }
- @Override
- public boolean userLogout(Info info) throws RemoteException{
- System.out.println(info.getUser().getUsername()+" loged out.");
- try{
- mysql = conn.prepareStatement("UPDATE users SET log=? WHERE username=?;");
- mysql.setBoolean(1,false);
- mysql.setString(2,info.getUser().getUsername());
- mysql.executeUpdate();
- conn.commit();
- System.out.println("True");
- return true;
- }catch(SQLException e){
- System.out.println("False");
- }
- return false;
- }
- @Override
- public boolean editCode(Info info) throws RemoteException{
- System.out.println("Edit auction code");
- System.out.println("Resquest code change for ID_Auction: " + info.getID());
- try{
- mysql = conn.prepareStatement("UPDATE leilao SET codigo=? WHERE idleilao=?;");
- mysql.setInt(1,info.getCodigoBarras());
- mysql.setInt(2,info.getID());
- mysql.executeUpdate();
- conn.commit();
- System.out.println("True");
- return true;
- }catch(SQLException e){
- System.out.println("False");
- }
- return false;
- }
- @Override
- public boolean editTitle(Info info) throws RemoteException{
- System.out.println("Edit auction title");
- System.out.println("Resquest code change for ID_Auction: " + info.getID());
- try{
- mysql = conn.prepareStatement("UPDATE leilao SET titulo=? WHERE idleilao=?;");
- mysql.setString(1,info.getTitle());
- mysql.setInt(2,info.getID());
- mysql.executeUpdate();
- conn.commit();
- System.out.println("True");
- return true;
- }catch(SQLException e){
- System.out.println("False");
- }
- return false;
- }
- @Override
- public Leilao getAuctionByID(Info info) throws RemoteException{
- User user = new User();
- System.out.println("Searching auction");
- System.out.println("Request details of ID_Auction: "+info.getCodigoBarras());
- try{
- mysql = conn.prepareStatement("SELECT user, codigo, titulo, descricao, amount, fim, data, vencedor FROM leilao WHERE idleilao=?;");
- mysql.setInt(1,info.getCodigoBarras());
- ResultSet rs = mysql.executeQuery();
- rs.next();
- user.setUsername(rs.getString(1));
- User user1 = new User();
- if(rs.getString(8)!=null){
- user1.setUsername(rs.getString(8));
- }else{
- user1=null;
- }
- Leilao leilao = new Leilao(user, rs.getInt(2), rs.getString(3), rs.getString(4),rs.getInt(5),rs.getBoolean(6),null,user1);
- mysql = conn.prepareStatement("SELECT username, amount FROM bid WHERE id=?;");
- mysql.setInt(1,info.getCodigoBarras());
- ResultSet rslt = mysql.executeQuery();
- while(rslt.next()){
- Bid bid;
- bid = new Bid(rslt.getString(1),rslt.getInt(2));
- leilao.addBid(bid);
- }
- mysql = conn.prepareStatement("SELECT username, message FROM comentario WHERE id=?;");
- mysql.setInt(1,info.getCodigoBarras());
- ResultSet rslt1 = mysql.executeQuery();
- while(rslt1.next()){
- Comentario coment;
- coment = new Comentario(rslt1.getString(1),rslt1.getString(2));
- leilao.addComentario(coment);
- }
- conn.commit();
- System.out.println("True");
- return leilao;
- }catch(SQLException e){
- System.out.println("False");
- return null;
- }
- }
- @Override
- public boolean editDescription(Info info) throws RemoteException{
- System.out.println("Edit auction description");
- System.out.println("Request description change for ID_Auction" + info.getID());
- try{
- mysql = conn.prepareStatement("UPDATE leilao SET descricao=? WHERE idleilao=?;");
- mysql.setString(1,info.getTitle());
- mysql.setInt(2,info.getID());
- mysql.executeUpdate();
- conn.commit();
- System.out.println("True");
- return true;
- }catch(SQLException e){
- System.out.println("False");
- }
- return false;
- }
- public boolean editAmount(Info info) throws RemoteException{
- System.out.println("Edit auction amount");
- System.out.println("Request amount change for ID_Auction" + info.getID());
- try{
- mysql = conn.prepareStatement("UPDATE leilao SET amount=? WHERE idleilao=?;");
- mysql.setInt(1,info.getCodigoBarras());
- mysql.setInt(2,info.getID());
- mysql.executeUpdate();
- conn.commit();
- System.out.println("True");
- return true;
- }catch(SQLException e){
- System.out.println("False");
- }
- return false;
- }
- public static void main(String[] args) throws SQLException {
- load_config();
- //Leilao leilao = new Leilao(null,123,"bananas","da madeira",69,false,null, null);
- //System.out.println(leilao.toString());
- conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/sd", "root", "grifo");
- try {
- conn.setAutoCommit(false);
- } catch (SQLException ex) {
- conn.rollback();
- // não sei se funciona assim
- }
- try {
- Registry createRMIRegistry = LocateRegistry.createRegistry(rmiRegistry);
- DataServer dataserver = new DataServer();
- createRMIRegistry.rebind("rmi", dataserver);
- } catch (RemoteException e) {
- //System.out.println("Error executing remote method in DataServer: "+ e);
- int ola = 0;
- while (ola == 0) {
- try {
- Registry createRMIRegistry = LocateRegistry.createRegistry(rmiRegistry);
- DataServer dataserver = new DataServer();
- createRMIRegistry.rebind("rmi", dataserver);
- ola = 1;
- } catch (RemoteException e1) {
- }
- }
- }
- System.out.println("\n\nData Server is ready for business!!!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement