Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / insert на сервлете / 25 сообщений из 30, страница 1 из 2
08.01.2014, 18:08:57
    #38519718
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Здравствуйте уважаемые форумчане!
пожалуйста проверьте этот код и подскажите в чем у меня ошибка?
краце о задаче: есть таблица "U" на нем "ID", "NIK", "PASSWORD";
создана sequence S_U;
задача является из сервлета выполнить sql запрос
Код: plsql
1.
insert into u values (s_u.nextval, "nik", "pass");


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
package qwerty.qwe;

import java.io.IOException;
import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.sql.Statement;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.servlet.*;
import javax.servlet.http.*;

public class Regist extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       
        String nik = "";
        String pass = "";
        try {
            nik = request.getParameter("nik");
            pass = request.getParameter("pass");
        } catch (Exception e) {
            e.printStackTrace();
        }

        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>S1</title></head>");
        out.println("<body>");
        Connection conn = null;
        Context ctx = null;
        ResultSet rs = null;
        PreparedStatement stmt = null;
       String sql = "insert into u (id,nik,pass) values (s_u.nextval,?1,?2);";
        try {
            ctx = new InitialContext();
            conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1522:orcl", "test", "test");
       
            stmt.setString(1, request.getParameter("nik"));
            stmt.setString(2, request.getParameter("pass"));
        
            stmt.executeUpdate();
            //conn.commit();

        } catch (Exception e) {
            // TODO: Add catch code
            out.println("<br/>-----------"+e);
        } finally {
            try {
                rs.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                ctx.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                stmt.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
        }

        out.println("</body></html>");
        out.close();
    }
}



P.S. Заранее благодарен!
...
Рейтинг: 0 / 0
08.01.2014, 19:01:24
    #38519758
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
пардон ребята
одну строку пропустил после подключения к БД
Код: java
1.
stmt = conn.prepareStatement(sql);


и в конечном итоге получаю Exception типа java.sql.SQLSyntaxErrorException: ORA-00917: отсутствует запятая
вот и не могу понять какую ошибку делаю... :(
помогите разобраться ПЛИЙЗ
...
Рейтинг: 0 / 0
08.01.2014, 19:12:46
    #38519767
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффар, номера попробуйте убрать у параметров запроса.
...
Рейтинг: 0 / 0
08.01.2014, 21:17:07
    #38519866
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
javapeckerМузаффар, номера попробуйте убрать у параметров запроса.
типа
Код: java
1.
String sql = "insert into u (id,nik,pass) values (s_u.nextval,?,?);";

?
в этом случае выдает Exception ------> java.sql.SQLSyntaxErrorException: ORA-00911: неверный символ
...
Рейтинг: 0 / 0
08.01.2014, 23:25:25
    #38519969
Sherst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
МузаффарjavapeckerМузаффар, номера попробуйте убрать у параметров запроса.
типа
Код: java
1.
String sql = "insert into u (id,nik,pass) values (s_u.nextval,?,?);";

?
в этом случае выдает Exception ------> java.sql.SQLSyntaxErrorException: ORA-00911: неверный символ
Точку с запятой уберите в конце.
...
Рейтинг: 0 / 0
08.01.2014, 23:25:50
    #38519970
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффар, и точку с запятой
...
Рейтинг: 0 / 0
09.01.2014, 06:13:31
    #38520138
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
sherst, javapecker,

вы были правы все заработала :)
для получения таблицы т.е. для запроса
Код: plsql
1.
select * from u


что должен сделать или должен использовать?
вектор или списку или без них можно как нибудь?
...
Рейтинг: 0 / 0
09.01.2014, 11:28:56
    #38520285
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффар, ResultSet
...
Рейтинг: 0 / 0
11.01.2014, 07:24:39
    #38522773
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
javapeckerМузаффар, ResultSet

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

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
package qwerty.qwe;

import java.io.IOException;
import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.sql.Statement;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.servlet.*;
import javax.servlet.http.*;

public class Regist extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String nik = "";
        String pass = "";
        try {
            nik = request.getParameter("nik");
            pass = request.getParameter("pass");
        } catch (Exception e) {
            e.printStackTrace();
        }

        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>S1</title></head>");
        out.println("<body>");

        int i = 0;
        Connection conn = null;
        Context ctx = null;
        ResultSet rs = null;
        PreparedStatement stmt = null;
        PreparedStatement st = null;
        String sql1 = "select count (*) as kolvo from u where nik = ?";
        String sql2 = "insert into u values (s_u.nextval,?,?)";
        try {
            ctx = new InitialContext();
            conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1522:orcl", "test", "test");
        
//определяем количество записи
            st = conn.prepareStatement(sql1);
            st.setString(1, request.getParameter("nik"));
            rs = st.executeQuery();
            while (rs.next()) {
                i = rs.getInt("kolvo");
            }
     
//если запрос возвратил не 0, то пользователь с таким ником существует и сервлет перенаправляет на страницу reg.jsp
//иначе вводиться новые данные в БД
            if (i != 0) {
                out.println("<br/> выберите другой ник ... ");
                request.getRequestDispatcher("reg.jsp").forward(request, response);
            } else {
                stmt = conn.prepareStatement(sql2); //"insert into u values (q" + ",'" + nik + "','" + pass+"';");
                stmt.setString(1, request.getParameter("nik"));
                stmt.setString(2, request.getParameter("pass"));
                
                stmt.executeUpdate();
                conn.commit();
                out.println("<br/>Все отлично");
            }


        } catch (Exception e) {
            // TODO: Add catch code
            out.println("<br/>-----------" + e);
        } finally {
            try {
                rs.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                ctx.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                stmt.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (Exception e) {
                // TODO: Add catch code
                e.printStackTrace();
            }
        }

        out.println("</body></html>");
        out.close();
    }
}


и возможно есть альтернативные варианты и более легкие...
...
Рейтинг: 0 / 0
11.01.2014, 13:04:05
    #38522889
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
смешивая джава код и разметку далеко не уедешь
нужно применять mvc и узнать что такое jsp

p.s. и вообще на сервлетах далеко не уедешь,
все равно прийдется осваивать какой-нибудь web-фреймворк
...
Рейтинг: 0 / 0
11.01.2014, 19:05:15
    #38523099
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
rema174p.s. и вообще на сервлетах далеко не уедешь,
все равно прийдется осваивать какой-нибудь web-фреймворк
на сколько я знаю сервлеты это основа или я ошибаюсь?

rema174смешивая джава код и разметку далеко не уедешь
нужно применять mvc и узнать что такое jsp
а по конкретнее можете объяснить?(в этом деле я только начал изучить прошла только неделя :))
...
Рейтинг: 0 / 0
11.01.2014, 20:16:18
    #38523140
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
на сколько я знаю сервлеты это основа или я ошибаюсь?
основа, но эта технология уже давно переросла в фреймворки, которые могут существенно отличаться от того как это реализовано в сервлетах, хотя в глубине всех этих фреймворков всё те же классы, на которых работают сервлеты

а по конкретнее можете объяснить?(в этом деле я только начал изучить прошла только неделя :))
тогда возьми любую нормальну книгу по сервлетам, там это все есть
...
Рейтинг: 0 / 0
12.01.2014, 08:05:36
    #38523347
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
[quot rema174]основа, но эта технология уже давно переросла в фреймворки, которые могут существенно отличаться от того как это реализовано в сервлетах, хотя в глубине всех этих фреймворков всё те же классы, на которых работают сервлеты

Можете посоветовать хороший фреймворк, и вообще чтоб совместима была с средой JDeveloper желательно :)
тогда возьми любую нормальну книгу по сервлетам, там это все есть
и ХОРОШИХ книг посоветуйте если Вам не трудно
P.S. заранее СПАСИБО!
...
Рейтинг: 0 / 0
12.01.2014, 09:10:57
    #38523354
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффар
Код: sql
1.
insert into u values (s_u.nextval, "nik", "pass");

Даже если в вашей таблице всего три поля, пишут:
Код: sql
1.
insert into таблица( колонка1, колонка2, колонка3 ) values( значение1, значение2, значение3 )


Ну и терминатор требуется интерактивной среде, а не SQL-серверу.
...
Рейтинг: 0 / 0
12.01.2014, 10:00:39
    #38523360
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Basil A. SidorovНу и терминатор требуется интерактивной среде, а не SQL-серверу.
хорошо учту
...
Рейтинг: 0 / 0
12.01.2014, 14:30:01
    #38523479
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
[quot Музаффар]rema174пропущено...

Можете посоветовать хороший фреймворк, и вообще чтоб совместима была с средой JDeveloper желательно :)
пропущено...

и ХОРОШИХ книг посоветуйте если Вам не трудно
P.S. заранее СПАСИБО!

тем про фреймворки на форуме чуть более чем полно,
а из книг по сервлетам «Head First Servlets and JSP»
...
Рейтинг: 0 / 0
12.01.2014, 14:46:49
    #38523489
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
rema174а из книг по сервлетам «Head First Servlets and JSP»
а на русском есть? желательно :)
...
Рейтинг: 0 / 0
12.01.2014, 15:06:15
    #38523503
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффар,
возьми элементарное
http://ynni.edu.cn/examples/jsp/index.html
т.к. когда пойдёт ГУИ, там развилка на очень много технологий.
...
Рейтинг: 0 / 0
12.01.2014, 15:57:08
    #38523526
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Музаффарrema174а из книг по сервлетам «Head First Servlets and JSP»
а на русском есть? желательно :)
на русском есть раздел в книге «Java. Промышленное программирование»
...
Рейтинг: 0 / 0
12.01.2014, 16:00:26
    #38523528
wst
wst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
А как часто вообще в жизни приходится сервлетами рисовать полновесный html вместо выдачи какого-нибудь json/xml?
...
Рейтинг: 0 / 0
12.01.2014, 16:08:33
    #38523534
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
wstА как часто вообще в жизни приходится сервлетами рисовать полновесный html вместо выдачи какого-нибудь json/xml?
wstА как часто вообще в жизни приходится сервлетами рисовать полновесный html вместо выдачи какого-нибудь json/xml?
- как Вместо, если это 3 разных формата?
- сервлетами удобно делать API для запросов по AJAX с клиента.
...
Рейтинг: 0 / 0
12.01.2014, 16:08:59
    #38523535
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
wstА как часто вообще в жизни приходится сервлетами рисовать полновесный html вместо выдачи какого-нибудь json/xml?
wstА как часто вообще в жизни приходится сервлетами рисовать полновесный html вместо выдачи какого-нибудь json/xml?
- как Вместо, если это 3 разных формата?
- сервлетами удобно делать API для запросов по AJAX с клиента.
...
Рейтинг: 0 / 0
12.01.2014, 16:28:16
    #38523550
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
wst,
...глючит веб...
например...JS по AJAX получаем инфу
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function onmapfoiMouse_Click(point, foi) {
	try {
		var htmlString = GetInfoPOIDB(foi.attrs[0]);
		mapview.displayInfoWindow(point, htmlString, 220, 100,
				"MVInfoWindowStyle1");
	} catch (e) {
		alert(e.description + " (onmapfoiMouse_Click(point, foi))");
	}
}


htmlString - голимый HTML формат
mapview.displayInfoWindow - компонент от оракла принимает и показывает его в своём окошке над картой.
...
Рейтинг: 0 / 0
12.01.2014, 16:41:49
    #38523558
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Petro123Музаффар,
возьми элементарное
http://ynni.edu.cn/examples/jsp/index.html
т.к. когда пойдёт ГУИ, там развилка на очень много технологий.

интересный сайт спасибо :)
...
Рейтинг: 0 / 0
12.01.2014, 16:45:28
    #38523564
wst
wst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
insert на сервлете
Похоже некорректно спросил. Смысл был как раз про выдачу всей страницы либо выдачу данных для скрипта на странице. В учебном проекте можно прямо из jsp и в базу данных слазить и всю страничку нарисовать, а как оно чаще бывает в жизни:
- jsp/jstl, рисующие страницы целиком
- странички со скриптами дергающими сервлеты-вебсокеты
- смесь того и другого
- или что-то еще?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / insert на сервлете / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]