2013-10-08 2 views
-1

Я хочу знать, как мы можем проверить, что таблица уже создана или нет, когда мы имеем дело с базами данных с помощью java.Как проверить таблицу уже создан или нет в базе данных mysql с помощью java-сервлета?

пример:

if(table exits) 
{ 
     do something; 
} 
else { 
     do something; 
} 

отредактированной версии: здесь код, который я попробовал в JSP , но им получить некоторое исключение в "rs1 = pt.executeQuery();" линия

 <% 
     PreparedStatement pt=con.prepareStatement("select * from test"); 
     ResultSet rs1=null; 

       rs1=pt.executeQuery(); 
     int count=0; 
     while(rs1.next()) 
     count++; 

     if(count>0) 
     { 
     //table exists 
     %> 
    <script type="text/javascript"> 

    alert("see table present"); 
    </script> 
    <% 
     } 
    else 
     { 
     %> 
     <script type="text/javascript"> 

     alert("see table not present"); 
     </script> 
    <% 

     }  

    %> 

ошибка: это им ошибка при получении org.apache.jasper.JasperException: произошло исключение обработки JSP страницы /sem-duration.jsp в строке 80

 77:   PreparedStatement pt=con.prepareStatement("select * from test"); 
    78:   ResultSet rs1=null; 
    79:    
    80:     rs1=pt.executeQuery(); 
    81:   int count=0; 
    82:   while(rs1.next()) 
    83:   count++; 
+1

Почему вы не можете написать запрос? –

+0

Я новичок в базе данных + java, могу привести пример здесь ..? –

+0

@SrinivasThanneeru Вы не можете напрямую связываться с db, вам нужно общаться с db с помощью запросов. Я разместил запрос для проверки наличия db. – Dileep

ответ

0

Это будет делать я думаю.

IF NOT EXISTS (SELECT * FROM Tablename) 
BEGIN 
// write the codes here 
END 

Вы также можете сделать это, выполнив это, если вы просто хотите проверить.

SELECT 1 FROM tablename ; 

это вернет 0 строк, если таблица не существует иначе он будет больше нуля.

+0

см. Я хочу выполнить некоторые операции java в зависимости от того, выходит ли таблица или нет. здесь вы даете некоторые операции db. может дать для java? –

+0

@SrinivasThanneeru Надеемся, что исправления решают проблему. – Dileep

3

при создании таблицы с помощью JDBC, то вы должны использовать PreparedStatement что-то вроде этого

PreparedStatement pt=connection.prepareStatement("create table test (id int);"); 

сейчас, чтобы выполнить его вы используете pt.executeUpdate() и pt.executeUpdate() возвращается int теперь проверяют

if(pt.executeUpdate()>0) 
{ 
//table created 
} 
else 
{ 
//not 
} 

Пусть вас не создают таблицу с помощью jdbc, и вы просто проверяете, существует ли таблица или нет, тогда вы можете попробовать ниже

PreparedStatement pt=connection.prepareStatement("SELECT * 
FROM information_schema.tables 
WHERE table_schema = 'databasename' 
AND table_name = 'tablename'"); 
ResultSet rs=pt.executeQuery(); 
int count=0; 
while(rs.next()) 
count++; 
} 
if(count>0) 
{ 
//table exists 
} 
else 
{ 
//table does not exist 
} 

другой способ использует databasemeta данные в этом следующим образом

DatabaseMetaData meta = connection.getMetaData(); 
    ResultSet res = meta.getTables(null, null, tableName, null); 
    while(res.next() 
{ 
//table exists 
} 
+0

его приводят к следующему исключению: org.apache.jasper.JasperException: Исключение произошло при обработке страницы JSP /sem-duration.jsp по строке 80 77: PreparedStatement pt = con.prepareStatement («select * from test»); 78: ResultSet rs1 = null; 79: 80: rs1 = pt.executeQuery(); –

+0

@SrinivasThanneeru Вы можете мне показать код? – SpringLearner

+0

sir see Я даю свой код в обновленной версии моего вопроса. –

0

Если вы просто хотите проверить, существует ли таблица, вы можете запустить:

SHOW TABLES like 'your_table_name'; 

В результате набор будет быть пустым, если таблица не существует (обратитесь к documentation за дополнительной информацией).

Поскольку вы находитесь в сервлете, вам нужно передать этот запрос в заявление JDBC (подготовленное).

Смежные вопросы