Android客户端服务端数据库代码展示 (安卓客户端服务端数据库源码实例)
随着移动互联网的普及,越来越多的人开始使用智能手机、平板电脑等移动设备进行网络活动,而在这些移动设备中,Android是更受欢迎的一个系统。因此,在Android上开发应用已经成为了很多开发者的首选。而在开发过程中,数据库处理是不可或缺的一部分,今天我们就来分享一下Android客户端和服务端的数据库代码展示。
一、Android客户端数据库代码展示
1.数据库创建
在Android客户端开发中,SQLite是最常用的本地存储数据库。下面是数据库创建的代码:
“`
public class DBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = “user.db”;//数据库名字
private static final int DB_VERSION = 1;//数据库版本号
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableSql = “create table if not exists user (“
+ “_id integer primary key autoincrement,”
+ “name varchar(20) not null,”
+ “age integer not null,”
+ “gender varchar(10) not null,”
+ “phone varchar(11) not null)”;
db.execSQL(createTableSql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropTableSql = “drop table if exists user”;
db.execSQL(dropTableSql);
onCreate(db);
}
}
“`
在这个示例中,我们创建了一个名为“user.db”的数据库,其中包含了一个名为“user”的表。表中有五个字段,分别是_id、name、age、gender、phone。其中_id是主键,自增;name、gender、phone都是字符串类型,不为空;age是整型,不为空。
2. 数据库操作
接下来是数据库的操作,包括查询、插入、删除、修改等。
查询操作:
“`
public List getUsers(SQLiteDatabase db) {
List userList = new ArrayList();
Cursor cursor = db.query(“user”, null, null, null, null, null, null);
while (cursor.moveToNext()) {
User user = new User();
user.setId(cursor.getInt(0));
user.setName(cursor.getString(1));
user.setAge(cursor.getInt(2));
user.setGender(cursor.getString(3));
user.setPhone(cursor.getString(4));
userList.add(user);
}
cursor.close();
return userList;
}
“`
插入操作:
“`
public long insertUser(SQLiteDatabase db, User user) {
ContentValues values = new ContentValues();
values.put(“name”, user.getName());
values.put(“age”, user.getAge());
values.put(“gender”, user.getGender());
values.put(“phone”, user.getPhone());
return db.insert(“user”, null, values);
}
“`
删除操作:
“`
public int deleteUser(SQLiteDatabase db, int id) {
return db.delete(“user”, “_id=?”, new String[]{String.valueOf(id)});
}
“`
修改操作:
“`
public int updateUser(SQLiteDatabase db, User user) {
ContentValues values = new ContentValues();
values.put(“name”, user.getName());
values.put(“age”, user.getAge());
values.put(“gender”, user.getGender());
values.put(“phone”, user.getPhone());
return db.update(“user”, values, “_id=?”, new String[]{String.valueOf(user.getId())});
}
“`
二、服务端数据库代码展示
服务端数据库一般使用MySQL或Oracle等关系型数据库,同时也可以使用NoSQL等非关系型数据库。这里我们以MySQL为例进行展示。
1.数据库创建
在MySQL中创建数据库的过程和在Android中创建SQLite数据库的过程类似。下面是一个简单的创建数据库的示例:
“`
CREATE DATABASE `user`;
“`
2.数据库表创建
在MySQL中创建表的语法如下所示:
“`
CREATE TABLE 表名 (
列名1 数据类型 [约束条件],
列名2 数据类型 [约束条件],
列名3 数据类型 [约束条件],
……
);
“`
下面是一个简单的创建用户表的示例:
“`
CREATE TABLE `user`.`user` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT ‘用户id’,
`name` VARCHAR(20) NOT NULL COMMENT ‘用户姓名’,
`age` INT NOT NULL COMMENT ‘用户年龄’,
`gender` VARCHAR(10) NOT NULL COMMENT ‘用户性别’,
`phone` VARCHAR(11) NOT NULL COMMENT ‘用户号码’,
PRIMARY KEY (`id`) COMMENT ‘用户表主键’
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=’用户表’;
“`
在这个示例中,我们创建了一个名为“user”的表,其中包含了五个字段,分别是id、name、age、gender、phone。其中id是主键,自增;name、gender、phone都是字符串类型,不为空;age是整型,不为空。
3. 数据库操作
在服务端代码中,我们使用Java语言操作数据库。MySQL提供了官方驱动程序,我们可以通过引入mysql-connector-java.jar来使用这个驱动。下面是Java操作MySQL的示例。
查询操作:
“`
public List getUsers() {
List userList = new ArrayList();
String sql = “select * from user”;
try (
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
) {
while(rs.next()) {
User user = new User();
user.setId(rs.getInt(“id”));
user.setName(rs.getString(“name”));
user.setAge(rs.getInt(“age”));
user.setGender(rs.getString(“gender”));
user.setPhone(rs.getString(“phone”));
userList.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return userList;
}
“`
插入操作:
“`
public int insertUser(User user) {
String sql = “insert into user(name, age, gender, phone) values(?, ?, ?, ?)”;
int rows = 0;
try (
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
) {
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getGender());
stmt.setString(4, user.getPhone());
rows = stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
“`
删除操作:
“`
public int deleteUser(int id) {
String sql = “delete from user where id=?”;
int rows = 0;
try (
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
) {
stmt.setInt(1, id);
rows = stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
“`
修改操作:
“`
public int updateUser(User user) {
String sql = “update user set name=?, age=?, gender=?, phone=? where id=?”;
int rows = 0;
try (
Connection conn = dataSource.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
) {
stmt.setString(1, user.getName());
stmt.setInt(2, user.getAge());
stmt.setString(3, user.getGender());
stmt.setString(4, user.getPhone());
stmt.setInt(5, user.getId());
rows = stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
“`