设为首页 收藏本站
查看: 1124|回复: 0

[经验分享] Java/php/C#连接sqlite总结

[复制链接]

尚未签到

发表于 2016-11-29 11:33:36 | 显示全部楼层 |阅读模式
1.Java jdbc连接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 stubClass.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. PHP使用PDO连接sqlite
  待续
3. C#连接sqlite
3.1 使用SQLITE.NET
SQLite.NET也是一个数据访问组件,其中的System.Data.SQLite 就好像是.NET自带的System.Data.SqlClient一样。里面包含了connection、command等数据访问的常用对象,只是他们前面都有一个前缀sqlite。

  1)下载System.Data.SQLite,下载地址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("\n").Append("password:").Append(reader.GetString(1));}MessageBox.Show(sb.ToString());
3.2使用原生态的ADO.NET访问SQLiteusing (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;
Using UTF16(使用UTF16编码)
Data Source=filename;Version=3;UseUTF16Encoding=True;
With password(带密码的)
Data Source=filename;Version=3;Password=myPassword;
Using the pre 3.3x database format(使用3.3x前数据库格式)
Data Source=filename;Version=3;Legacy Format=True;
Read only connection(只读连接)
Data Source=filename;Version=3;Read Only=True;
With connection pooling(设置连接池)
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 ISO8601 which activates the use of the ISO8601 datetime format
Store 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 behaviour(禁用创建数据库行为)
Data Source=filename;Version=3;FailIfMissing=True;
默认情况下,如果数据库文件不存在,会自动创建一个新的,使用这个参数,将不会创建,而是抛出异常信息
Limit the size of database(限制数据库大小)
Data Source=filename;Version=3;Max Page Count=5000;
The Max Page Count is measured in pages. This parameter limits the maximum number of pages of the database.
Disable the Journal File (禁用日志回滚)
Data Source=filename;Version=3;Journal Mode=Off;
This one disables the rollback journal entirely.
Persist the Journal File(持久)
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.


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307208-1-1.html 上篇帖子: 浅谈SQLite——浅析Lemon 下篇帖子: FMDatabase——SQLite的Objective-C封装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表