数据库操作代码

package com.android.mysqlite.sqltools;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

/**
* 封装了对数据库的添加、删除和修改和查询功能。
*
* @author jack
*/
public class DbUtils {

private MySqliteHelper sqliteHelper = null;

public DbUtils(Context context) {
// TODO Auto-generated constructor stub
sqliteHelper = new MySqliteHelper(context);
}

/**
* 完成添加删除和修改功能
*
* @return
*/
public boolean updateBySql(String sql, Object[] bindArgs) {
boolean flag = false;
try {
SQLiteDatabase database = sqliteHelper.getWritableDatabase();
database.execSQL(sql, bindArgs);
flag = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return flag;
}

public Cursor getResultCursor(String sql,String[] selectionArgs){
Cursor cursor = null;
try {
SQLiteDatabase sqLiteDatabase = sqliteHelper.getReadableDatabase();
cursor = sqLiteDatabase.rawQuery(sql, selectionArgs);
} catch (Exception e) {
// TODO: handle exception
}
return cursor;
}

/**
* @param sql
* @param selectionArgs
* @return
*/
public List<Map<String, String>> queryMoreResultByCondition(String sql,
String[] selectionArgs) {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
try {
SQLiteDatabase database = sqliteHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(sql, selectionArgs);
int cols_len = cursor.getColumnCount();
while (cursor.moveToNext()) {
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < cols_len; i++) {
String cols_name = cursor.getColumnName(i + 1);
String cols_value = cursor.getString(cursor
.getColumnIndex(cols_name));
if (cols_value == null) {
cols_value = "";
}
map.put(cols_name, cols_value);
}
list.add(map);
}
} catch (Exception e) {
// TODO: handle exception
}
return list;
}

/**
* @param sql
* @param selectionArgs
* @return
*/
public Map<String, String> querySingleResultByCondition(String sql,
String[] selectionArgs) {
Map<String, String> map = new HashMap<String, String>();
try {
SQLiteDatabase database = sqliteHelper.getReadableDatabase();
Cursor cursor = database.rawQuery(sql, selectionArgs);
int cols_len = cursor.getColumnCount();// 获得个数
while (cursor.moveToNext()) {
for (int i = 0; i < cols_len; i++) {
String cols_name = cursor.getColumnName(i + 1);
String cols_value = cursor.getString(cursor
.getColumnIndex(cols_name));
if (cols_value == null) {
cols_value = "";
}
map.put(cols_name, cols_value);
}
}
} catch (Exception e) {
// TODO: handle exception
}
return map;
}
}

package com.android.mysqlite.sqltools;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DbUtils2 {

private MySqliteHelper sqliteHelper;

public DbUtils2(Context context) {
sqliteHelper = new MySqliteHelper(context);
}

public boolean insertBySql(String table, String nullColumnHack,
ContentValues values) {
boolean flag = false;
try {
SQLiteDatabase database = sqliteHelper.getWritableDatabase();
long count = database.insert(table, nullColumnHack, values);
flag = (count != -1 ? true : false);
} catch (Exception e) {
// TODO: handle exception
}
return flag;
}

/**
* @param table
* @param values
* @param whereClause
* @param whereArgs
* @return
*/
public boolean updateBySql(String table, ContentValues values,
String whereClause, String[] whereArgs) {
boolean flag = false;
try {
SQLiteDatabase database = sqliteHelper.getWritableDatabase();
long count = database.update(table, values, whereClause, whereArgs);
flag = (count != -1 ? true : false);
} catch (Exception e) {
// TODO: handle exception
}
return flag;
}

/**
* @param table
* 表名
* @param whereClause
* 删除的条件
* @param whereArgs
* 填充删除条件的值
* @return
*/
public boolean deleteBySql(String table, String whereClause,
String[] whereArgs) {
boolean flag = false;
try {
SQLiteDatabase database = sqliteHelper.getWritableDatabase();
long count = database.delete(table, whereClause, whereArgs);
flag = (count != -1 ? true : false);
} catch (Exception e) {
// TODO: handle exception
}
return flag;
}

/**
* 标准的sql语句格式:select [字段名] from tableName where [condition] group by
* [condition] having [condition] order by [condition] limit
*
* @param distinct
* @param table
* @param columns
* @param selection
* @param selectionArgs
* @param groupBy
* @param having
* @param orderBy
* @param limit
* @return
*/
public Cursor getResultBySql(boolean distinct, String table,
String[] columns, String selection, String[] selectionArgs,
String groupBy, String having, String orderBy, String limit) {
Cursor cursor = null;
try {
SQLiteDatabase database = sqliteHelper.getReadableDatabase();
cursor = database.query(distinct, table, columns, selection,
selectionArgs, groupBy, having, orderBy, limit);
} catch (Exception e) {
// TODO: handle exception
}
return cursor;
}
}

package com.android.mysqlite.sqltools;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class MySqliteHelper extends SQLiteOpenHelper {

private static int version = 2;
private static String name = "mydb.db";

public MySqliteHelper(Context context) {
super(context, name, null, version);
}

@Override
public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
// 被调用一次,仅仅是一次。
String sql = "CREATE TABLE person (id integer primary key autoincrement,_id integer, name varchar(20),address varchar(64))";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
String sql = "alter table person add address varchar(64)";
db.execSQL(sql);
}

}


1_创建admins表以及插入该表测试数据的脚本 DROP TABLE IF EXISTS `admins`; CREATE TABLE `admins` ( `管理员帐号` char(30) NOT NULL DEFAULT '', `用户名` char(30) NOT NULL DEFAULT '', `密码` char(8) DEFAULT NULL, PRIMARY KEY (`管理员帐号`,`用户名`), UNIQUE KEY `管理员帐号` (`管理员帐号`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `admins` VALUES ('admin1', '赵毅', '12345678'); INSERT INTO `admins` VALUES ('admin2', '陈丹', '123'); 2_创建inventory表以及插入该表测试数据的脚本 DROP TABLE IF EXISTS `inventory`; CREATE TABLE `inventory` ( `商品编号` int(10) unsigned NOT NULL DEFAULT '0', `商品名称` char(30) NOT NULL DEFAULT '', `当前库存量` int(10) unsigned NOT NULL, `最大库存量` int(10) unsigned NOT NULL, `最小库存量` int(10) unsigned NOT NULL, PRIMARY KEY (`商品编号`,`商品名称`), UNIQUE KEY `商品编号` (`商品编号`), UNIQUE KEY `商品名称` (`商品名称`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `inventory` VALUES ('15001', '计算机', '150', '500', '100'); INSERT INTO `inventory` VALUES ('15002', '打印机', '9', '30', '5'); INSERT INTO `inventory` VALUES ('15003', '扫描仪', '11', '20', '3'); INSERT INTO `inventory` VALUES ('15004', '路由器', '9', '20', '0'); INSERT INTO `inventory` VALUES ('15005', '交换机', '15', '30', '5'); 3_创建checkin表以及插入该表测试数据的脚本 DROP TABLE IF EXISTS `checkin`; CREATE TABLE `checkin` ( `序号` int(10) unsigned NOT NULL AUTO_INCREMENT, `耗材编号` int(10) unsigned DEFAULT NULL, `入库耗材` char(30) DEFAULT NULL, `数量` int(10) unsigned NOT NULL, `价格` float NOT NULL, `入库日期` date DEFAULT NULL, `入库时间` time DEFAULT NULL, PRIMARY KEY (`序号`), KEY `耗材编号` (`耗材编号`,`入库耗材`), CONSTRAINT `checkin_ibfk_1` FOREIGN KEY (`耗材编号`, `入库耗材`) REFERENCES `inventory` (`商品编号`, `商品名称`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; INSERT INTO `checkin` VALUES ('1', '15002', '打印机', '6', '2000', '2015-08-14', '15:59:12'); INSERT INTO `checkin` VALUES ('2', '15004', '路由器', '2', '3000', '2015-08-16', '11:33:55'); INSERT INTO `checkin` VALUES ('3', '15001', '计算机', '30', '2500', '2015-11-13', '15:30:50'); INSERT INTO `checkin` VALUES ('4', '15004', '路由器', '4', '2500', '2015-11-13', '08:33:12'); 4_创建checkout表以及插入该表测试数据的脚本 DROP TABLE IF EXISTS `checkout`; CREATE TABLE `checkout` ( `序号` int(10) unsigned NOT NULL AUTO_INCREMENT, `耗材编号` int(10) unsigned DEFAULT NULL, `出库耗材` char(30) DEFAULT NULL, `数量` int(10) unsigned NOT NULL, `库存管理员` char(30) DEFAULT NULL, `出库负责人` char(30) DEFAULT NULL, `出库日期` date DEFAULT NULL, `出库时间` time DEFAULT NULL, PRIMARY KEY (`序号`), KEY `耗材编号` (`耗材编号`,`出库耗材`), KEY `库存管理员` (`库存管理员`,`出库负责人`), CONSTRAINT `checkout_ibfk_1` FOREIGN KEY (`耗材编号`, `出库耗材`) REFERENCES `inventory` (`商品编号`, `商品名称`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `checkout_ibfk_2` FOREIGN KEY (`库存管理员`, `出库负责人`) REFERENCES `admins` (`管理员帐号`, `用户名`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
如果您需要将Java代码还原为数据库操作代码,可以参考以下步骤: 1. 分析Java代码,确定需要进行数据库操作的部分,例如查询、插入、更新等。 2. 确定数据库类型和连接方式,例如MySQL、Oracle等,以及连接方式(JDBC、JPA等)。 3. 根据数据库类型和连接方式,编写Java代码连接数据库。 4. 根据Java代码中需要进行的操作,编写对应的SQL语句,并使用Java代码进行执行。 以下是一个示例代码,用于查询MySQL数据库中的数据: ```java import java.sql.*; public class MySQLExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; try { Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM mytable"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 这个示例代码连接到MySQL数据库,查询名为`mytable`的表中的所有数据,并将查询结果输出到控制台。需要注意的是,如果您的代码中使用了ORM框架,那么可以直接使用框架提供的API进行数据库操作,而不需要手动编写SQL语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值