C\#/자바 sqlite 연결 및 사용 방법

1)sqlite jdbc 드라이브 다운로드http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/
2)다운로드 한 드라이브 를 eclipse 프로젝트 의 built path 에 추가 합 니 다.
3)예시 코드:

package com.hedalixin;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class test {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        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();

    }
}
2.  C\#sqlite 2.1 을 연결 하여 SQLITE.NET QLite.NET 을 사용 하 는 것 도 데이터 액세스 구성 요소 입 니 다.그 중에서 System.Data.SQLite 는 마치.NET 자체 의 System.Data.sql Client 와 같 습 니 다.connection,command 등 데이터 접근 에 자주 사용 되 는 대상 이 포함 되 어 있 습 니 다.다만 앞 에 접두사 sqlite 가 있 습 니 다.1)System.Data.SQL Lite 다운로드 주소http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
2)  Add References 를 통 해 SQLite ADO.NET 설치 디 렉 터 리 의 bin 디 렉 터 리 에 있 는 System.Data.SQLite.DLL 을 참조 합 니 다.
3)테이블 생 성,데이터 읽 기 등 은 Access 나 MS SQL 과 크게 다 르 지 않다

//
string datasource="h:/test.db";
System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
//
System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection();
System.Data.SQLite.SQLiteConnectionStringBuilder connstr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
connstr.DataSource = datasource;
connstr.Password = "admin";// ,SQLite ADO.NET
conn.ConnectionString = connstr.ToString();            
conn.Open();
//
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
cmd.CommandText=sql;
cmd.Connection=conn;
cmd.ExecuteNonQuery();
//
sql = "INSERT INTO test VALUES('ekinglong','mypassword')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
//
sql = "SELECT * FROM test";
cmd.CommandText = sql;
System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
     sb.Append("username:").Append(reader.GetString(0)).Append("
")
     .Append("password:").Append(reader.GetString(1));

 }
 MessageBox.Show(sb.ToString());
2.2 원생 태 의 ADO.NET 을 사용 하여 SQLite 방문

using (DbConnection conn = new SQLiteConnection( System.Configuration.ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString))
{
    conn.Open();
    DbCommand comm = conn.CreateCommand();
    comm.CommandText = "select * from customer";
    comm.CommandType = CommandType.Text;
    using (IDataReader reader = comm.ExecuteReader())
    {
        while (reader.Read())
        {
            Response.Write(reader[0]);
        }
    }
}
SQLite.NET 데이터베이스 연결 문자열 ConnectionString 형식:Basic(기본)      Data Source=filename;Version=3;UTF 16 사용(UTF 16 인 코딩 사용)      Data Source=filename;Version=3;UseUTF16Encoding=True;With password(비밀번호 가 있 는)      Data Source=filename;Version=3;Password=myPassword;pre 3.3x database format 사용(3.3x 전 데이터베이스 형식 사용)      Data Source=filename;Version=3;Legacy Format=True;읽 기 전용 연결(연결 만 읽 기)      Data Source=filename;Version=3;Read Only=True;연결 풀 링(연결 풀 설정)      Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;Using DateTime.Ticks as datetime format()      Data Source=filename;Version=3;DateTimeFormat=Ticks;      The default value is ISO 8601 which activates the use of the ISO 8601 datetime formatstore GUID as text(Guid 를 텍스트 로 저장 하고 기본 값 은 Binary)     Data Source=filename;Version=3;BinaryGUID=False;      Guid 를 텍스트 로 저장 하려 면 더 많은 저장 공간 이 필요 합 니 다.Specify cache size(Cache 크기 지정)      Data Source=filename;Version=3;Cache Size=2000;      Cache Size 단 위 는 바이트 Specify page size(지정 페이지 크기)      Data Source=filename;Version=3;Page Size=1024;      Page Size 단 위 는 바이트 Disable enlistment in distributed transactions      Data Source=filename;Version=3;Enlist=N;disable create database behavior(데이터베이스 생 성 을 사용 하지 않 음)      Data Source=filename;Version=3;FailIfMissing=True;      기본적으로 데이터베이스 파일 이 존재 하지 않 으 면 자동 으로 새 파 라 메 터 를 만 듭 니 다.이 파 라 메 터 를 사용 하면 만 들 지 않 고 이상 정 보 를 던 집 니 다.Limit the size of database(데이터베이스 크기 제한)      Data Source=filename;Version=3;Max Page Count=5000;      Max Page Count 는 페이지 에서 측 정 됩 니 다.이 매개 변 수 는 데이터베이스 의 최대 페이지 수 를 제한 합 니 다.Journal File 사용 안 함(로그 스크롤 백 사용 안 함)      Data Source=filename;Version=3;Journal Mode=Off;      이것 은 롤 백 저널 을 완전히 비활성화 합 니 다.저널 파일 을 유지 합 니 다(오래 지속)      Data Source=filename;Version=3;Journal Mode=Persist;      This one blanks and leaves the journal file on disk after a commit. Default behaviour is to delete the Journal File after each commit.Controling file flushing      Data Source=filename;Version=3;Synchronous=Full;      Full specifies a full flush to take action after each write. Normal is the default value. Off means that the underlying OS flushes I/O's.
 
Sqlite 사용 기법 1.sqlite 데이터 시트 에 SELECT COUNT 가 있 는 지 판단(*)  as CNT FROM sqlite_master where type='table'and name='DBInfo'//그 중에서 DBInfo 는 판단 이 필요 한 표 이름 입 니 다.대소 문자 예민 하 게!
2.SQLite 하나의 SQL 문 구 는 여러 개의 기록 을 삽입 합 니 다.INSERT INTO TABLE(col 1,col 2)SELECT val 11,val 12 UNION ALL SELECT val 21,val 22;이러한 표기 법 은 복합 SQL 문장 에 속 하 며,먼저 두 개의 SELECT 결과 집 을 삭제 없 이 연합 한 다음 에 연합 결 과 를 TABLE 에 삽입 하 는 것 을 나타 낸다.
3.sqlite 사 무 는 파일 형식 으로 디스크 에 존재 합 니 다.방문 할 때마다 파일 을 열 어야 합 니 다.데 이 터 를 대량으로 조작 할 때 느 립 니 다.해결 방법 은 트 랜 잭 션 형식 으로 제출 하 는 것 입 니 다.트 랜 잭 션 을 시작 한 후에 대량의 작업 을 하 는 문 구 는 메모리 에 저장 되 어 있 기 때문에 제출 할 때 데이터베이스 에 모두 기록 합 니 다.이때,데이터베이스 파일 도 한 번 만 열 수 있 습 니 다.sql 구문:begin;   INSERT INTO "table" VALUES ('a', 'b', 'c');   INSERT INTO "table" VALUES ('a', 'b', 'c');   INSERT INTO "table" VALUES ('a', 'b', 'c');   commit; 4.SQLite 자체 증가 ID 필드 사용 방법 은      INTEGER PRIMARY KEY AUTOINCREMENT 5.페이지 별로 MySQL 과 유사 한 데이터 베 이 스 를 조회 합 니 다.my SQL 의 LIMIT 함수,LIMIT[offset,]rows 를 이용 하여 데이터베이스 시트 의 M 개의 기록 에서 N 개의 기록 을 검색 하 는 문 구 는 SELECT*FROM 표 이름 LIMIT M,N 예 를 들 어 표 Sys 입 니 다.option(메 인 키 는 sysid)에서 10 개의 기록 부터 20 개의 기록 을 검색 합 니 다.문 구 는 다음 과 같 습 니 다.select*from sysoption limit 10,20

좋은 웹페이지 즐겨찾기