Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Базы данных (JDBC, JPA, Hibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 14.12.2013, 13:36   #1
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию Не хочет подключаться к БД

Код:

import java.sql.*;
import java.io.*;

public class DB {
	
	public static synchronized void add()throws SQLException, ClassNotFoundException {
			System.out.println("TEST");	
			Class.forName("org.sqlite.JDBC");
			System.out.println("TEST2");	
			Connection connection = null;

			connection = DriverManager.getConnection("jdbc:sqlite:my.sqlite");
			Statement st = connection.createStatement();
			ResultSet res = st.executeQuery("SELECT * FROM history;");
			ResultSetMetaData rmd = res.getMetaData();
			System.out.println(rmd.getColumnName(2));
			System.out.println("TEST3");	
			
	}
	
}

Библиотеку в проект добавил sqlite-jdbc-3.7.2.jar.
System.out.println("TEST"); печатает и все. После выполнения Class.forName("org.sqlite.JDBC"); уже нечего не печатает (System.out.println("TEST2"); - не печатает). В чем проблема не могу понять.

P.S. С java только начала работать.
promt вне форума   Ответить с цитированием
Старый 15.12.2013, 08:04   #2
codekick
Пользователь
 
Аватар для codekick
 
Регистрация: 15.01.2010
Адрес: /root
Сообщений: 28
Репутация: 18

icq: 415253529
skype: codekick
По умолчанию

Скорей всего у вас Class.forName() выбрасывает ClassNotFoundException. Что бы убедится точно уберите ClassNotFoundException из throws метода и отловите его локально с отладочным сообщением. Если оно возникнет значит что то не так с jar'ом.

P.S. А зачем метод у вас synchronized? o_O
__________________
Программирование JavaEE/JavaSE
Платформы: Windows, Linux.
ICQ: 415253529; Skype: codekick;
codekick вне форума   Ответить с цитированием
Старый 15.12.2013, 13:40   #3
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию

Вот чуть переделал и сейчас выводиться следующее:
Код:

public class DB {
	public static void  add(){
		Connection connection = null;
        try {
            // create a database connection
            connection = DriverManager.getConnection("jdbc:sqlite:my.sqlite");
            Statement statement = connection.createStatement();
            statement.setQueryTimeout(30); // set timeout to 30 sec.
            ResultSet rs = statement.executeQuery("SELECT * FROM history");
            ResultSetMetaData rsmd = rs.getMetaData();
            System.out.println(rsmd.getColumnName(2));
        }catch(SQLException e){
        	 System.err.println(e.getMessage());
        }
	}

	
}

В main вызываю вот так:
 try {
			Class.forName("org.sqlite.JDBC");
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
    	  DB.add();

Срабатывает исключения ClassNotFoundException со следующим:


Выходит что драйвер не работает. Хотя создаю новое приложения и там работает.
promt вне форума   Ответить с цитированием
Старый 15.12.2013, 13:45   #4
codekick
Пользователь
 
Аватар для codekick
 
Регистрация: 15.01.2010
Адрес: /root
Сообщений: 28
Репутация: 18

icq: 415253529
skype: codekick
По умолчанию

Это однозначно jar не приаттачен к проекту. У тебя не пашет ни в IDE или в готов проекте?
__________________
Программирование JavaEE/JavaSE
Платформы: Windows, Linux.
ICQ: 415253529; Skype: codekick;
codekick вне форума   Ответить с цитированием
Старый 15.12.2013, 13:51   #5
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию

Работаю в Eclipse. Нужно в готовый проект добавить БД. Добавил библиотеку sqlite-jdbc-3.7.2.jar. Не хочет работать. Создаю новый пустый проект, добавляю эту же библиотеку все работает.
promt вне форума   Ответить с цитированием
Старый 15.12.2013, 13:57   #6
codekick
Пользователь
 
Аватар для codekick
 
Регистрация: 15.01.2010
Адрес: /root
Сообщений: 28
Репутация: 18

icq: 415253529
skype: codekick
По умолчанию

Как выглядит готовый проект? jar файл или просто папка с классами
Как ты добавляешь библеотеку в готовый проект? через IDE?
__________________
Программирование JavaEE/JavaSE
Платформы: Windows, Linux.
ICQ: 415253529; Skype: codekick;
codekick вне форума   Ответить с цитированием
Старый 15.12.2013, 14:00   #7
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию

Папка с файлами. Библиотеку добаляю через IDE вот так: Выделяю проект->Properties->Java Build Patch->Library->Add jar
promt вне форума   Ответить с цитированием
Старый 15.12.2013, 14:03   #8
codekick
Пользователь
 
Аватар для codekick
 
Регистрация: 15.01.2010
Адрес: /root
Сообщений: 28
Репутация: 18

icq: 415253529
skype: codekick
По умолчанию

Тогда неправыльные параметры запуска программы.
Если ты добавляешь ее через IDE то вслучае если прога не собирается в итоге в jar то бесполезно , так не будет работать. нужно правиль скрипт запуска проги и так в class path добавить эту jar'ку.
__________________
Программирование JavaEE/JavaSE
Платформы: Windows, Linux.
ICQ: 415253529; Skype: codekick;
codekick вне форума   Ответить с цитированием
Старый 15.12.2013, 14:08   #9
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию

Правка к сообщению №7.Этот проект был взят из репозитория и слит как Java Project. Сам файл classpath:
Цитата:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/sqlite-jdbc-3.7.2.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE _CONTAINER/org.eclipse.jdt.internal.debug.ui.l auncher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="output" path="bin"/>
</classpath>
promt вне форума   Ответить с цитированием
Старый 16.12.2013, 20:15   #10
promt
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 32
Репутация: 16
По умолчанию

Проблема решена. В bat файле дописал дерективу с библиотекой.
java -cp ./lib/sqlite-jdbc-3.7.2.jar;./bin server.DB
promt вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не хочет изменять в БД cargo29 PHP и другие серверные скрипты 14 07.10.2011 13:54
не хочет компилироваться (С++) Belomor Помощь студентам 3 30.11.2009 20:45
Не хочет загружаться zotox Помощь студентам 9 04.05.2009 17:30




12:01.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru