
2.d出数据库创建窗体,在“文件”输入框中填写要创建数据库的名称,点击确认按钮。这里我们创建一个名叫“CourseManagerDB”的数据库。
3.在左侧菜单栏中右击“Tables”,点击“Create a table”创建一个表格。
4.这里我们创建一个名叫“Course”的表格。点击“Add column”按钮,在d出的界面中可以添加字段,这里我们添加“CourseID”、“CourseName”、“ClassHour”这三个字段。
5.添加完成后点击“Commit structure changes”,d出SQL语句窗体。点击“OK”按钮,这个时候我们的“Course”表格就创建好了。
6.点击“工具”按钮,选择“打开SQL编辑器”,在这里我们使用T-SQL语句为数据表添加三条数据,我们同样可以使用T-SQL语句查询表格中的数据。
ThinkPHP的数据写入 *** 作使用add方法,使用示例如下:$User = M("User")// 实例化User对象
$data['name'] = 'ThinkPHP'
$data['email'] = 'ThinkPHP@gmail.com'
$User->add($data)
如果是Mysql数据库的话,还可以支持在数据插入时允许更新 *** 作:
add($data='',$options=array(),$replace=false)
其中add方法增加$replace参数(是否添加数据时允许覆盖),true表示覆盖,默认为false
或者使用data方法连贯 *** 作
$User = M("User")// 实例化User对象
$User->data($data)->add()
如果在add之前已经创建数据对象的话(例如使用了create或者data方法),add方法就不需要再传入数据了。 使用create方法的例子:
$User = M("User")// 实例化User对象
// 根据表单提交的POST数据创建数据对象
if($User->create()){
$result = $User->add()// 写入数据到数据库
if($result){
// 如果主键是自动增长型 成功后返回值就是最新插入的值
$insertId = $result
}
}
更多问题可以去php中文网问答社区提问http://www.php.cn/wenda.html,大神在线帮你解决,希望对你有帮助
一、引入
数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基
本的 *** 作包括创建、读取、更新、删除,即我们通常说的 CRUD(Create, Read, Update, Delete)。
在实现这些 *** 作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类。
二、创建表
1,execSQL(String sql):执行一条 sql 语句,且执行 *** 作不能为 SELECT
因为它的返回值为 void,所以推荐使用 insert、update 方法等
2.,execSQL (String sql,Object[] bindArgs)
sql:执行一条 sql 语句
bindArgs:为 sql 语句中的?赋值
三、添加数据
1、execSQL(String sql)
2、使用对象的 insert 方法
ContentValues values = new ContentValues()
values.put(USERNAME, user.getUsername())
values.put(PASSWORD, user.getPassword())
db.insert(TABLE_NAME, null, values)
参数:
table:数据库中的表名
nullColumnHack:指定默认插入字段,为 null 时能插入数据
values:表示插入字段所对应的值,使用 put 方法。
四、删除数据
1、execSQL(String sql)
2、使用对象的 delete 方法
String whereClaues="_id=?"
String [] whereArgs={String.valueOf(id)}
//db.delete(TABLE_NAME, "_id="+id, null)
db.delete(TABLE_NAME, whereClaues, whereArgs)
参数
table:数据库的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值
五、修改数据
1、execSQL(String sql)
2、使用对象的 delete 方法
ContentValues values = new ContentValues()
values.put(USERNAME, user.getUsername())
values.put(PASSWORD, user.getPassword())
String whereClaues="_id=?"
String [] whereArgs={String.valueOf(user.getId())}
db.update(TABLE_NAME, values, whereClaues, whereArgs)
参数
table:数据库的表名
values:代表要修改的值,修改方法还是 put(key,values)
whereClause:条件子句,比如 id=?,name=?
whereArgs:为 whereClause 中的?赋值,比如:new String[]{"1","张三"}
图:
参考代码:
程序内使用SQLite数据库是通过SQLiteOpenHelper进行 *** 作
1. 自己写个类继承SQLiteOpenHelper,重写以下3个方法
public void onCreate(SQLiteDatabase db)
{//创建数据库时的 *** 作,如建表}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
//版本更新的 *** 作
}
2. 通过SQLiteOpenHelper的getWritableDatabase()获得一个SQLiteDatabase数据库,以后的 *** 作都是对SQLiteDatabase进行 *** 作。
3. 对得到的SQLiteDatabase对象进行增,改,删,查等 *** 作。
代码
package cx.myNote
import android.content.ContentValues
import android.content.Context
import android.content.Intent
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
//DBOptions for login
public class DBOptions {
private static final String DB_NAME = "notes.db"
private static final String DB_CREATE="create table logininf(name text,pwd text)"
public class DBHelper extends SQLiteOpenHelper
{
public DBHelper(Context context) {
super(context,DB_NAME, null, 1)
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//建表
db.execSQL(DB_CREATE)
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists logininf")
onCreate(db)
}
}
private Context context
private SQLiteDatabase db
private DBHelper dbHelper
public DBOptions(Context context)
{
this.context = context
dbHelper = new DBHelper(context)
db=dbHelper.getReadableDatabase()
}
//自己写的方法,对数据库进行 *** 作
public String getName()
{
Cursor cursor = db.rawQuery("select name from logininf", null)
cursor.moveToFirst()
return cursor.getString(0)
}
public int changePWD(String oldP,String pwd)
{
ContentValues values = new ContentValues()
values.put("pwd", pwd)
return db.update("logininf", values,"pwd="+oldP, null)
}
}
insert方法插入的一行记录使用ContentValus存放,ContentValues类似于Map,它提供了put(String key, Xxx value)(其中key为数据列的列名)方法用于存入数据、getAsXxxx(String key)方法用于取出数据
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)