SQLite
|
|
Dimon | Дата: Среда, 2011-12-07, 23:55:06 | Сообщение # 1 |
Рядовой
Группа: Проверенные
Сообщений: 11
Статус: 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 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: 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 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Софт для администрирования баз данных на SQLite SQLite2009 Pro Enterprise Manager SQLiteSpy
|
|
| |
CHerry | Дата: Суббота, 2011-12-17, 00:32:49 | Сообщение # 4 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: 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 |
![j_todesky](https://171975345.uid.me/avatar.jpg) Рядовой
Группа: Проверенные
Сообщений: 18
Статус: 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 |
![MINIsha](/avatar/89/323772.jpg) Генерал-майор
Группа: Администраторы
Сообщений: 21
Статус: Offline
| Quote (j_todesky) Писец, столкнулся с такой проблемой. Уже второй день сижу и не могу соединить SQLite с JSP. В консоле проделываю те же действия - нормально ! и принимает и отдает , а под JSP вообще пишет , что не находит таблицу ...
Попробуй apache Tomcat!!!
Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
|
|
| |
j_todesky | Дата: Пятница, 2012-02-03, 15:13:52 | Сообщение # 7 |
![j_todesky](https://171975345.uid.me/avatar.jpg) Рядовой
Группа: Проверенные
Сообщений: 18
Статус: Offline
| Quote Попробуй apache Tomcat!!!
Без него никак !) не в нем дело )
|
|
| |
CHerry | Дата: Пятница, 2012-02-03, 23:46:13 | Сообщение # 8 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Quote (j_todesky) Без него никак !) не в нем дело ) Может в компиляторе Jasper ? и его политике безопасности ?
|
|
| |
j_todesky | Дата: Суббота, 2012-02-04, 00:11:26 | Сообщение # 9 |
![j_todesky](https://171975345.uid.me/avatar.jpg) Рядовой
Группа: Проверенные
Сообщений: 18
Статус: 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 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Quote (j_todesky) Connection c = DriverManager.getConnection("jdbc:sqlite:sqlite.db3"); Путь надо всегда прописывать. Наверно файл БД sqlite.db3 лежал в одной директории с исполняющимся классом.
Расскажи подробнее про связку с JSP.
|
|
| |
j_todesky | Дата: Воскресенье, 2012-02-12, 15:49:48 | Сообщение # 11 |
![j_todesky](https://171975345.uid.me/avatar.jpg) Рядовой
Группа: Проверенные
Сообщений: 18
Статус: 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 |
![CHerry](/avatar/97/8071-240618.gif) Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Quote (j_todesky) ну, на пальцах , как - то набросал ) может что-то поймете !) ) пока не совсем понятно
|
|
| |