Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.53/195: Рейтинг темы: голосов - 195, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
1

Пытаюсь разобраться...

16.03.2009, 10:49. Просмотров 35263. Ответов 59
Метки нет (Все метки)

Insert into переменную?
есть код

Код
stmt = connection.createStatement();
rs = stmt.executeQuery("SELECT * from biznes");

System.out.println("---------------Вывод результата 1:---------------");
while(rs.next())
{
int theid= rs.getInt("id");
String str = rs.getString("name");
System.out.println("id= " + theid + " ---> name = " + str);
System.out.println("_________________________________");
}

stmt.executeUpdate("INSERT INTO biznes (name) values (Русский-Englysh)", Statement.RETURN_GENERATED_KEYS);
stmt.executeUpdate("INSERT INTO biznes (name) values (переменная А)", Statement.RETURN_GENERATED_KEYS);
Вставка значений Русский-Englysh проходит изюмительно, а как суда вставить переменную [String a = doc.getItemValueString("name");], получаемую перебрром из notes - документа
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2009, 10:49
Ответы с готовыми решениями:

Пытаюсь разобраться с Group by
Всем привет, я начинающий, пытаюсь разобраться с языком запросов SQL. Помогите разобраться с...

Пытаюсь разобраться с pdo
if(isset($_POST)) { if (isset($_POST) && isset($_POST)) { ...

пытаюсь разобраться с SQL
Подскажите, какую-нибудь хорошую или отличную книгу по SQL!

Пытаюсь разобраться с MVC
В общем чтобы разобраться с паттерном MVC пишу тестовый мини-фреймворк. Сделал простенький сайт. В...

59
0 / 0 / 0
Регистрация: 17.10.2007
Сообщений: 30
16.03.2009, 11:17 2
советую использовать http://commons.apache.org/dbutils/

если на чисто jdbc

то примерно так


Код
try {
ps = c.prepareStatement("INSERT INTO biznes (name) values (?)");
ps.setString(1, doc.getItemValueString("name"));
} catch (SQLException se) {
System.out.println("We got an exception while preparing a statement:" +
"Probably bad SQL.");
se.printStackTrace();
System.exit(1);
}

try {
ps.executeUpdate();
} catch (SQLException se) {
System.out.println("We got an exception while executing an update:" +
"possibly bad SQL, or check the connection.");
se.printStackTrace();
System.exit(1);
}
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
17.03.2009, 08:46 3
Есть вопрос по кодировке новой записи в MySQL

В параметрах подключения указано ?useUnicode=true&characterEncoding=utf8.

В результате получается что в консоли одно а браузер кажет совсем другое.
Apache, php и база MySQL настроены на работу с utf-8
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
10.10.2010, 17:00 4
Есть вот такой <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
<!--shcode--><pre><code class=java>public void dataconection(String id) {
Connection connection = null;
Driver d;
try {
d = (Driver)Class.forName("com.mysql.jdbc.Driver").newInstance() ;
connection = DriverManager.getConnection("jdbc:mysql://host:port/db,"login","pass");
System.out.println("Подключено");
Statement stmt = null;
ResultSet rs = null;
PreparedStatement ps = null;
stmt = connection.createStatement();

rs = stmt.executeQuery("SELECT * FROM pr_status, id=" + id);

System.out.println("---------------Вывод результата 1:---------------");
while(rs.next())
{
//получекние читабельного результата в консоль
}[/CODE]


Как это все превратить в функцию чтоб отдавать массив значений для последующей обработки
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
10.10.2010, 17:14 5
Использовать класс java.util.Vector или java.util.ArrayList (метод add(Object e)).

Код
public java.util.Vector dataconection(String id) {
java.util.Vector retVar;
//...
while(rs.next()) {
//получекние читабельного результата в консоль
retVar.add(/*что-то нужное */);
}
return retVar;
}
0
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
10.10.2010, 17:45 6
Или написать вспомогательный класс-обертку для вашего массива и возвращать его.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
10.10.2010, 17:53 7
Цитата Сообщение от allex
Есть вот такой <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
<!--shcode--><pre><code class=java>public void dataconection(String id) {
Connection connection = null;
Driver d;
try {
d = (Driver)Class.forName("com.mysql.jdbc.Driver").newInstance() ;
connection = DriverManager.getConnection("jdbc:mysql://host:port/db,"login","pass");
System.out.println("Подключено");
Statement stmt = null;
ResultSet rs = null;
PreparedStatement ps = null;
stmt = connection.createStatement();

rs = stmt.executeQuery("SELECT * FROM pr_status, id=" + id);

System.out.println("---------------Вывод результата 1:---------------");
while(rs.next())
{
//получекние читабельного результата в консоль
}[/CODE]


Как это все превратить в функцию чтоб отдавать массив значений для последующей обработки
select именно такой как в примере?

Ну а вообще да.. все как перечислили выше... либо видоизменить SQL-запрос... немного его дописать
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
11.10.2010, 08:39 8
Да запрос именно такой.
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
11.10.2010, 10:32 9
allex


делал с использованием HashMap, удобно когда возвращаеться один row в recordSet

Код
import java.util.HashMap;
....
HashMap info = new HashMap(); // лист со значениями полей из запроса
...

while(rs.next())
{
for (int i = 1; i <= numberOfColumns; i++) {
sValue ="тут вот значение поля из запроса"
info.put( rsMetaData.getColumnName(i).toString(), sValue );
}
}
можно доделать чтобы возвращало не все колонки, а только какую-то одну для каждой строки в rs
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
11.10.2010, 11:54 10
Есть <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">, который должен создать новый документ

Код
public class workcard extends AgentBase {

public void createdoc(String fio,String addres, String email, String textobr){
try {
Session s = getSession();
AgentContext agentContext = s.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.replaceItemValue("Form", "rlo");
doc.replaceItemValue("FIO", fio);
doc.replaceItemValue("Address", addres);
doc.replaceItemValue("email", email);
doc.replaceItemValue("Annotation", textobr);
doc.computeWithForm(false, false);
if (doc.save())
System.out.println("Документ сохранен");
else
System.out.println("Документ не сохранен");
} catch(Exception e) {
e.printStackTrace();
}
}
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Дебагер</div></div><div class="sp-body"><div class="sp-content">
java.lang.NullPointerException
at workcard.createdoc(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.jav
a:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.jav
a:37)
at java.lang.reflect.Method.invoke(Method.java:599)
at lotus.domino.JavaConnectLoader.invoke(Unknown Source)


<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вызов такой</div></div><div class="sp-body"><div class="sp-content">

LotusScript
1
2
3
4
5
6
7
8
Set jSession = New JavaSession
Set ipClass = jSession.GetClass("workcard")
Set con = ipClass.CreateObject()
If Not con Is Nothyng Then
call con.createdoc("zzzzzzzz","zzzzzzzzz", "zzzzzzzzzz", "zzzzzzzzzzz")
Else
Print "Какая то херь с созданием объекта"
End If
Что я не так делаю ?
"с явой дружу на ВЫ, изучаю по средствам написания"
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
11.10.2010, 12:03 11
allex
имхо, дело в том что или Сессия или база - null
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
11.10.2010, 12:05 12
ИМХО, AgentContext agentContext = s.getAgentContext(); работает только в агенте, т.е. в данной ситуации будет agentContext = null, соответственно на строке Database db = agentContext.getCurrentDatabase(); будет вылетать исключение java.lang.NullPointerException

Попробуйте получать базу по ReplicaID, т.е. добавьте в вызов функции строковый параметр с ReplicaID нужной базы
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
11.10.2010, 12:14 13
Так оно даже и не входит в процедуру
У меня это все с агента работает, а все процедуры дергаются из библиотеки
0
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
11.10.2010, 12:25 14
Цитата Сообщение от nvy
Попробуйте получать базу по ReplicaID, т.е. добавьте в вызов функции строковый параметр с ReplicaID нужной базы
А сразу переменную типа Database в функцию передавать нельзя?
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
11.10.2010, 12:29 15
Насколько я вижу, агент на LS и дергает библиотеку через LS2J. Напишите агента на яве. В функции библиотеки передавать базу в качестве параметра.

Добавлено:


Цитата Сообщение от VladSh
А сразу переменную типа Database в функцию передавать нельзя?
Честно говоря, не пробовал через LS2J передавать базу. ИМХО, LS NotesDatabase и java Database всё-таки разные типы.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
11.10.2010, 13:20 16
никакие объекты нотусни не передаются/возвращаются через LS2J
и создать и юзать, "там", их тоже невозможно!
обмен тока скалярами и стрингами и их масивами (со стороны нотусни - тока фиксированные массивы)
0
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
11.10.2010, 13:59 17
nvy, lmike
Человек пишет:


Цитата Сообщение от allex
Так оно даже и не входит в процедуру
У меня это все с агента работает, а все процедуры дергаются из библиотеки
Я о том, что:
- сделать библиотеку на Java, в функцию которой передавать тип Database (Java-тип);
- сделать агент на Java, в котором получать Database по ReplicaiD и передавать её в подключаемую либу.

Если между модулями, написанными на Java, нельзя передавать объекты (в данном случае Database), то зачем тогда она вообще нужна? И смысл этих библиотек? Это что, в иерархии библиотек-классов придётся в каждой получать Database по ReplicaiD??
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
11.10.2010, 14:01 18
При запуске вот такого <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">кода</div></div><div class="sp-body"><div class="sp-content">


Код
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;
public class JavaAgent extends AgentBase {
public void main(String id) {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch (Exception ex)
{
System.out.println("SQLException: " + ex.getMessage());
}

try {
conn = DriverManager.getConnection("jdbc:mysql://host_port_db_login_passw);
}
catch (SQLException ex)
{
System.out.println("On connect SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
System.out.println("Соединение успешно");
try {
stmt = conn.createStatement();
id = "4isNNEkEA8kNhn9B";
String Query = "SELECT * FROM pr_data WHILE auth=" + "+ id +";

try {
rs = stmt.executeQuery(Query);
}
catch(SQLException ex)
{
System.out.println("on JOIN SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
Database db = agentContext.getCurrentDatabase();
Document doc = db.createDocument();
doc.appendItemValue("Form", "ProductReport");
Vector vauth = new Vector();
Vector vfio = new Vector();
Vector vaddress = new Vector();
Vector vemail = new Vector();
Vector vmessage = new Vector();


while (rs.next()) {
// retrieve and print the values for the current row
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.appendItemValue("FIO", vfio);
doc.appendItemValue("Address", vaddress);
doc.appendItemValue("email", vemail);
doc.appendItemValue("Annotation", vmessage);
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();
}
}
}
в дебагер вообще ни чего не выводится.
Я уже начинаю путаться.
0
0 / 0 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
11.10.2010, 14:23 19
allex
Что-то я не понял, зачем сначала присваивается
doc.appendItemValue("Form", "ProductReport");
а затем, ниже перебивается на
doc.replaceItemValue("Form", "rlo");
?


to All
По ходу.. Кто пользовал jdbc, подскажите, можно ли вытягивать данные из записи не по имени поля, а по порядковому номеру в таблице?
0
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
11.10.2010, 14:25 20
недоглядел...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2010, 14:25

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

Пытаюсь разобраться с интерфейсами
Не въеду всё никак как работать с интерфейсами. Вот помогите пожалуйста на примере понять как это...

Пытаюсь разобраться в задании
Помогите пожалуйста разобраться в задании лабораторной работы: Текст лаб.раб. №2 следующий:...

Пытаюсь разобраться с SelectedItems, но не получается!
Доброго времени суток, форумчане! В чём суть: Пишу диплом, нужно отловить из listBox-а все (т.е....

Пытаюсь разобраться в логике калькулятора
Прорабатываю по Хорстману формы, попался калькулятор, решил разобраться. Код калькулятора приведен...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.