Android 怎样用sqlite储存byte数组

Android 怎样用sqlite储存byte数组,第1张

在进行Android开发过程中,我们经常会接触到Drawable对象(官方开发文档:A Drawable is a general abstraction for "something that can be drawn"),那么,若要使用数据库来进行存储及读取

@Override

public void onCreate(SQLiteDatabase database) {

executeSQLScript(database, "createsql");

}

private void executeSQLScript(SQLiteDatabase database, string dbname){

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

byte buf[] = new byte[1024];

int len;

AssetManager assetManager = contextgetAssets();

InputStream inputStream = null;

try{

inputStream = assetManageropen(dbname);

while ((len = inputStreamread(buf)) != -1) {

outputStreamwrite(buf, 0, len);

}

outputStreamclose();

inputStreamclose();

String[] createScript = outputStreamtoString()split(";");

for (int i = 0; i < createScriptlength; i++) {

String sqlStatement = createScript[i]trim();

// TODO You may want to parse out comments here

if (sqlStatementlength() > 0) {

databaseexecSQL(sqlStatement + ";");

}

}

} catch (IOException e){

// TODO Handle Script Failed to Load

} catch (SQLException e) {

// TODO Handle Script Failed to Execute

}

}

数值类型包含: int tinyint bigint float decimal

int 大整型(占 4 个字节存储空间

tinyint 微小整型(占 1 个字节的存储空间)

bigint 极大整型(占 8 个字节的存储空间)

float 占4个字节,最多显示7个有效位。常用于成绩。

float(5,2)取值范围:

decimal 最多可以显示 28 个有效位

存储空间计算:整数部分和小数部分分开存储,将 9 的倍数包装成 4 个字节,余数占用的字节数如下:

decimal 的整数位和小数位模9的余数和字节对照表

例如: decimal(19,9)

整数部分:

小数部分:

char 定长:当列中存储的字符串达不到最大长度时,使用空格进行补足。

varchar 变长

char 浪费存储空间,但性能高。 varchar 节约存储空间,但存储性能低。

text / longtext(4G)

数值类型宽度为显示宽度,和占用存储空间大小无关;字符类型的宽度,超过则无法存储:

对于枚举类型的字段,字段值只能在列举的范围内选择。

日期时间类型: date time datetime timestamp

date 日期:

time 时间:

datetime 日期时间:

timestamp 日期时间:

日期时间函数: NOW() CURDATE() CURTIME()

NOW() 返回服务器当前的时间:

CURDATE() 返回当前日期:

CURTIME() 返回当前时间:

插入日期时间:

语法格式:

示例:

查询1天以内的记录:

查询2年前至今年的记录:

我把我以前收集的给你贴出来,希望能对你有所帮助

jsp编程从数据库中取出

1、读取数据testimageoutjsp文件

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="javasql" %>

<%@ page import="javautil" %>

<%@ page import="javatext" %>

<%@ page import="javaio" %>

<html>

<body>

<%

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Connection con=DriverManagergetConnection("jdbc:odbc:denglu","sa","sa");

Statement stmt=concreateStatement();

ResultSet rs=null;

int id=IntegerparseInt(requestgetParameter("id"));

String sql = "select image from picturenews where id='"+id+"'";

rs=stmtexecuteQuery(sql);

while(rsnext())

{

ServletOutputStream sout = responsegetOutputStream();

InputStream in = rsgetBinaryStream(1);

byte b[] = new byte[0x7a120];

for(int i = inread(b);i!=-1)

{

soutwrite(b);

inread(b);

}

soutflush();

soutclose();

}

%>

<body>

</html>

2、取出所要显示的showimagejsp文件

<%@ page contentType="text/html;charset=bg2312"%>

<%@ page import="javasql" %>

<html>

<head>

<title>显示数据库测试页</title>

</head>

<body>

<%

ClassforName("sunjdbcodbcJdbcOdbcDriver");

Connection con=DriverManagergetConnection("jdbc:odbc:denglu","sa","sa");

Statement stmt=concreateStatement();

String sql=new String();

sql = "select id from picturenews";

ResultSet rs=stmtexecuteQuery(sql);

//显示最后一条记录的

rslast();

%>

<table>

<tr><td><img src='testimageoutjspid=<%=rsgetInt("id")%>'></td></tr>

</table>

</body>

</html>

转换C盘命令是:开始-运行-cmd-convert c:/fs:ntfs

非系统盘转换比较容易,直接右键格式化,选中NFS格式即可,或者用一般的格式转换软件都可以,一般不会造成不好影响。但系统盘(一般是C盘)就难度大了,重装系统是最好的办法,但你也可以试试Paragon Hard Disk Manager 这个软件,但强烈不建议转换系统盘,弄不好会出现莫名其妙的问题。所有盘转化前都最好要备份好你的重要资料!

以上就是关于Android 怎样用sqlite储存byte数组全部的内容,包括:Android 怎样用sqlite储存byte数组、MySQL 数据库存储类型、数据库里存储的图片字段定义类型为blob,java里对应的类型为byte[],怎么将图片显示到jsp页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9397470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存