HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.02.2017, 11:56
parrx
Познающий
Регистрация: 11.10.2016
Сообщений: 58
С нами: 5045587

Репутация: 7
По умолчанию

Всем привет! Гуру джавы подскажите пожалуйста как из бд присвоить значение к стрингу, и обновлять его при определенном условии?

Сделал набросок, но думалка что-то не думает, и сомнение в правильности (новичок еще) кода..

Цитата:
Сообщение от Спойлер  

class blablabla()

{

public static String str1;

public static String str2;

public int something = get.Rnd(123);

public void First(String strOne, String strTwo)

{

Connection con = null;

PreparedStatement statement = null;

ResultSet rs = null;

try

{

con = DatabaseFactory.getInstance().getConnection();

statement = con.prepareStatement("SELECT value1=?, value2=? FROM table1;");

statement.setString(1, strOne);

statement.setString(2, strTwo);

statement.execute();

DbUtils.close(statement);

rs = statement.executeQuery();

if (rs.next())

{

strOne(String.valueOf(rs.getString("value1")));

strOne(String.valueOf(rs.getString("value2")));

str1 = strOne;

str2 = strTwo;

}

else if (rset.getInt(1) > 0)

{

if(something == 123)

{

// Update

statement = con.prepareStatement("UPDATE table1 SET value1=123456;");

statement.setEscapeProcessing(true);

statement.setString(1, strOne);

statement.executeUpdate();

}

else

{

System.out.println("nothing >>>>>>>>");

}

}

}

catch (Exception e)

{

_log.error(StringUtils.EMPTY, e);

}

finally

{

DbUtils.closeQuietly(con, statement, rs);

}

}

}
 
Ответить с цитированием

  #2  
Старый 17.02.2017, 19:53
Enmity
Познавший АНТИЧАТ
Регистрация: 22.09.2015
Сообщений: 1,710
С нами: 5599885

Репутация: 0


По умолчанию

коннект к бд, если его нет

Код:


Код:
{
    Connection conn = null;
    String url = "jdbc:mysql://1.2.3.4:3306/";
    String dbName = "testdbname";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "testusername";
    String password = "12345";
    try {
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url + dbName, userName, password);
        System.out.println("Connected to the database");
       //если нужно закрывать коннект, т.е я лично использую это дело как проверялку работы мускула на чём-то
        conn.close();
        System.out.println("Disconnected from database");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
достать что-то и присвоить что-то

sorenocopypaste.webpEnmity · 17 Фев 2017 в 18:53' data-fancybox="lb-thread-4939" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://mmo-dev.info/attachments/sorenocopypaste-webp.20329/" data-type="image" style="cursor: pointer;" title="sorenocopypaste.webp">

можешь использовать как пример

Цитата:
Сообщение от Спойлер  

за код не ругать, это было давно и неправда
тут по факту в коде у тебя после executeQuery() получается ResultSet, который ты итерируешь и тащишь из него данные.

подставлять какие-то значения вместо "someshet=?" можешь с помощью smth.set(LongStringIntAnyAnotherShit)(иденти фикатор в виде цифры, значение);

значение можно получать с геттеров без проблем, как видно выше в коде.

к примеру если ты разобрал пачку значений из ResultSet, ты можешь кинуть их куда-нибудь в мапку и потом с ними работать. таким же образом ты можешь присваивать их к чему-то.

т.е к примеру, весь код писать не буду, куски сверху идентичные:

Код:


Код:
**** some shit here****
String jafaisatrap = "";
**** some shit here ****
jafaisatrap = resultSet.getString("название_колонки_с_которой_мы_тащим_значение");
если мутишь [S]чан с говном[/S] мапку с данными, то будет что-то вроде такого:

Код:


Код:
kakayaToRandomnayaMapa kartaGovnokoda = new kakayaToRandomnayaMapa<>();
**** some shit here ****
while(resultSet.next()) {
**** some shit here ****
kakietoDannie.govnokod = resultSet.getString("govnokod");
kakietoDannie.aPravdaGovnokod = resultSet.getBoolean("anepizdiwlitichasom")
kartaGovnokoda.put(K,V); //k - key, v - value, pogugli sam rabotu s mapkami, moi iuniy drug
}

class kakietoDannie {
String govnokod;
boolean aPravdaGovnokod;
}
т.е в конце каждой итерации резултсета ты делаешь чёт с этими данными и всё. надо тебе их затолкать куда-то - заталкивай прям тут.

как обновлять его при определённом условии - конкретнее, шо за условие.

в теории тебе надо ту же матёрую схему из девяностых провернуть и не париться, но вдруг ты уже накосячил и тебя во второй раз пуля ждёт.

больше инфоса
 
Ответить с цитированием

  #3  
Старый 17.02.2017, 22:08
parrx
Познающий
Регистрация: 11.10.2016
Сообщений: 58
С нами: 5045587

Репутация: 7
По умолчанию

Спасибо за хороший пинок) сейчас попробую по этому примеру)

Цитата:
Сообщение от Enmity  

коннект к бд, если его нет
больше инфоса
например

Код:


Код:
//есть
string one = "111111"; //(значение берется из базы)
//потом условие какое либо
if(земля == планета){
     one = "222222"; // данные изменяются в бд
}
if(земля == луна){
     one = "333333"; тоже обновляется значение
}
З.Ы. Ваш пример я распечатаю и в рамочку поставлю))))
 
Ответить с цитированием

  #4  
Старый 17.02.2017, 22:11
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

Запрещено публиковать исходный код без BB-кода — CODE.
 
Ответить с цитированием

  #5  
Старый 17.02.2017, 22:16
parrx
Познающий
Регистрация: 11.10.2016
Сообщений: 58
С нами: 5045587

Репутация: 7
По умолчанию

Извините больше не буду
 
Ответить с цитированием

  #6  
Старый 17.02.2017, 23:14
Enmity
Познавший АНТИЧАТ
Регистрация: 22.09.2015
Сообщений: 1,710
С нами: 5599885

Репутация: 0


По умолчанию

Цитата:
Сообщение от parrx  

Спасибо за хороший пинок) сейчас попробую по этому примеру)

например

Код:


Код:
//есть
string one = "111111"; //(значение берется из базы)
//потом условие какое либо
if(земля == планета){
     one = "222222"; // данные изменяются в бд
}
if(земля == луна){
     one = "333333"; тоже обновляется значение
}
З.Ы. Ваш пример я распечатаю и в рамочку поставлю))))
т.е как я понимаю тебе надо, если в рандом_название_метода срабатывает какое-то условие, вкорячивать это дело в базу?

получаешь от DatabaseFactory если он есть \ делаешь коннект к базе если его нет, делаешь statement с INSERT'ом.

алгоритм тот же, код не особо разнится.

Код:


Код:
%%%% всё тот же говнокод шо и сверху%
PreparedStatement statement = connection.prepareStatement("SELECT * FROM bbs_buffer WHERE player_id=?;"); ->>>>>

PreparedStatement statement = connection.prepareStatement("INSERT INTO sometable VALUES(someshit) ;");
если по идентификатору, к примеру таблица у нас имеет столбы id, value и называется govnokod ->

Код:


Код:
PreparedStatement statement = connection.prepareStatement("INSERT INTO govnokod VALUES(id, YOUR_STRING_HERE_MYFRENDE) WHERE id=? ;");
если с кодом заталкивания в этот стейтмент всякого мусора:

Код:


Код:
PreparedStatement statement = connection.prepareStatement("INSERT INTO govnokod VALUES(?, ?) WHERE id=? ;");
statement.setInt(1, TVOY_KLASSNIY_ID);
statement.setInt(2, TVOY_KLASSNIY_STRING);
statement.setInt(3, TVOY_KLASSNIY_ID);
ResultSet resultSet = statement.executeQuery();
[S]и дальше по аналогии работаешь с данными стейтмента.[/S] я забыл шо у нас тут инсерт, шо с ним делать ещё надо.

чтоб вынести в отдельный метод апдейт этой строки (на самом деле в твоём случае не обязательно, но если хочешь красивостей, то пишешь метод вроде такого):

Код:


Код:
// public - если в отдельном классе валяется, так можешь спокойно костылить private
public static void davaiVkoryachimGovnokod(int someUnfuckableId, String someUnfuckableShietdata){
%%%% тут какой-то говнокод про то как ты к базе пути ищешь %%%%
PreparedStatement statement = connection.prepareStatement("INSERT INTO govnokod VALUES(?, ?) WHERE id=? ;");
statement.setInt(1, someUnfuckableId);
statement.setInt(2, someUnfuckableShietdata);
statement.setInt(3, someUnfuckableId);
ResultSet resultSet = statement.executeQuery();
//название в зависимости от коннекта
connection.close(); // никогда не забывай закрывать поток
}
и просто при срабатывании чего-то тупо вызываешь метод, передавая в него id и String с мусором.

Цитата:
Сообщение от parrx  

Код:


Код:
//есть
string one = "111111"; //(значение берется из базы)
//потом условие какое либо
if(земля == планета){
     one = "222222"; // данные изменяются в бд
}
if(земля == луна){
     one = "333333"; тоже обновляется значение
}
а, да, забыл совсем. вот тебе смесь твоего и моего говнокода

Код:


Код:
String one = "";
// код у истинного говнокодера должен иметь ид такое же классное, как и сам говнокодер. вкорячим сюда 228 лулза ради.
if(код == говно){
     one = "222222";
     davaiVkoryachimGovnokod(228, one);
}
if(земля == луна){
     System.out.println("если я выполнился, значит мир сошёл с ума"); // этого достаточно в этом условии
}
 
Ответить с цитированием

  #7  
Старый 18.02.2017, 02:38
parrx
Познающий
Регистрация: 11.10.2016
Сообщений: 58
С нами: 5045587

Репутация: 7
По умолчанию

Цитата:
Сообщение от Enmity  

я забыл шо у нас тут инсерт, шо с ним делать ещё надо.
но что-то у меня не получается данные присвоить стрингу...

Код:


Код:
public class mainOne
{
    public static String first;

    public void thisIsClass1()
    {
        String pervaya = "";
        String vtoraya= "";
        String three= "";
        String four= "";
        String five= "";
        String six= "";
        String seven= "";
        String new1= "";
        String new2= "";
       
        Connection con = null;
        PreparedStatement statement = null;
        ResultSet rs = null;
        try 
        {
            con = DatabaseFactory.getInstance().getConnection();
            statement = con.prepareStatement("INSERT INTO table VALUES(?, ?) WHERE id=? AND id2=?;");
            statement.setString(1, "111111");
            statement.setString(2, pervaya);
            statement.setString(3, "00--00--00");
            ResultSet resultSet = statement.executeQuery();

            con.close();
        }
        catch (Exception e) 
        {
            e.printStackTrace();
        }
        finally 
        {
            DbUtils.closeQuietly(con, statement, rs);
        }
        first=pervaya;
    }
   
    public thisIsClass2()
    {
        pervaya = "9999999";
        vtoraya= "8888888";
        three= "3333333333333";
        four= "444444444444";
        five= "5555555555";
        six= "666666666";
        seven= "77777777";
        new1= "8888";
        new2= "111111111";
    }
 
Ответить с цитированием

  #8  
Старый 18.02.2017, 02:40
Enmity
Познавший АНТИЧАТ
Регистрация: 22.09.2015
Сообщений: 1,710
С нами: 5599885

Репутация: 0


По умолчанию

Цитата:
Сообщение от parrx  

но что-то у меня не получается данные присвоить стрингу...
сложный вопрос - а нахера сначала инсертить данные в бд, а потом эти же данные тащить в стринг?

у тебя вся логика где-то в бороде, посмотри шо за ужас ты написал

вообще шо из всего вышенаписанного ты пытаешься получить?

я вижу кашу из вышеописанного чана с дерьмом, к примеру, а ты что видишь?

и вообще, ты ИДЕху юзаешь какую-либо?

я скопировал посмотреть шо на этот ужас скажет телега, она меня из чана поливает до сих пор за такой ад.

ладно, давай проедемся [S]катком[/S] по коду.

чудотворный класс thisIsClass2 - на кой болт он нужен и какое у него предназначение?

зачем в отдельном [S]классе[/S] не классе, но по названию классе, хранить этот мусор?

во-первых выкидываем в помойку этот класс2, мы ж не совсем дауны, верно?

мало того что у тебя переменные объявлены внутри другого метода, что значит что конкретно таким образом ты просто написал 9 cтрок какой-то дичи, так ты ещё и юзать это пытаешься. U SRSLY MAN?

едем дальше, предположим что превратили мы этот аутистический паровоз в что-то подобное

Цитата:
Сообщение от Спойлер  

2250e-clip-59kb[1].webpEnmity · 18 Фев 2017 в 01:40' data-fancybox="lb-thread-4939" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://mmo-dev.info/attachments/2250e-clip-59kb-1-webp.20330/" data-type="image" style="cursor: pointer;" title="2250e-clip-59kb[1].webp">

есть у нас инсерт тут, окей, инсертом мы тащим в базу какой-то буллшит, окей.

вопрос - в кой чёрт у нас тут [S]присвоение стринга к стрингу[/S] вся эта помойка с бд, если мы её не используем?

более того, после инсерта мы не имеем ResultSet'a, потому мы можем просто брать как топовые пацаны и корячить такой паровоз. когда писал предыдущий пост чёт затупил. не делай так.

Код:


Код:
//autistic mode
ResultSet resultSet = statement.executeQuery();
//govnokod.setKostiliCount(govnokod.getKostiliCount() - 1)
statement.executeQuery();
и так всё же, на кой болт тут вся эта помойка с бд, если нам нужно просто прикостылить строку к строке?

Цитата:
Сообщение от Спойлер  


но ведь это ж говнина, мы ж заморачивались тут шоб у нас с бд чёт подтягивалось, а строку любой [S]яйциент[/S] даун прикрутить сможет.

давай селектить.

Цитата:
Сообщение от Спойлер  

b49bb-clip-68kb[1].webpEnmity · 18 Фев 2017 в 01:40' data-fancybox="lb-thread-4939" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://mmo-dev.info/attachments/b49bb-clip-68kb-1-webp.20332/" data-type="image" style="cursor: pointer;" title="b49bb-clip-68kb[1].webp">

вопрос раскрыт, или нужно больше костылей в сей тред?
 
Ответить с цитированием

  #9  
Старый 19.02.2017, 18:10
parrx
Познающий
Регистрация: 11.10.2016
Сообщений: 58
С нами: 5045587

Репутация: 7
По умолчанию

Цитата:
Сообщение от Enmity  

вопрос раскрыт, или нужно больше костылей в сей тред?
Спасибо попробовал так сделать но, почему то все равно значение строки "null", не подтягивает значение из бд

второй класс добавлен для того чтобы в нем можно было выводить значение строки)) задумка наркоманская) согласен

на словах вроде просто

Цитата:
Сообщение от Спойлер  

объявляем строку (которую во 2 классе и выводим)

подтягиваем ее значение из бд

потом при каком либо изменении обновляем значение(которому равна строка) в бд
 
Ответить с цитированием

  #10  
Старый 19.02.2017, 19:54
Enmity
Познавший АНТИЧАТ
Регистрация: 22.09.2015
Сообщений: 1,710
С нами: 5599885

Репутация: 0


По умолчанию

код в студию
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.