я не издеваюсь - просто трейс говорит об ошибке синтаксиса в этом местеСпасиюо за совет
Это использовалось как статическая переменная для тестирования
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
я не издеваюсь - просто трейс говорит об ошибке синтаксиса в этом местеСпасиюо за совет
Это использовалось как статическая переменная для тестирования
Мои скудные познания SQL подсказывают, что должно быть что-то типаString Query = "SELECT * FROM pr_data WHILE auth=" + '"'+ id +'"';
String Query = "SELECT * FROM pr_data WHERE auth = '" + id + "'";
Ок. ЕслиКак раз нет, внимательно перечитайте посты выше.
Внимательно прочитайте постОк. Если всё так просто, то зачем тогда такая куча постов, которые ещё больше запутывают? Я даже и мысли такой не имел - передавать Notes-объекты в Java-код; (что я имел в виду).
Потому, что Database в вопросе из моего 11-го поста была интерпретирована как NotesDatabase. Внимательное изучение каких-либо дополнительных постов не требуется.Мне тоже не понятно, к чему такая дискуссия образовалась.
это само собой, известно и естественноможно спокойно выдавать резалтсет в массив/ы из стрингов, при том, используя LS2J рапер, для общения с БД
и это как-то меняет дело?это всё к тому, что есть варианты взаимодействия, и необязательно агент д.б. на java...
угу - библиотека не будет включать "мертвый код" с т.з. бриджа, т.е. должна быть обеспечена "бОльшая" модульность, при проектировании либ :lovecodeby:и это как-то меняет дело?
Да получилосьallex получилось?
import lotus.domino.*;
import java.util.Vector;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.net.*;
import java.io.*;
import java.util.*;
public class JavaAgent extends AgentBase {
public static java.util.Hashtable parseQueryString(String queryString) {
StringTokenizer tokens = new StringTokenizer(queryString, "&");
Hashtable params = new Hashtable();
while (tokens.hasMoreTokens()){
String token = tokens.nextToken();
int equalIdx = token.indexOf('=');
if (equalIdx != -1 && !token.equalsIgnoreCase("OpenAgent")){
String name = token.substring(0, equalIdx);
System.out.println("name " + name);
String value = token.substring(equalIdx + 1);
System.out.println("value " + value);
params.put(name, value);
}
}
return params;
}
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Document webdoc = agentContext.getDocumentContext();
PrintWriter pw = getAgentOutput();
String qs = webdoc.getItemValueString("Query_String");
java.util.Hashtable ht = parseQueryString(qs);
String id = (String) ht.get( "id" );
// pw.println("ID : " + id);
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
// System.out.println("сессии инициировались");
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Драйвер загружен");
}
catch (Exception ex)
{
System.out.println("SQLException: " + ex.getMessage());
}
try {
conn = DriverManager.getConnection("jdbc:mysql://conect);
System.out.println("Подключение установлено");
}
catch (SQLException ex)
{
System.out.println("On connect SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
try {
stmt = conn.createStatement();
//String id = "iiyHNNRiNi3sQ6eS";
System.out.println("id " + id);
String Query = "SELECT * FROM pr_data WHERE auth = " + '"'+id+ '"';// + " ORDER BY id";
//String Query = "SELECT * FROM pr_data";
System.out.println("Запрос " + Query);
try {
rs = stmt.executeQuery(Query);
System.out.println("Запрос выполняется");
}
catch(SQLException ex)
{
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
//Vector vauth = new Vector(); // не использовать, т.к. будет только один результат
//Vector vfio = new Vector(); // не использовать, т.к. будет только один результат
//Vector vaddress = new Vector(); // не использовать, т.к. будет только один результат
//Vector vemail = new Vector(); // не использовать, т.к. будет только один результат
//Vector vmessage = new Vector(); // не использовать, т.к. будет только один результат
while (rs.next()) {
int theid= rs.getInt("id");
String fname = rs.getString("fname");
String mname = rs.getString("mname");
String lname = rs.getString("lname");
String message = rs.getString("message");
String email = rs.getString("email");
String auth = rs.getString("auth");
String pindex = rs.getString("pindex");
String pregion = rs.getString("pregion");
String plocality = rs.getString("plocality");
String pstreet = rs.getString("pstreet");
String phome = rs.getString("phome");
String pcorps = rs.getString("pcorps");
String pflat = rs.getString("pflat");
System.out.println("Переменные присвоены");
System.out.println("auth_code= " + auth );
System.out.println("id= " + theid + " ---> ФИО = " + fname + " " + mname +" "+ lname);
System.out.println("id= " + theid + " ---> Почтовый адрес = " + pindex +" "+ pregion +" "+ plocality +" "+ pstreet +" "+ phome +" "+ pcorps +" "+ pflat);
System.out.println("id= " + theid + " ---> Электронныйый адрес = " + email);
System.out.println("id= " + theid + " ---> Текст обращения = " + message );
System.out.println("_________________________________");
//vauth.addElement(auth);
//vfio.addElement(fname + " " + mname +" "+ lname);
//vaddress.addElement(pindex +" "+ pregion +" "+ plocality +" "+ pstreet +" "+ phome +" "+ pcorps +" "+ pflat);
//vemail.addElement(email);
//vmessage.addElement(message);
doc.replaceItemValue("Form", "rlo");
doc.replaceItemValue("auth", id);
doc.replaceItemValue("FIO", fname + " " + mname +" "+ lname);
doc.replaceItemValue("Address", pindex +" "+ pregion +" "+ plocality +" ул."+ pstreet +" д."+ phome +" корп."+ pcorps +" кв."+ pflat);
doc.replaceItemValue("email", email);
doc.replaceItemValue("Annotation", message);
doc.computeWithForm(false, false);
doc.save();
}
} finally {
if (rs != null) {
try {
rs.close();
} catch(SQLException ex) {}
rs = null;
} //if
if (stmt != null) {
try {
stmt.close();
} catch(SQLException ex) {}
stmt = null;
} //if
} //finally
} catch(Exception e) {
e.printStackTrace();
}
}
}
а вот это поподробнейа когда агента дергаю с браузера (локальный запуск)
Обучение наступательной кибербезопасности в игровой форме. Начать игру!