Netbeanse Tomcat From Servlet -> Mysql ( Linux )

serg777

New member
28.10.2013
4
0
#1
Не получается доступ к mysql.
Пробую все в NetBeans7.4 + jdk1.7.0_45( oracle ) + tomcat 7.0.41 в Linux.

Делаю на базе примера: http://www.javaprobooks.ru/java-%D0%BF%D1%...0%B5%D1%82.html

Проблема - не подключается из кода к mysql.
В NetBeans, в своем проекте, на вкладке "Services" | "Databases" нормально создал JDBC подключение как root без пароля к тестовой базе testbase.

При выполнении кода сервлета с трудом увидел такую ошибку:
"java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/testbase"

Сам код сервлета такой:
=======Код сервлета НАЧАЛО=

import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
// import com.mysql.jdbc.*;

/**
*
* @author ksr
*/
public class DataServlet extends HttpServlet {
private ServletConfig config;
// Это наша JSP страница
String page = "DataPage.jsp";
public void init(ServletConfig config)
throws ServletException {
this.config = config;
}
// ---------------The Start
public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {
PrintWriter out = response.getWriter();
// Устанавливаем соединение с БД
String connectionURL = "jdbc:mysql://localhost:3306/testbase";
Connection connection = null;
ResultSet rs;
response.setContentType("text/html");
List dataList = new ArrayList();
try {
// Загружаем драйвер БД
// Class.forName("com.mysql.jdbc.Driver");
// Подключаемся к БД
connection = DriverManager.getConnection(connectionURL,"root","");
// Выбираем данные из БД
String sql = "select * from message";
Statement s = connection.createStatement();
s.executeQuery(sql);
rs = s.getResultSet();
while (rs.next()) {
// Сохраняем всё в список
dataList.add(rs.getInt("id"));
dataList.add(rs.getString("message"));
}
rs.close();
s.close();
} catch (SQLException e) {
dataList.add("ERROR0");
dataList.add(e);
System.out.println("Exception is ;" + e);
}
// dataList.add("00000");
// dataList.add("message111113333333333311");
request.setAttribute("data", dataList);
// Переходим на JSP страницу
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
if (dispatcher != null) {
dispatcher.forward(request, response);
}
// ---------------The End
}
}

=======Код сервлета КОНЕЦ==

+ Строку
Class.forName("com.mysql.jdbc.Driver");
закоментил - ругалось на нее. В форумах прочитал рекомендацию ее убрать ( для новых jdbc оно вроде как не надо )

Помогите, пожалуйста.
 

serg777

New member
28.10.2013
4
0
#2
Помогла эта рекомендация:
http://stackoverflow.com/questions/1585811...sql-jdbc-driver
,а именно это место:
"
What did you put exactly in lib, jre/lib or jre/lib/ext? Was it the jar mysql-connector-java-5.1.5-bin.jar or something else (like a directory)?

By the way, I wouldn't put it in lib, jre/lib or jre/lib/ext, there are other ways to add a jar to the classpath. You can do that by adding it explicitly the CLASSPATH environment variable. Or you can use the -cp option of java. But this is another story.

"
Мои действия:
1. скопировал
cp /home/ksr/bin/netbeans-7.4/ide/modules/ext/mysql-connector-java-5.1.23-bin.jar /usr/lib/jdk_Oracle/jre/lib/ext
2. закрыл NetBeans ( когда он закрывается - гасится tomcat )
3. запустил NetBeans
4. Для моего проекта сдала: "Clean and Buikd" и затем "Run"
После этого получил свой первый ответ на запрос от mysql, вызванный из servlet:
ID Сообщение
1 amit
2 kumar
3 singh
4 raghuwanshi
5 vineet
6 sandeep
7 suman
8 vineet

При "Clean and Build" по-прежнему получаю WARNING-и такие
========Начало Один из 4-х WARING-ов=======
/home/ksr/NetBeansProjects/JSPMultipleForms/src/java/DataServlet.java:60: warning: [unchecked] unchecked call to add(E) as a member of the raw type List
dataList.add(rs.getInt("id"));
where E is a type-variable:
E extends Object declared in interface List
============Конец. Один из 4-х WARNING-ов===

По всей видимости они относятся к этому куску кода
====== начало куска кода====
// Сохраняем всё в список
dataList.add(rs.getInt("id"));
dataList.add(rs.getString("message"));
====== конец куска кода=====

Может кто растолковать - что не так и на что изменить, что-бы неыбло warning ?