给数据库文件加密,我给您介绍一个比较简便的方法:
1 下载安装超级加密3000。
2 然后在需要加密的文件上单击鼠标右键选择加密。
3 在d出的文件加密窗口中设置文件加密密码就OK了。
只要导入jar包就行了,使用的时候 加载class(即ClassforName("orgsqliteJDBC");)
然后可以用最原始的jdbc代码去使用sqlite
比如创建连接:Connection conn = DriverManagergetConnection("jdbc:sqlite:testdb" );(其中testdb就是数据库文件以及数据库的名称,这句话有两个作用:1、如果不存在该数据库则创建并返回连接;2、如果存在了数据库,则直接返回连接)
代码如下:
import javasql;
public class SQLiteJDBC
{
public static void main( String args[] )
{
Connection c = null;
try {
//ClassforName加载class
ClassforName("orgsqliteJDBC");
c = DriverManagergetConnection("jdbc:sqlite:testdb");
} catch ( Exception e ) {
Systemerrprintln( egetClass()getName() + ": " + egetMessage() );
Systemexit(0);
}
Systemoutprintln("Opened database successfully");
}
}
创建表
import javasql;
public class SQLiteJDBC
{
public static void main( String args[] )
{
Connection c = null;
Statement stmt = null;
try {
//ClassforName加载class
ClassforName("orgsqliteJDBC");
//DriverManagergetConnection创建连接
c = DriverManagergetConnection("jdbc:sqlite:testdb");
Systemoutprintln("Opened database successfully");
stmt = ccreateStatement();
//sql创建表语句
String sql = "CREATE TABLE COMPANY " +
"(ID INT PRIMARY KEY NOT NULL," +
" NAME TEXT NOT NULL, " +
" AGE INT NOT NULL, " +
" ADDRESS CHAR(50), " +
" SALARY REAL)";
//executeUpdate创建表
stmtexecuteUpdate(sql);
stmtclose();
cclose();
} catch ( Exception e ) {
Systemerrprintln( egetClass()getName() + ": " + egetMessage() );
Systemexit(0);
}
Systemoutprintln("Table created successfully");
}
}
要在 Java 中调用 SQLite3 DLL 访问 SQLite 数据库,您需要完成以下步骤:
1 安装 SQLite3 DLL:首先,您需要从 SQLite 官方网站下载适用于您 *** 作系统的 SQLite3 DLL,并将其安装到您的计算机上。在下载和安装时,请确保选择与您使用的 Java 版本兼容的版本。
2 配置环境变量:为了让 Java 能够正确识别 SQLite3 DLL,您需要在您的计算机上配置相应的环境变量。具体来说,您需要将 SQLite3 DLL 所在的目录添加到 PATH 环境变量中。
3 导入 JDBC 驱动程序:为了让 Java 代码能够访问 SQLite 数据库,您需要导入适用于 SQLite 的 JDBC 驱动程序。您可以从 SQLite JDBC 官方网站下载适用于您的 *** 作系统的 JDBC 驱动程序。
4 连接 SQLite 数据库:打开 Eclipse 或其他 Java 开发工具,并编写 Java 代码以连接到 SQLite 数据库。使用 JDBC 驱动程序创建数据库连接,并执行 SQL 查询以访问和 *** 作 SQLite 数据库中的数据。例如,以下是一个简单的代码段,可以在 Java 中连接 SQLite 数据库:
```
// Load the SQLite JDBC driver
ClassforName("orgsqliteJDBC");
// Connect to the SQLite database
Connection conn = DriverManagergetConnection("jdbc:sqlite:/path/to/your/databasedb");
// Create a statement object
Statement stmt = conncreateStatement();
// Execute a query and retrieve the results
ResultSet rs = stmtexecuteQuery("SELECT FROM your_table");
// Process the results
while (rsnext()) {
// Do something with each row of data
}
// Close the database connection
rsclose();
stmtclose();
connclose();
```
以上就是在 Java 中调用 SQLite3 DLL 访问 SQLite 数据库的基本步骤。需要注意的是,使用 SQLite3 DLL 访问 SQLite 数据库时,您需要小心处理数据库连接和事务,以确保数据的一致性和可靠性。
如何在java中使用sqlite: 上篇文章介绍了如何在Eclipse中配置javasqlite,以下简单介绍javasqlite如何实现数据库的 *** 作: Javasqlite公开了几个类,包括:Authorizer、 BusyHandler、Callback、Constants、DatabaseException、Function、FunctionContext、ProgressHandler、StringEncoder、TableResult、Trace、Vm关于这几个类可以参考作者网站上的文档。 以下通过对一个数据表的 *** 作,介绍如何用这几个类进行数据库 *** 作:数据库 *** 作类:HelloSqlite2java:初始化一个Database对象:Database db = new Database();Database类是主要功能类,通过db对象可以实现对数据库的 *** 作: 1、连接数据库:public int connectDB(String dbPath){ try{ dbopen(dbPath,0666);//调用open方法连接数据库,如果不存在创建这个数据库文件 return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 2、创建数据表 //创建数据库字符串 static final String strCreate = "create table [User] ([UserID] integer primary key,[UserName] text,"+ "[Password] text,[BeDeleted] integer);";public int createTable(){ try { dbexec(strCreate,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 3、修改数据表31、增加记录static final String strInsert1 = "INSERT INTO [USER] ([username],[password],[bedeleted])VALUES('sacramento','123456','1');"; public int insert(){ try { dbexec(strInsert1,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }}32、修改记录static final String strUpdate = "update [user] set [username] = 'Boston' where [userid] = 1;"; public int update(){ try { dbexec(strUpdate,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 33、删除记录static final String strDelete = "delete from [user] where [userid] = 2;"; public int delete(){ try { dbexec(strDelete,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 4、查询数据表以下函数简单的输出查询结果:static final String strDisplay = "select from [user];";public int displayTable(){ try { Systemoutprintln(dbget_table(strDisplay)); return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 5、处理查询结果简单的输出结果可能并不能满足大部分查询的需要,那如何能够在查询过程中处理查询结果呢?可以使用db的exec(String arg0,Callback arg1)方法,具体做法如下:写一个class TableFmt 实现了SQLiteCallback接口,接着将这个类的一个对象传递给exec的Callback参数。这样exec就会对每个查询结果调用Callback。继而实现对结果的处理:接口的实现,实现Callback规定的三个接口函数:class TableFmt implements Callback{ public void columns(String[] cols) { Systemoutprintln("columns"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } } public boolean newrow(String[] cols) { Systemoutprintln("newrow"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } return false; } public void types(String[] cols) { Systemoutprintln("types"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } }}把TableFmt的一个实例传给exec()函数,这样便可以实现对结果集的处理。public int dealTable(){ try { dbexec(strDisplay,new TableFmt()); return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 你可能觉得没一个功能写一个函数太麻烦了,是的。可以做一个通用的函数,把sql语句当作参数传递给函数。比如实现一个这样的函数:int executenonquery(String sql);对于不需要返回值的sql语句,比如增加、删除、修改、都可以通过这个函数来实现,只需要传入不同参数就可以,函数代码如下:public int executenonquery(String sql){ try { dbexec(sql,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }}
以下通过对一个数据表的 *** 作,介绍如何用这几个类进行数据库 *** 作:数据库 *** 作类:HelloSqlite2java:初始化一个Database对象:Database db = new Database();Database类是主要功能类,通过db对象可以实现对数据库的 *** 作: 1、 连接数据库:public int connectDB(String dbPath){ try{ dbopen(dbPath,0666);//调用open方法连接数据库,如果不存在创建这个数据库文件 return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 2、创建数据表 //创建数据库字符串 static final String strCreate = "create table [User] ([UserID] integer primary key,[UserName] text,"+ "[Password] text,[BeDeleted] integer);";public int createTable(){ try { dbexec(strCreate,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 3、修改数据表31、增加记录static final String strInsert1 = "INSERT INTO [USER] ([username],[password],[bedeleted])VALUES('sacramento','123456','1');"; public int insert(){ try { dbexec(strInsert1,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }}32、修改记录static final String strUpdate = "update [user] set [username] = 'Boston' where [userid] = 1;"; public int update(){ try { dbexec(strUpdate,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 33、删除记录static final String strDelete = "delete from [user] where [userid] = 2;"; public int delete(){ try { dbexec(strDelete,null);//执行一个sql命令,由于不需要处理返回值, //所以callback可以直接为null return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 4、查询数据表以下函数简单的输出查询结果:static final String strDisplay = "select from [user];";public int displayTable(){ try { Systemoutprintln(dbget_table(strDisplay)); return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 5、处理查询结果简单的输出结果可能并不能满足大部分查询的需要,那如何能够在查询过程中处理查询结果呢?可以使用db的exec(String arg0,Callback arg1)方法,具体做法如下:写一个class TableFmt 实现了SQLite Callback接口,接着将这个类的一个对象传递给exec的Callback参数。这样exec就会对每个查询结果调用Callback。继而实现对结果的处理:接口的实现,实现Callback规定的三个接口函数:class TableFmt implements Callback{ public void columns(String[] cols) { Systemoutprintln("columns"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } } public boolean newrow(String[] cols) { Systemoutprintln("newrow"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } return false; } public void types(String[] cols) { Systemoutprintln("types"); for (int i = 0; i < colslength; i++) { Systemoutprintln(cols[i]); } }}把TableFmt的一个实例传给exec()函数,这样便可以实现对结果集的处理。public int dealTable(){ try { dbexec(strDisplay,new TableFmt()); return 1; } catch(javalangException ex) { exprintStackTrace(); return -1; }} 你可能觉得没一个功能写一个函数太麻烦了,是的。可以做一个通用的函数,把sql语句当作参数传递给函数。
给SQLite数据库加密解密的方法:
1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream fs = FileCreate(“c:\\testdb“);
//方法二:用SQLiteConnection
SQLiteConnectionCreateFile(“c:\\testdb“);
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnectionCreateFile(“c:\\test2db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\test2db“);
SQLiteConnection cnn = new SQLiteConnection(“Data Source=D:\\test2db“);
cnnOpen();
cnnChangePassword(“password“);
3、给未加密的数据库加密
SQLiteConnection cnn = new SQLiteConnection(“Data Source=c:\\testdb“);
cnnOpen();
cnnChangePassword(“password“);
以上就是关于如何给数据库文件加密,然后用sqlite读取请各位大师帮忙啊全部的内容,包括:如何给数据库文件加密,然后用sqlite读取请各位大师帮忙啊、怎样在普通java项目中嵌入sqlite数据库、java调用sqlite3.dll访问sqlite等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)