Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2008, 13:29   #1
vasylshvv
 
Регистрация: 25.09.2008
Сообщений: 8
По умолчанию База Данных MySql не выполняется INSERT INTO

Не записываются данные в таблицу
код

import java.sql.*;




public class BD
{


public static void main (String[] args)
{
Connection conn = null;

try
{

String userName = "root";
String password = "123456";
String url = "jdbc:mysql://192.168.4.130/aaa";
Class.forName ("com.mysql.jdbc.Driver").newInstan ce ();
conn = DriverManager.getConnection (url, userName, password);
// System.out.println ("Database connection established");

Statement st=conn.createStatement();

String SQL = "INSERT INTO firsttable(SNAME) VALUES(?)";
PreparedStatement ps = conn.prepareStatement(SQL);
String NAMES = "Firstname";
ps.setString(2, NAMES);
st.executeUpdate(SQL);
ResultSet rs=st.executeQuery("SELECT ID, SNAME FROM firsttable");


while(rs.next())
{
int rn = rs.getInt("ID");
String val= rs.getString("SNAME");
System.out.println(rn+" "+val);
}

}

catch (Exception e)
{
}

/*
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");

}
catch (Exception e) { /* ignore close errors */ /*}
}
}
*/

}
}
vasylshvv вне форума Ответить с цитированием
Старый 24.10.2008, 18:17   #2
dint
 
Регистрация: 23.10.2008
Сообщений: 3
По умолчанию

PreparedStatement ps = conn.prepareStatement(SQL);
String NAMES = "Firstname";
ps.setString(2, NAMES);
st.executeUpdate(SQL);

попробуй вот такой код
CallableStatement stat = conn.prepareCall(SQL);
stat.setObject(1,NAMES)
dint вне форума Ответить с цитированием
Старый 14.04.2009, 00:07   #3
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

Код:
INSERT INTO firsttable(SNAME) VALUES(?)
а что за значение такое - ?
если это строка такая, то вообще-то нужны апострофы
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 14.04.2009, 03:08   #4
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от koma_grusha Посмотреть сообщение
Код:
INSERT INTO firsttable(SNAME) VALUES(?)
а что за значение такое - ?
если это строка такая, то вообще-то нужны апострофы
судя по:
Код:
ResultSet rs=st.executeQuery("SELECT ID, SNAME FROM firsttable");
можно сделать вывод что firstable это таблица.
вобщем sql хромает у автора.

p/s/ сам буквально вчера возился с jdbc. подумывал даже написать свою реализацию для mysql, чтобы не возится с classpath.
сейчас с JTable вожусь, пытаюсь понять как можно изменять название колонки/значение поля в процессе выполнения программы(которые берутся из sql запроса).
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 14.04.2009, 04:52   #5
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

http://j2w.blogspot.com/2008/01/mysql-jdbc.html
а вот как я тестил:
Код:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

public class Test
{
	public static void main(String[] args)
	{
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try 
		{
			conn = 
			DriverManager.getConnection("jdbc:mysql://192.168.1.9:3306/test?" + 
                                   "user=admin&password=1234567");
			stmt = conn.createStatement();
			stmt.executeQuery("use test");
			rs = stmt.executeQuery("select id_order,ordertime from orders;");
			while(rs.next())
			{
				int rn = rs.getInt("id_order");
				String val = rs.getString("ordertime");
				System.out.println(rn+" "+val);
			}



    // Do something with the Connection
	} 
	catch (SQLException ex) 
	{
		// handle any errors
		System.out.println("SQLException: " + ex.getMessage());
		System.out.println("SQLState: " + ex.getSQLState());
		System.out.println("VendorError: " + ex.getErrorCode());
	}
	finally 
	{
    // it is a good idea to release
    // resources in a finally{} block
    // in reverse-order of their creation
    // if they are no-longer needed

    if (rs != null) 
	{
        try {
            rs.close();
        } catch (SQLException sqlEx) { } // ignore 

        rs = null;
    }

    if (stmt != null) 
	{
        try 
		{
            stmt.close();
        } catch (SQLException sqlEx) { } // ignore
		stmt = null;
		}
	}
	}
}
цикл:
Код:
while(rs.next())
			{
				int rn = rs.getInt("id_order");
				String val = rs.getString("ordertime");
				System.out.println(rn+" "+val);
			}
выводит поля id_order, ordertime.

запускал прогу так:
Код:
D:\Education\Java\Edu\007>java -classpath %classpath%;D:\Education\Java\Edu\007 Test
где %classpath% == путь до jar-ника, включительно. (системная переменная)
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.

Последний раз редактировалось alexinspir; 14.04.2009 в 04:57.
alexinspir вне форума Ответить с цитированием
Старый 14.04.2009, 22:58   #6
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

alexinspir, я не имела в виду таблицу, это понятно, я про знак вопроса в Values(?), но всеравно спасибо за пояснения
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 04.08.2009, 10:16   #7
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от vasylshvv Посмотреть сообщение
Код:
               String SQL = "INSERT INTO firsttable(SNAME) VALUES(?)";
               PreparedStatement ps = conn.prepareStatement(SQL);
               String NAMES = "Firstname";
               ps.setString(2, NAMES);
Цитата:
Сообщение от koma_grusha Посмотреть сообщение
alexinspir, я не имела в виду таблицу, это понятно, я про знак вопроса в Values(?), но всеравно спасибо за пояснения
как выяснилось, это выполнение прекомпилированного запроса, ошибка топикстартера в:
Код:
 ps.setString(2, NAMES);
тут надо так:
Код:
 ps.setString(1, NAMES);
ссылки по теме:

javadoc

описание использования через интерпретатор mysql
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных Alex XXX Помощь студентам 3 08.08.2008 10:23
База данных Andr180nag JavaScript, Ajax 3 02.08.2008 14:01
mysql проблемы с INSERT proglamer PHP 4 30.03.2008 14:36
База данных xakkkkker БД в Delphi 1 22.03.2008 12:03