做了一个demo,查询,删除,添加的效果

aihua
SjvavE 3 years ago
parent 96ea1e6db1
commit 471995480a

@ -9,13 +9,12 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="c05b8a8d-d805-4e13-a87e-db77479b20ae" name="Default Changelist" comment="添加基本的实体类">
<list default="true" id="c05b8a8d-d805-4e13-a87e-db77479b20ae" name="Default Changelist" comment="将实体类的tomap方法完善了同时设计好了基本的mvc三层架构">
<change afterPath="$PROJECT_DIR$/lib/database/User/UserMapper.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/database/database_init.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/database/database_init.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/entity/Clock.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/entity/Clock.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/entity/Course.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/entity/Course.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/entity/Task.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/entity/Task.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/entity/Work.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/entity/Work.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/controller/UserController.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/controller/UserController.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/database/User/UserService.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/database/User/UserService.dart" afterDir="false" />
<change beforePath="$PROJECT_DIR$/lib/main.dart" beforeDir="false" afterPath="$PROJECT_DIR$/lib/main.dart" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -145,7 +144,7 @@
<workItem from="1695208047127" duration="657000" />
<workItem from="1695299184020" duration="3382000" />
<workItem from="1695309116608" duration="10000" />
<workItem from="1695340191136" duration="31011000" />
<workItem from="1695340191136" duration="37266000" />
</task>
<task id="LOCAL-00001" summary="解绝数据库连接的问题">
<option name="closed" value="true" />
@ -179,7 +178,31 @@
<option name="project" value="LOCAL" />
<updated>1695368650691</updated>
</task>
<option name="localTasksCounter" value="5" />
<task id="LOCAL-00005" summary="将实体类的gettersettertostring方法完善了">
<option name="closed" value="true" />
<created>1695393984912</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1695393984912</updated>
</task>
<task id="LOCAL-00006" summary="将实体类的gettersettertostring方法完善了">
<option name="closed" value="true" />
<created>1695394002494</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1695394002494</updated>
</task>
<task id="LOCAL-00007" summary="将实体类的tomap方法完善了同时设计好了基本的mvc三层架构">
<option name="closed" value="true" />
<created>1695397397678</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1695397397678</updated>
</task>
<option name="localTasksCounter" value="8" />
<servers />
</component>
<component name="ToolWindowManager">
@ -205,7 +228,9 @@
<component name="VcsManagerConfiguration">
<MESSAGE value="解绝数据库连接的问题" />
<MESSAGE value="添加基本的实体类" />
<option name="LAST_COMMIT_MESSAGE" value="添加基本的实体类" />
<MESSAGE value="将实体类的gettersettertostring方法完善了" />
<MESSAGE value="将实体类的tomap方法完善了同时设计好了基本的mvc三层架构" />
<option name="LAST_COMMIT_MESSAGE" value="将实体类的tomap方法完善了同时设计好了基本的mvc三层架构" />
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />

@ -0,0 +1,51 @@
import 'package:timemanagerapp/database/User/UserService.dart';
import 'package:timemanagerapp/database/database_init.dart';
/**
*
*/
class UserController {
//
static UserController getInstance() {
return new UserController();
;
}
//
//UserService userService=UserService.getInstance();
var db = MyDatabase.initDatabase();
Future<List<Map<String, dynamic>>> getUsers() async {
final database = await db;
if (database != null) {
return database.rawQuery('SELECT * FROM users');
} else {
return [];
}
}
Future<void> insertUser() async {
final database = await db;
if (database != null) {
await database.transaction((txn) async {
//
await txn.rawInsert('''
INSERT INTO users(name, age)
VALUES('John Doe', 25)
''');
});
}
}
Future<void> deleteAllUsers() async {
final database = await db;
if (database != null) {
await database.transaction((txn) async {
//
await txn.rawDelete('''
DELETE FROM users
''');
});
}
}
}

@ -0,0 +1,72 @@
/*
import 'package:timemanagerapp/entity/User.dart';
*/
/**
* Usercrud
*//*
class UserMapper {
UserMapper instance = new UserMapper();
//
static UserMapper getInstance() {
return this.instance;
}
*/
/**
*
*//*
bool add(
String username,
String password,
int role,
) {
//TODO
}
*/
/**
*
* @param id id
*//*
bool delete(int id) {
//TODO
}
*/
/**
*
*//*
List<User> selectAll() {
//TODO
}
*/
/**
*
*//*
User query(int id) {
//TODO
}
*/
/**
*
*//*
User update(
int id,
String username,
String password,
String role,
) {
//TODO
}
}
*/

@ -1,45 +1,78 @@
/*
import 'package:timemanagerapp/database/User/UserMapper.dart';
import 'package:timemanagerapp/entity/User.dart';
';
*/
/**
* Usercrud
*/
* user
*//*
class UserService {
UserService instance = new UserService();
UserService userService = new UserService();
static UserService getInstance() {
return this.instance;
}
/**
*
*/
void addUser(User user) {
//TODO
//
UserService getInstance() {
return userService;
}
/**
*
*/
void delete(User user) {
//TODO
//mapper
UserMapper userMapper = UserMapper.getInstance();
*/
/**
*
* @param user
*//*
bool addUser(User user) {
//TODO
String userName = user.getUsername();
String password = user.getPassword();
int role = user.getRole();
bool res = userMapper.add(userName, password, role);
//TODO
}
/**
*
*/
List<User> selectUser() {
//TODO
bool deleteUser(User user) {
//TODO
int id = user.getId();
bool res = userMapper.delete(id);
//TODO
}
/**
*
*/
User queryUser(int id) {
//TODO
*/
/**
*
* @param user
*//*
bool updateUser(User user) {
//TODO
int id = user.getId();
String userName = user.getUsername();
String password = user.getPassword();
int role = user.getRole();
bool res = userMapper.update(id, userName, password, role);
//TODO
}
/**
*
*/
User editUser(User user) {
//TODO
*/
/**
*
* @param user
*//*
User queryUser(User user) {
//TODO
int id = user.getId();
User res = userMapper.query(id);
//TODO
}
}
List<User> queryUserList() {
List<User> res = userMapper.selectAll(;
//TODO
}
*/

@ -15,6 +15,17 @@ class Clock {
required this.continueTime,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'userId': userId,
'text': text,
'img': img,
'music': music,
'continueTime': continueTime.toIso8601String(),
};
}
// Getter methods
int get getId => id;

@ -19,6 +19,19 @@ class Course {
required this.end,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'name': name,
'credit': credit,
'teacher': teacher,
'location': location,
'remark': remark,
'start': start.toIso8601String(),
'end': end.toIso8601String(),
};
}
// Getter methods
int get getId => id;

@ -19,6 +19,19 @@ class Task {
required this.endTime,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'userId': userId,
'content': content,
'taskId': taskId,
'frequency': frequency,
'name': name,
'startTime': startTime.toIso8601String(),
'endTime': endTime.toIso8601String(),
};
}
// Getter methods
int get getId => id;

@ -9,6 +9,14 @@ class Team {
required this.maxNumber,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'teamName': teamName,
'maxNumber': maxNumber,
};
}
// Getter methods
int get getId => id;

@ -2,7 +2,9 @@ class User {
int id;
String username;
String password;
String role;
//01
int role;
User({
required this.id,
@ -11,6 +13,15 @@ class User {
required this.role,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'username': username,
'password': password,
'role': role,
};
}
// Getter methods
int get getId => id;
@ -18,7 +29,7 @@ class User {
String get getPassword => password;
String get getRole => role;
int get getRole => role;
// Setter methods
set setId(int newId) {
@ -33,7 +44,7 @@ class User {
password = newPassword;
}
set setRole(String newRole) {
set setRole(int newRole) {
role = newRole;
}

@ -19,6 +19,19 @@ class Work {
required this.startTime,
});
Map<String, dynamic> toMap() {
return {
'id': id,
'status': status,
'workContent': workContent,
'teamId': teamId,
'functionaryId': functionaryId,
'workId': workId,
'endTime': endTime.toString(),
'startTime': startTime.toString(),
};
}
// Getter methods
int get getId => id;

@ -22,6 +22,8 @@ class MyApp extends StatelessWidget {
*/
import 'package:flutter/material.dart';
import 'package:sqflite/sqflite.dart';
import 'package:timemanagerapp/controller/UserController.dart';
import 'package:timemanagerapp/entity/User.dart';
import 'database/database_init.dart';
void main() {
@ -47,38 +49,10 @@ class HomePage extends StatefulWidget {
}
class _HomePageState extends State<HomePage> {
Future<Database>? _database;
UserController userController=UserController.getInstance();
@override
void initState() {
super.initState();
//
var db=MyDatabase.initDatabase();
setState(() {
_database=db;
});
}
Future<void> _insertUser() async {
final database = await _database;
if (database != null) {
await database.transaction((txn) async {
//
await txn.rawInsert('''
INSERT INTO users(name, age)
VALUES('John Doe', 25)
''');
});
}
}
Future<List<Map<String, dynamic>>> _getUsers() async {
final database = await _database;
if (database != null) {
return database.rawQuery('SELECT * FROM users');
} else {
return [];
}
}
@override
@ -92,12 +66,16 @@ class _HomePageState extends State<HomePage> {
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: _insertUser,
onPressed: userController.deleteAllUsers,
child: Text('删除用户'),
),
ElevatedButton(
onPressed: userController.insertUser,
child: Text('插入用户'),
),
ElevatedButton(
onPressed: () {
_getUsers().then((users) {
userController.getUsers().then((users) {
showDialog(
context: context,
builder: (context) {

Loading…
Cancel
Save