Суббота, 2025-02-08, 00:16:38
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
SQLite
DimonДата: Среда, 2011-12-07, 23:55:06 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 11
Репутация: 0
Статус: Offline
Пример SQL
Code
/* import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
//import SQLite.JDBCDriver;
//import org.sqlite.SQLiteConfig; */

import java.sql.*;

/* Possible format for JDBC SQLite Server URL:

     jdbc:sqlite://dirA/dirB/dbfile
     jdbc:sqlite:/DRIVE:/dirA/dirB/dbfile
     jdbc:sqlite:///COMPUTERNAME/shareA/dirB/dbfile */

public class jsqlite
{
     public void showData(Connection conn) throws Exception
     {
      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery("select * from users");
      while(rs.next()) {
       int id = rs.getInt(1);
       //String id = rs.getString(1);
       String name = rs.getString(2);
       System.out.printf("rec(%d) = %s\n", id, name);
      }
     }
         
     public static void main(String[] args) throws Exception
     {
      try {
       //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       //Class.forName("SQLite.JDBCDriver");
       Class.forName("org.sqlite.JDBC");     

//   String url="jdbc:sqlite://home/pasquale/test.db";       
       String url = "jdbc:sqlite:test.db";      
     //  String url = "jdbc:msql://200.210.220.1:1114/Demo";

       //  Connection conn = DriverManager.getConnection(url, user, password);
     //  Connection conn = DriverManager.getConnection("test.db");
//   Connection conn = DriverManager.getConnection(url);
       Connection conn = DriverManager.getConnection(url, "test", "test");
           
       Statement stmt = conn.createStatement();
       ResultSet rs = stmt.executeQuery("select * from users where name='name'");
       while(rs.next()) {
        int id = rs.getInt(1);
        //String id = rs.getString(1);
        String name = rs.getString(2);
        System.out.printf("rec(%d) = %s\n", id, name);
       }
           
       int result = stmt.executeUpdate("update users set name='Name' where id='1'");
       if(result == 1)
        System.out.println("value updated");
       else
        System.out.println("value NOT updated");
           
       int idvalue = 2;
       String namevalue = "NamE";
       // insert into users (id, name) values(1,'test');"
       PreparedStatement stmnt = conn.prepareStatement("insert into users(id, name) values(?,?)");
       stmnt.setInt(1, idvalue);
       stmnt.setString(2, namevalue);
       stmnt.executeUpdate();
         
       CallableStatement cs = conn.prepareCall("{ call ListAllUsers }");
       rs = cs.executeQuery();
           
       conn.close();
          
      } catch (Exception e) {
           
                System.err.println("Got an exception! ");     
                System.err.println(e.getMessage());     
            }     

     }



Code

/*    // v2
     public static void main(String[] args) throws Exception
     {
      Connection conn = null;
      SQLite.Database db = null;
      try {
       Class.forName("SQLite.JDBCDriver").newInstance();
       conn = DriverManager.getConnection("jdbc:sqlite:/blabla");
       java.lang.reflect.Method m =
        conn.getClass().getMethod("getSQLiteDatabase", null);
       db = (SQLite.Database) m.invoke(conn, null);
      } catch (Exception e) {
      }
     } */

}

/*  public class jsqlite {
     public static void main(String[] args) throws Exception {
          Class.forName("org.sqlite.JDBC");
          Connection conn =
            DriverManager.getConnection("jdbc:sqlite:test.db");
          Statement stat = conn.createStatement();
          stat.executeUpdate("drop table if exists people;");
          stat.executeUpdate("create table people (name, occupation);");
          PreparedStatement prep = conn.prepareStatement(
            "insert into people values (?, ?);");

          prep.setString(1, "Gandhi");
          prep.setString(2, "politics");
          prep.addBatch();
          prep.setString(1, "Turing");
          prep.setString(2, "computers");
          prep.addBatch();
          prep.setString(1, "Wittgenstein");
          prep.setString(2, "smartypants");
          prep.addBatch();

          conn.setAutoCommit(false);
          prep.executeBatch();
          conn.setAutoCommit(true);

          ResultSet rs = stat.executeQuery("select * from people;");
          while (rs.next()) {
            System.out.println("name = " + rs.getString("name"));
            System.out.println("job = " + rs.getString("occupation"));
          }
          rs.close();
          conn.close();
     }

} // */


sqllite v056(connector)
 
CHerryДата: Четверг, 2011-12-08, 09:50:06 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Как установить библиотеку для работы с базой данных
1. На оффсайте скачиваем коннектор
2. смотрим в нашей IDE какую JDK мы используем, для примера /java-6-openjdk/
в директорию для linux:
/usr/lib/jvm/java-6-openjdk/jre/lib/ копируем коннектор
в директорию для Windows:
...Program Files/.../путь к вашей jdk/jre/lib/
3. далее идем в настройки нашей IDE, и в разделе JRE добавляем наш .jar
для Eclipse: Window- Prefarences- Java- Installed JREs- (клик по jdk)- Edit...- Add External JARs...

2010 August 27th: sqlite-jdbc-3.7.2 release: http://www.xerial.org/maven.....2
он же Коннектор sqlite-jdbc-3.7.2.jar

Коннектор от Taro L. Saito Zentus's SQLite JDBC v056, based on SQLite 3.6.14.2. http://www.zentus.com/sqlitejdbc/
sqlitejdbc-v056.jar

Пример подключения
Code

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

public class Sample
{
      public static void main(String[] args) throws ClassNotFoundException
      {
        // load the sqlite-JDBC driver using the current class loader
        Class.forName("org.sqlite.JDBC");
            
        Connection connection = null;
        try
        {
          // create a database connection
          connection = DriverManager.getConnection("jdbc:sqlite:sample.db");
          Statement statement = connection.createStatement();
          statement.setQueryTimeout(30);  // set timeout to 30 sec.
              
          statement.executeUpdate("drop table if exists person");
          statement.executeUpdate("create table person (id integer, name string)");
          statement.executeUpdate("insert into person values(1, 'leo')");
          statement.executeUpdate("insert into person values(2, 'yui')");
          ResultSet rs = statement.executeQuery("select * from person");
          while(rs.next())
          {
            // read the result set
            System.out.println("name = " + rs.getString("name"));
            System.out.println("id = " + rs.getInt("id"));
          }
        }
        catch(SQLException e)
        {
          // if the error message is "out of memory",     
          // it probably means no database file is found
          System.err.println(e.getMessage());
        }
        finally
        {
          try
          {
            if(connection != null)
              connection.close();
          }
          catch(SQLException e)
          {
            // connection close failed.
            System.err.println(e);
          }
        }
      }
}
 
CHerryДата: Вторник, 2011-12-13, 11:31:55 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Софт для администрирования баз данных на SQLite
SQLite2009 Pro Enterprise Manager
SQLiteSpy
 
CHerryДата: Суббота, 2011-12-17, 00:32:49 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline


MySQL Workbench 5.2.36

MySQL Workbench – инструменте разработки, проектирования и обслуживания баз данных MySQL. Это настоящая находка для программиста PHP, да и не только PHP, которому приходится зачастую, помимо выполнения прямых обязанностей ещё и выступать в роли архитектора баз данных.

Этот продукт позволяет создавать новую БД, вносить изменения в уже существующие, устанавливать связи, выполнять запросы – в реальном времени и наглядном виде. Если кто-то пользовался DbDesigner от fabforce – то это почти то же самое, только намного, намного лучше. Достаточно сказать, что связи между таблицами – теперь показываются на EER диаграмме, какие именно поля используются, а заодно, по вашему желанию, создаёт индексы там, где требуется для нормальной и быстрой работы связей.

Также есть возможность Reverse Engineer‘инга таблиц из уже рабочей базы. Разработчиком этого продукта является Sun Microsystems, а версия MySQL Workbench Community Edition — полностью бесплатна и доступна для скачивания по этой ссылке: www.mysql.com/products/workbench/ – уверяю, MySQL Workbench Community Edition хватит для большинства типовых задач веб-разработки. Тем более, что этот инструмент куда как более удобен в использовании (особенно в конфигурации с несколькими мониторами) нежели популярный phpMyAdmin, с веб интерфейсом (хотя он и незаменим для работы на удалённом хостинге).
 
j_todeskyДата: Вторник, 2012-01-31, 21:04:10 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 18
Репутация: 1
Статус: Offline
Благодарю !!! ) Ща начну с ней колупаться, диплом делать ! )))

Добавлено (2012-01-31, 20:57:18)
---------------------------------------------
Писец, столкнулся с такой проблемой. Уже второй день сижу и не могу соединить SQLite с JSP. В консоле проделываю те же действия - нормально ! и принимает и отдает , а под JSP вообще пишет , что не находит таблицу ...


Сообщение отредактировал j_todesky - Вторник, 2012-01-31, 21:04:35
 
MINIshaДата: Среда, 2012-02-01, 20:59:06 | Сообщение # 6
Генерал-майор
Группа: Администраторы
Сообщений: 21
Репутация: 1293
Статус: Offline
Quote (j_todesky)
Писец, столкнулся с такой проблемой. Уже второй день сижу и не могу соединить SQLite с JSP. В консоле проделываю те же действия - нормально ! и принимает и отдает , а под JSP вообще пишет , что не находит таблицу ...


Попробуй apache Tomcat!!!


Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
 
j_todeskyДата: Пятница, 2012-02-03, 15:13:52 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 18
Репутация: 1
Статус: Offline
Quote
Попробуй apache Tomcat!!!


Без него никак !) не в нем дело )
 
CHerryДата: Пятница, 2012-02-03, 23:46:13 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Quote (j_todesky)
Без него никак !) не в нем дело )

Может в компиляторе Jasper ? и его политике безопасности ?
 
j_todeskyДата: Суббота, 2012-02-04, 00:11:26 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 18
Репутация: 1
Статус: Offline
да нее , это ты куда-то глубоко роешь ))
решил я эту проблему ! ) все оказалось , как всегда, на много проще, но потратил 2 дня на мудохание ! ))
Базу нужно подключать с указание пуки к ней, а не, как обычно, просто прописав ее название ...

Добавлено (2012-02-04, 00:11:26)
---------------------------------------------
я прописывал вот так сначала

Connection c = DriverManager.getConnection("jdbc:sqlite:sqlite.db3");

А нужно было так
Connection c DriverManager.getConnection("jdbc:sqlite:D:/ws/DiplomSQLite/sqlite.db3");

 
CHerryДата: Суббота, 2012-02-04, 13:34:45 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Quote (j_todesky)
Connection c = DriverManager.getConnection("jdbc:sqlite:sqlite.db3");

Путь надо всегда прописывать.
Наверно файл БД sqlite.db3 лежал в одной директории с исполняющимся классом.

Расскажи подробнее про связку с JSP.
 
j_todeskyДата: Воскресенье, 2012-02-12, 15:49:48 | Сообщение # 11
Рядовой
Группа: Проверенные
Сообщений: 18
Репутация: 1
Статус: Offline
Ну , по сути, почти все действия описываются в обычных жабаклассах, а потом подключаются, как bean в jsp. Попробую объяснить на примере логина своего :
У меня есть класс Connector, где прописан коннект с БД. Его я везде и использую
Code

package conn;

import java.sql.*;

public class Connector {
     
   public Statement connect() throws Exception{
   try {
    Class.forName("org.sqlite.JDBC");// собственно драйвер SQLite подключаю
    System.out.println("class connected");
   } catch (Exception e) {
    System.out.println("shit happens");
   }
   Connection c = DriverManager.getConnection("jdbc:sqlite:D:/ws/DiplomSQLite/sqlite.db3");// путь к базе
   System.out.println("Connection done !");
   Statement s = c.createStatement();
   return s;
   }

}


Далее создаю жаба класс Login :

Code

package log;

import java.sql.ResultSet;
import java.sql.Statement;

import conn.Connector;

public class Login {
   String name= "";
   String pass="";
   String mystr1="";
   String mystr2="";
   String strq;
   String ans;
/* так называемые сетеры. Принимают информацию с jsp страницы.
  ВАЖНО, чтобы название метода после set совпадало с название  
поля name в jsp ( например setPass, обратите внимание на Pass!
  В jsp будет прописана строка   
"Введите пароль <input type = "password" [u]name ="pass"[/u] size = "20"><br>"
Так вот, значение будет передаваться только если поле
  name будет совпадать с названием сетера!)*/

// принимается значение имени
   public void setName(String mystr) {
    mystr1 = mystr;
   }
// принимается значение пароля
   public void setPass(String mystr){
    mystr2 = mystr;
   }
   public String contact() throws Exception{
          // вот собственно и используется коннектор
    Connector c = new Connector();
    Statement s=c.connect();
    if(mystr1.equals("")==false){
     name=mystr1;
    }else{
     return "введите имя";
    }
    if (mystr2.equals("")==false){
     pass=mystr2;
    }else {
     return "введите пароль";
    }
    ResultSet rt = s.executeQuery("SELECT pass FROM user WHERE name = '"+name+"'");
    while(rt.next()){
           strq =rt.getString(1);
           }
     if(strq.equals(pass)){
               ans = "Вход произведен удачно";
               System.out.println(ans);
     }
     else {
      return "не правильный ввод! повторите еще раз";
     }
     //Execution of user information for writing it to Cookies in the feature
           ResultSet rs = s.executeQuery("SELECT * FROM user WHERE name='"+name+"'");
           while (rs.next())
           {
            name =rs.getString(2);
           }
               
     rt.close();
     rs.close();
     s.close();
       
           
     return ans;   
   }
   public String getName ()
   {
    if (name == "")
    {
     return "Unknown";
    }
    return this.name;
   }
}


и все это цепляется к jsp :

Code

<%@ page contentType='text/html;charset=UTF-8' language='java' %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
//вот тут создается bean - как бы создается экземпляр класса Login
<jsp:useBean id="Login" scope="request" class="log.Login"/>
<jsp:setProperty property="*" name="Login"/>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body bgcolor=#CCCC66>
<form method=post>
// поле , в котором сетится имя и передается в Login для дальнейшей обработки   
Введите имя      <input type = "text" name ="name" size = "20"><br>
Введите пароль <input type = "password" name ="pass" size = "20"><br>
// submit - действие, которое все запускает в обработку   
<input type="submit" value="Вход в систему" size= "10"><br>
// создание кнопочки
<input type="button" value="Регистрация" onclick="location='registration.jsp'" size= "10"><br>
<hr />
// это , так называемый скриплет! В нем пишется жаба код в jsp
<% if (Login.contact().equals("Вход произведен удачно")){%>
<jsp:forward page="done.jsp" />
<%} %>   
<font color="666666"><h7><b><pre>Информация: <%=Login.contact()%></pre></b></b></h7></font>
</body>
</html>


ну, на пальцах , как - то набросал ) может что-то поймете !) )


Сообщение отредактировал j_todesky - Воскресенье, 2012-02-12, 22:28:06
 
CHerryДата: Вторник, 2012-02-21, 21:25:42 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 141
Репутация: 3732
Статус: Offline
Quote (j_todesky)
ну, на пальцах , как - то набросал ) может что-то поймете !) )

пока не совсем понятно
 
  • Страница 1 из 1
  • 1
Поиск: