Android 手机静态IP 连接局域网访问局域网电脑Web服务器

Android 手机静态IP 连接局域网访问局域网电脑Web服务器
Android 手机静态IP 连接局域网访问局域网电脑Web服务器

Android 手机静态IP 连接局域网访问局域网电脑Web服务器

移动网页网站编程需要进行测试。测试手段可以采用模拟器,也可以采用真实设备测试。本文给出采用真实设备的网页网站编程测试方法。

移动设备连接网络一般有移动蜂窝网和WIFI2中方式。移动蜂窝网络连接方式不易实现。无线路由器192.168.0.1

1.电脑设置

1)安装启动Tomcat Web Server

2)网络设置

关闭防火墙,否则不能进入Tomcat管理员页面

设置IP地址、网关、DNS等

3) 通过WIFI 连接路由器

2. 手机端设置

1)Android 安装wifi static 1.3

2)设置Android 静态IP 启动wifi static

DNS1 192.168.0.1

打开网页

2012-2-4于深圳

安卓手机数据库连接代码

package com.fenghuo.firstproject; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.CursorAdapter; import android.widget.ListView; import android.widget.SimpleCursorAdapter; public class DataBaseActivity extends Activity { public static SQLiteDatabase db = null; private ListView listView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/3213165182.html,yout.activity_data_base); SQLiteOpenHelper helper = new SQLiteOpenHelper(this,"mydb",null,1) { @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table users"); onCreate(db); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE 'users' ( '_id' INTEGER NOT NULL, 'username' TEXT NOT NULL, 'password' TEXT NOT NULL, 'email' TEXT NOT NULL, PRIMARY KEY ('_id') ) "); db.execSQL("insert into users values(1,'admin','admin','admin@https://www.360docs.net/doc/3213165182.html,')"); db.execSQL("insert into users values(2,'admin1','admin','admin1@https://www.360docs.net/doc/3213165182.html,')"); db.execSQL("insert into users values(3,'admin2','admin','admin2@https://www.360docs.net/doc/3213165182.html,')"); db.execSQL("insert into users values(4,'admin3','admin','admin3@https://www.360docs.net/doc/3213165182.html,')"); } };

Android创建和使用数据库详细指南

Android创建和使用数据库详细指南(1) 摘要:每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--SQLite,本文介绍的就是如何为你的Android应用程序创建和操作SQLite数据库。 数据库支持每个应用程序无论大小的生命线,除非你的应用程序只处理简单的数据,那么就需要一个数据库系统存储你的结构化数据,Android使用SQLite数据库,它是一个开源的、支持多操作系统的SQL数据库,在许多领域广泛使用,如Mozilla FireFox就是使用SQLite 来存储配置数据的,iPhone也是使用SQLite来存储数据的。 在Android中,你为某个应用程序创建的数据库,只有它可以访问,其它应用程序是不能访问的,数据库位于Android设备/data/data//databases文件夹中,在这篇文章中,你将会学习到如何在Android中创建和使用数据库。 1SQLite数据库 使用Eclipse创建一个Android项目,取名为Database,如图1所示: 图1 数据库-使用Eclipse创建你的Android新项目

2创建DBAdapter辅助类 接下来创建一个数据库,取名为bookstitles,字段如图2所示。 图2 数据库字段在DBAdapter.java文件中,定义清单1中的常量。 清单1 定义DBAdapter.java文件中的常量 package net.learn2develop.Database; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;

Android实验报告—数据库接口

数据库接口实验 实验目的: 本实验的目的是使学生深入了解Android数据存储和访问的方法,利用SQLite进行数据存储及访问。通过实验,掌握DatePicker和TimePicker的使用方法。 实验要求: 设计程序实现一个日期信息记录数据库软件,如下图所示 设计界面,如图所示,利用SQLite实现数据库的建立、数据表中的信息的删改、查等操作。使用DatePicker和TimePicker来动态选择日期和时间,将设置的日期和时间信息写入到数据库中。 程序源码(可付纸)(包括XML和Java文件): mcy.java package cn.mcy; import java.util.Calendar; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View;

import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; public class mcy extends Activity { /** Called when the activity is first created. */ private EditText edtEntry,edtIDEntry; private Button btnAdd,btnShowAll,btnClearShow,btnDeleteAll,btnIDDelete,btnIDSeach,btnIDRefr esh; private TextView tvSShow; private int mYear,mMonth,mDay,mHour,mMinute; private TimePicker tp; private DatePicker dp; private static final String DB_FILE="students.db",DB_TABLE="students"; private SQLiteDatabase mStuDbRW; @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mStuDbRW.close(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/3213165182.html,yout.main); mcy11 friDbHp=new mcy11(getApplicationContext(),DB_FILE,null,1); friDbHp.sCreateTableCommand="CREATE TABLE "+DB_TABLE+"("+"_id INTEGER PRIMARY KEY,"+"id TEXT NOT NULL,"+"date TEXT,"+"time TEXT);"; mStuDbRW=friDbHp.getWritableDatabase(); //生成一个数据库mStuDbRW tvSShow=(TextView) findViewById(https://www.360docs.net/doc/3213165182.html,SShow); edtEntry=(EditText) findViewById(R.id.edtEntry); edtIDEntry=(EditText) findViewById(R.id.edtIDEntry); btnAdd=(Button) findViewById(R.id.btnAdd); btnShowAll=(Button) findViewById(R.id.btnShowAll); btnClearShow=(Button) findViewById(R.id.btnClearShow); btnDeleteAll=(Button) findViewById(R.id.btnDeleteAll); btnIDDelete=(Button) findViewById(R.id.btnIDDelete); btnIDSeach=(Button) findViewById(R.id.btnIDSeach); btnIDRefresh=(Button) findViewById(R.id.btnIDRefresh); tp=(TimePicker) findViewById(R.id.TimePicker01);

Android客户端与服务器数据交互流程

Android客户端与服务器数据交互流程 一个门户网站的制作的流程:首先,由网页设计师只做网页设计,即画出来网站在浏览器中显示的样子,然后由前端人员编写 Html+CSS+JS来实现网站的动态效果,比如说导航栏的下拉显示,然后Ajax的局部信息更新等,然后通过后台程序如JSP,PHP, .NET等语言将数据库中的信息与前台页面相结合,这样,一个站就这样被建好了。而Android客户端,也是有UI设计师,UI前端,程序构成的,同样程序这边的话,最近Html5+CSS3的火热开启,很多公司也需要html5+css3进行Android程序的开发了。呜呜,抢我的饭碗。虽然说哥也是懂html+css的。嘿嘿,这样解释的话,可能大家不清楚,其实木有必要弄清楚网站的建站过程,这里只是给大家普及一下知识,没必要弄清楚。 基础知识:我们需要知道,Http协议是基于TCP协议的,而TCP协议是一种有连接,可靠的传输协议,如果丢失的话,会重传。所以这样的话,就不会有数据的丢失了。而Http协议有三种方法,Get,Post,Head 方法,但是用的多的只有Get和Post方法,Get方法是将请求参数放在请求头中,所以请求的参数在URL中可见,而Post方法是将请求参数放在数据部分,所以在URL中不可见,Post相对来说保密,所以在提交重要信息的时候,用的都是HttpPost方法来实现的. 而在B/S模式中,B代表浏览器,S代表服务器,在浏览器和服务器的通信之中,因为B/S之间不会一直保持连接,所以才会加入Cookie 机制,来辨认所操作的对象。用户浏览网页的操作如下:当用户点击

一个连接或者一个按钮的时候,浏览器通过发送一个请求给服务器,然后由服务器接收该请求,然后解析到用户请求的是哪些内容,然后查找到相关资源,再将数据返回给浏览器,由浏览器解析数据,然后显示给用户看到用户所需要看到的页面。所以,Android和B/S模式差不多,其实也就是发送请求,接收数据,然后解析数据,显示到手机上的过程,没什么太大的区别,谁让咱用的是互联网,用的是TCP/IP 协议呢,是吧。要理解是:所有的操作都是向服务器请求数据的过程。 hp文件,然后浏览器会将php文件解析成为html然后显示在浏览器上显示。

(完整版)Android大数据的存储和大数据的访问

南昌航空大学实验报告 二0一4 年11 月14 日 课程名称:Android 实验名称:Android数据存储和数据访问 班级:姓名:同组人: 指导教师评定:签名: 一:实验目的 掌握SharedPreferences的使用方法; 掌握各种文件存储的区别与适用情况; 了解SQLite数据库的特点和体系结构; 掌握SQLite数据库的建立和操作方法; 理解ContentProvider的用途和原理; 掌握ContentProvider的创建与使用方法 二:实验工具 Eclipse(MyEclipse)+ ADT + Android2.2 SDK; 三:实验题目 1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。 2.尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。 3.使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:

4.建立一个ContentProvider,用来共享第3题所建立的数据库; 四:实验代码 InternalFileDemo public class InternalFileDemo extends Activity { private final String FILE_NAME = "fileDemo.txt"; private TextView labelView; private TextView displayView; private CheckBox appendBox ; private EditText entryText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/3213165182.html,yout.main); labelView = (TextView)findViewById(https://www.360docs.net/doc/3213165182.html,bel); displayView = (TextView)findViewById(R.id.display); appendBox = (CheckBox)findViewById(R.id.append); entryText = (EditText)findViewById(R.id.entry); Button writeButton = (Button)findViewById(R.id.write); Button readButton = (Button)findViewById(R.id.read); writeButton.setOnClickListener(writeButtonListener); readButton.setOnClickListener(readButtonListener); entryText.selectAll(); entryText.findFocus(); } OnClickListener writeButtonListener = new OnClickListener() {

Android-Room数据库的使用方法教程

Android-Room数据库的使用方法教程 Room是一个持久性数据库,提供了SQLite的抽象层,以便在充分利用SQLite的同时允许流畅的数据库访问。这篇文章主要介绍了详细介绍Android-Room数据库的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。 为什么会选择Room? 前面我也说到了现在也有不少开源的数据库给大家使用,那为什么我们还要去学习使用这个库呢?当然不是我前面说的“正不正统”的原因了。 因为Room有下面几个优点: ①SQL查询在编译时就会验证- 在编译时检查每个@Query和@Entity等,这就意味着没有任何运行时错误的风险可能会导致应用程序崩溃(并且它不仅检查语法问题,还会检查是否有该表)

②较少的模板代码 ③与LiveData 集成 该如何使用它? 1、在app/build.gradle中添加以下依赖 implementation 'android.arch.persistence.room:runtime:1.0.0' annotationProcessor 'android.arch.persistence.room:compiler:1.0.0' 你可以点击这里查看最新依赖版本号 2、创建JavaBean @Entity public class User {

@PrimaryKey(autoGenerate = true)//主键是否自动增长,默认为false private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; }

Android 中数据库查询方法 query

Android 中数据库查询方法query() 中的select Android 中涉及数据库查询的地方一般都会有一个query() 方法,而这些query 中有大都(全部?)会有一个参数selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query(): view plaincopy to clipboardprint? public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) selection 参数很好理解,就是SQL 语句中WHERE 后面的部分,即过滤条件,比如可以为id=3 AND name='Kevin Yuan' 表示只返回满足id 为 3 且name 为"Kevin Yuan" 的记录。 再实际项目中像上面那样简单的“静态”的selection 并不多见,更多的情况下要在运行时动态生成这个字符串,比如 view plaincopy to clipboardprint? public doQuery(long id, final String name) { mDb.query("some_table", // table name null, // columns "id=" + id + " AND name='" + name + "'", // selection //...... 更多参数省略 ); } public doQuery(long id, final String name) { mDb.query("some_table", // table name null, // columns "id=" + id + " AND name='" + name + "'", // selection //...... 更多参数省略 ); }

Android面试之SQLite数据库

Android面试之SQLite数据库 鹭岛厦门是个很美丽的海滨城市,给我的感觉很舒适和悠闲,据说政府对到那工作的高新技术人才第一年有10万元的奖励,因为这个原因我很有兴趣的参加了一个厦门公司的面试。他们主要是研发VOIP方面的技术,对手机应用的性能优化和音频算法有较高的要求。 他们招人的薪资半年内涨了30万元,都一直都没有招到合适的人。为什么呢?因为他们要求技术好的同时,英语也要好。什么才叫好呢?就是可以用流利的英语和国外的团队无障碍交流。 这就为难很多程序员了。这里就不再讲英语的励志故事了,我们回到技术面试上。厦门这家公司对技术的要求还是比较高,问了很多对Android机制的理解问题,为什么面试官很在意对机制的理解呢?因为实际的项目中很多性能问题都是由于缺乏对Android运行机制的正确理解的程序员引发的。除了机制问题,现在印象比较深的就是关于SQLite数据库操作的性能优化问题。 面试题:如何对SQLite数据库中进行大量的数据插入? Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。SQLite是一个轻量的、跨平台的、开源的数据库引擎。SQLite每个数据库都是以单个文件(.db)的形式存在,这些数据都是以B-Tree 的数据结构形式存储在磁盘上。 使用SQLiteDatabase的insert,delete等方法或者execSQL方法默认都开启了事务,如果操作的顺利完成才会更新.db数据库。事务的实现是依赖于名为rollback journal文件,借助这个临时文件来完成原子操作和回滚功能。 大家可以在/data/data//databases/目录下看到一个和数据库同名 的.db-journal文件。 SQLite想要执行操作,需要将程序中的SQL语句编译成对应的SQLiteStatement,比如" select * from table1 ",每执行一次都需要将这个String类型的SQL语句转换成SQLiteStatement。如下insert的操作最终都是将ContentValues转成SQLiteStatementi: public long insertWithOnConflict(String table, String nullColumnHack, ContentValues initialValues, int conflictAlgorithm) { // 省略部份代码

Android中数据库升级说明

Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决了我一连串的疑问: 1. 帮助文档里说的“数据库升级”是指什么? 你开发了一个程序,当前是1.0版本。该程序用到了数据库。到1.1版本时,你在数据库的某个表中增加了一个字段。那么软件1.0版本用的数据库在软件1.1版本就要被升级了。 2. 数据库升级应该注意什么? 软件的1.0版本升级到1.1版本时,老的数据不能丢。那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库。换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值。 3. 程序如何知道数据库需要升级? SQLiteOpenHelper类的构造函数有一个参数是int version,它的意思就是指数据库版本号。比如在软件1.0版本中,我们使用SQLiteOpenHelper访问数据库时,该参数为1,那么数据库版本号1就会写在我们的数据库中。 到了1.1版本,我们的数据库需要发生变化,那么我们1.1版本的程序中就要使用一个大于1的整数来构造SQLiteOpenHelper类,用于访问新的数据库,比如2。

当我们的1.1新程序读取1.0版本的老数据库时,就发现老数据库里存储的数据库版本是1,而我们新程序访问它时填的版本号为2,系统就知道数据库需要升级。 4. 何时触发数据库升级?如何升级? 当系统在构造SQLiteOpenHelper类的对象时,如果发现版本号不一样,就会自动调用onUpgrade函数,让你在这里对数据库进行升级。根据上述场景,在这个函数中把老版本数据库的相应表中增加字段,并给每条记录增加默认值即可。新版本号和老版本号都会作为onUpgrade函数的参数传进来,便于开发者知道数据库应该从哪个版本升级到哪个版本。 升级完成后,数据库会自动存储最新的版本号为当前数据库版本号。 参考:StackOverFlow对“数据库版本在数据库中的存储位置”的问答。 本文由淄博SEO(https://www.360docs.net/doc/3213165182.html,),淄博网站优化(https://www.360docs.net/doc/3213165182.html,)整理发布,转载请注明出处。

android数据库实例

package com.adrainy.webmarks; import java.util.ArrayList; import java.util.List; import android.content.ContentV alues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBHelper { public static final String _ID = "_id"; public static final String NAME = "name"; public static final String URL = "url"; public static final String DESC = "desc"; public static final String DA TABASE_NAME = "webBookmarksdata"; public static final String TABLE_NAME = "webmarks"; public static final int VERSION = 1; public static final String DA TA TABLE_CREA TE = "create table " + TABLE_NAME + "(" + _ID + " integer primary key autoincrement , " + NAME + " text not null," + URL + " text not null," + DESC + " text)"; private SQLiteDatabase sqldb; private MySQLHelper helper; private Context ctx; private ContentV alues values; public DBHelper(Context context) { this.ctx = context; } class MySQLHelper extends SQLiteOpenHelper { public MySQLHelper() { // 创建数据库和数据库版本号 super(ctx, DA TABASE_NAME, null, VERSION); } // 创建表 @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DA TA TABLE_CREA TE); }

ANDROID开发之SQLITE数据库的使用

宁波工程学院电信学院计算机教研室 实验报告三 课程名称:3G OS应用及开发实验项目:SQLite数据库的使用指导教师:刘良旭实验位置:计算中心软件工程实验室实验日期:2012.6.3 实验主要内容与具体分工: 黄鼎民:代码实现 金建超:界面设计 唐成:程序调试及程序测试 王禹:撰写实验报告 指导教师评语

一、实验过程 1、实现思想 通过一个个人通讯录的案例来说明Android平台下进行数据库开发的相关知识,该个人通讯录主要包括联系人列表和联系人详细信息等界面。 2、功能设计 本程序是一个个人通讯录。程序主界面是通讯录的目录显示手机上的的联系人的名称。点击联系人的姓名可以显示联系人的详细信息。在按了MEMU键之后会弹出菜单栏。单击菜单栏上的按钮可以添加联系人和删除联系人 3、实现主要代码解释 (1)确定数据库的数据结构。本程序只要一张表,该表的内容及说明如下表所示 字段名称数据类型说明字段名称数据类型声明 _id Integer所插入记录 的编号 name varchar联系人名称 phone Varchar联系人的固 定电话 mobile varchar手机号码 Email Varchar联系人的邮 箱的地址 post varchar联系人固话 addr varchar联系认的地 址comp varchar联系人所在 地 (2)在res/drawable-mdpi目录下拷入程序要用的图标(3)定义字符串资源string.xml

(4)开发布局文件mail.xml用于显示联系人列表。 (5)layout目录下新建一个detail.xml,在其中输入如下的代码

Android远程连接MYSQL

Android远程连接 MYSQL Android虽然自带java.sql包,但是各数据库的JDBC Driver是否可用争议很多,不论国内网站还是国外网站,有人说能用,有人说不行,有人说虚拟机上能跑,上真手机就不行,有人说自己在手机上测试过也能跑。 但不管怎么说,直接连接远程数据库被公认不是一个很好的做法,至少在安全性上非常差的,所以现在最简单也是最流行的做法是访问远程服务器前段的PHP,PHP函数完成数据库操作,把结果经过JSON编码后传回,Android端再parse出结果。 SQL数据库创建测试表people 代码如下: CREATE TABLE `people` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 100 ) NOT NULL , `sex` BOOL NOT NULL DEFAULT '1', `birthyear` INT NOT NULL ) PHP前端文件getAllPeopleBornAfter.php代码如下,查询出生年月在year之后的人: '".$_REQUEST['year']."'"); while($e=mysql_fetch_assoc($q)) $output[]=$e; print(json_encode($output)); mysql_close(); ?> Android客户端的方法略微复杂一点,代码如下: String result = ""; //首先使用NameValuePair封装将要查询的年数和关键字绑定 ArrayList nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair("year","1980")); //使用HttpPost封装整个SQL语句 //使用HttpClient发送HttpPost对象

android实现一个简单的增删改查的数据库操作

效果图

‘package com.example.empmanager; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class AddEmpActivity extends Activity { private EditText empname,empno,empage,empsal; private Button save,clear;

DBHelper helper=new DBHelper(this); MainActivity activity=new MainActivity(); empInfo emp; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/3213165182.html,yout.add_emp); //初始化 empname=(EditText) findViewById(R.id.empname); empno=(EditText) findViewById(R.id.empno); empage=(EditText) findViewById(R.id.empage); empsal=(EditText) findViewById(R.id.empsal); save=(Button) findViewById(R.id.save); clear=(Button) findViewById(R.id.clear); save.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub String name=empname.getText().toString(); String no=empno.getText().toString(); String age=empage.getText().toString(); String sal=empsal.getText().toString(); if(name.length()>0&&no.length()>0&&age.length()>0&&sal.length()>0){ helper.insertEmp(name,no,age,sal); Toast.makeText(AddEmpActivity.this, "增加成功", 1000).show(); Intent intent=new Intent(AddEmpActivity.this,MainActivity.class); startActivity(intent); } else{ Toast.makeText(AddEmpActivity.this, "增加失败", 1000).show(); }

android中的数据库操作

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作。 一、android内的数据库的基础知识介绍 1.用了什么数据库 android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c 语言构建的。相关简介可以从链接查看。 2.数据库基本知识观花 对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念、基本语句快速的了解一下,是很有必要的,这样待会用Android的database相关方法去执行一些数据库语句时就不会茫然了。 ①数据库的基本结构——表格 表格是数据库中储存资料的基本架构。表格被分为栏位(column) 及列位(row)。每一列代表一笔资料,而每一栏代表一笔资料的一部份。举例来说,如果我们有一个记载顾客资料的表格,那栏位就有可能包括姓、名、地址、城市、国家、生日...等等。每一个表格拥有一个独一无二的名字(Table Name)以便能够让用户定位到它上面。一个典型的表格结构如下: Store_Information 表格

store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999 该表格的表格名字为Store_Information,一共有三个栏位,分别为store_name , Sales , Data ,已经录入了四笔数据所以有四个列位。 ②关于数据类型 和其他的数据库不同的是,sqlite是无类型的。也就是当你创建一个表格时,无需对每一个栏位要存储的数据的类型进行声明,当你在给表格增加数据条目时,sqlite会自动找到存入的数据的类型。 SQLite允许忽略数据类型,但是,仍然建议在Create Table语句中指定数据类型,因为数据类型有利于增强程序的可读性。SQLite支持常见的数据类型,如V ARCHAR、NV ARCHAR、TEXT、INTEGER、FLOAT、BOOLEAN、CLOB、BLOB、TIMESTAMP、NUMERIC、V ARYING、CHARACTER、NATl0NAI, V ARYINGCHARACTER。这些数据类型都是SQL92标准中规定的标准数据库数据类型,想要有更近一步了解,请参看下表。 SQL数据库数据类型详解 数据类型类型描述 bit 整型bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 整型int 数据类型可以存储从- 231(-2147483648)到231 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节 smallint 整型smallint 数据类型可以存储从- 215(-32768)到215(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间 tinyint 整型tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。这种数据类型在数据库中占用1 个字节 numeric 精确数值型numeric数据类型与decimal 型相同 decimal 精确数值型decimal 数据类型能用来存储从-1038-1到1038-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。范围是小数点左右所能存储

Android连接远程数据库(PHP+MYSQL)

Android连接远程数据库(PHP+MYSQL) Android虽然自带java.sql包,但是各数据库的JDBC Driver是否可用争议很多,不论国内网站还是国外网站,有人说能用,有人说不行,有人说虚拟机上能跑,上真手机就不行,有人说自己在手机上测试过也能跑。 但不管怎么说,直接连接远程数据库被公认不是一个很好的做法,至少在安全性上非常差的,所以现在最简单也是最流行的做法是访问远程服务器前段的PHP,PHP函数完成数据库操作,把结果经过JSON编码后传回,Android端再parse出结果。 SQL数据库创建测试表people 代码如下: CREATE TABLE `people` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 100 ) NOT NULL , `sex` BOOL NOT NULL DEFAULT '1', `birthyear` INT NOT NULL ) PHP前端文件getAllPeopleBornAfter.php代码如下,查询出生年月在year之后的人: '".$_REQUEST['year']."'"); while($e=mysql_fetch_assoc($q)) $output[]=$e; print(json_encode($output)); mysql_close(); ?> Android客户端的方法略微复杂一点,代码如下: String result = ""; //首先使用NameValuePair封装将要查询的年数和关键字绑定 ArrayList nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair("year","1980")); //使用HttpPost封装整个SQL语句 //使用HttpClient发送HttpPost对象

android通过JDBC直接访问Mysql数据库

Android通过JDBC访问MySql数据的方法和注意事项1. android中访问MySql数据库的代码: package com.example.te; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; String username; String userpassword; boolean flag = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/3213165182.html,yout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void connect(View view) throws ClassNotFoundException{ TextView textView = (TextView) findViewById(R.id.textView1); try{ String url = "jdbc:mysql://172.19.205.58:3306/test";

相关主题
相关文档
最新文档