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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2011, 09:55   #1
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию получение данных из execel в mySQL

Добрый день!
Написала следующие классы:
Код:
package database_pak;

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;


public class database
{

    public static Connection connect_database(Connection con)   //подключение к бд
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost/db_test", "root", "P@ssw0rd");
            System.out.println("connect");
        }
        catch (ClassNotFoundException e)
        {
            System.out.println("ClassNotFoundException: " + e.getMessage());
        }
        catch (SQLException e)
        {
            System.out.println("SQLEXception: " + e.getMessage());
        }
        return con;
    }
    
    public static void insert_table(Connection con,int first,String last)
    {
        try
        {
            int rs;
            java.sql.Statement stmt  = null;
            String queryString  = "insert into t_test(id_test,name_test) values("+first+","+last+")";
            stmt = con.createStatement();
            rs = stmt.executeUpdate(queryString);
            System.out.println("add_ok");
            
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }

    }



}
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 01.02.2011, 09:56   #2
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Код:
package database_pak;

import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import java.sql.Connection;

public class readexcel
{
    private String inputFile;


    public void setInputFile(String inputFile)  //получение файла
    {
        this.inputFile = inputFile;
    }

    public void read_workbook(Connection con) throws IOException   //проход по книге
    {
        File inputWorkbook = new File(inputFile);
	Workbook w;
	try
        {
            w = Workbook.getWorkbook(inputWorkbook);
            Sheet sheet;
            for(int i = 0; i<w.getNumberOfSheets(); i++)
            {
                sheet = w.getSheet(i);
                System.out.println("Sheet number:"+i);
                read_sheet(sheet,con);
            }
	}
        catch (BiffException e)
        {
            e.printStackTrace();
	}
    }

    public void read_sheet(Sheet sheet_temp,Connection con)  //проход по листу
    {
        int temp_int=0;
        String temp_str="";
        for (int j = 0; j < sheet_temp.getRows(); j++)
        {
            for (int k = 0; k < sheet_temp.getColumns(); k++)
            {
                Cell cell = sheet_temp.getCell(k, j);
                CellType type = cell.getType();
                if (cell.getType() == CellType.LABEL)
                    //System.out.println("I got a label "+ cell.getContents());
                    temp_str=cell.getContents();
                if (cell.getType() == CellType.NUMBER)
                    //System.out.println("I got a number "+ cell.getContents());
                    temp_int=Integer.decode(cell.getContents()) ;
            }
             System.out.println();
             database.insert_table(con, temp_int,temp_str);
        }
        
    }
}
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 01.02.2011, 09:58   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Код:
package database_pak;

import java.sql.Connection;

public class main {


    public static void main(String[] args) throws Exception
    {
/*==============================================================================
            подключение бд
==============================================================================*/
        Connection connect = null;
        connect=database.connect_database(connect);
/*==============================================================================
           excel
==============================================================================*/
        readexcel my_input = new readexcel();
        my_input.setInputFile("D:/My work/JAVA/JavaExcelRead/workbook.xls");
        my_input.read_workbook(connect);
    }
}
При выполнении выдает ошибку Unknown column 'last' in 'field list' Как это исправить?
Быть может можно как в делфи в запросе использовать параметры, типо:
Код:
insert into t_test(id_test,name_test)values (:id,:name)
и затем задавать значения этих параметров?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 01.02.2011, 10:30   #4
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

сделала вот так и все отлично работает
Код:
            PreparedStatement ps = con.prepareStatement("insert into t_test(id_test,name_test) values(?,?)");
            ps.setInt(1, first);
            ps.setString(2, last);
            ps.execute();
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 01.02.2011, 11:39   #5
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

а как сделать так чтобы нормально было с русскими буквами? вместо них знаки ??? В бд кодировка utf-8
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 01.02.2011, 12:16   #6
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

все сделала
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение данных avis Win Api 0 19.12.2009 19:24
[c++ + mysql] коннект к бд, селект, получение результата Pamparam Общие вопросы C/C++ 2 11.11.2009 15:22
Получение значений из таблицы в виде массива (Вопрос по MySQL) Linel PHP 5 29.03.2009 11:34
Получение данных с БД. urgu_st SQL, базы данных 5 13.01.2009 15:11
Изменение вида таблицы Execel nord_hk Microsoft Office Excel 4 05.10.2007 19:26