Cache数据的基本增删改查

1.本次实现是通过在Terminal下建表(可以在Studio中直接写类持久化到数据库中),在Studio下通过代码实现的。

2.废话不多说,直接上代码,下面是老师表的实体类。

Class User.Teacher Extends %Library.Persistent [ ClassType = persistent, Owner = {_SYSTEM}, Not ProcedureBlock, SqlTableName = Teacher, StorageStrategy = SQLStorage ]
{

Parameter EXTENTSIZE = 250;

/// Teacher Row ID
Property TRowID As %Library.Numeric(SCALE = 0, SELECTIVITY = 1) [ InitialExpression = {$i(^Teacher("0"))}, Required, SqlFieldName = T_RowID ];

/// T_No
Property TNo As %Library.String(COLLATION = "Exact", MAXLEN = 30, TRUNCATE = 0) [ SqlColumnNumber = 2, SqlFieldName = T_No ];

/// T_Name
Property TName As %Library.String(COLLATION = "Exact", MAXLEN = 30, TRUNCATE = 0) [ SqlColumnNumber = 3, SqlFieldName = T_Name ];

/// T_Sex
Property TSex As %Library.String(DISPLAYLIST = ",男,女", MAXLEN = 1, SELECTIVITY = "33.3333%", VALUELIST = ",1,2") [ SqlColumnNumber = 4, SqlFieldName = T_Sex ];

/// T_Birthday
Property TBirthday As %Library.Date(FORMAT = 1) [ SqlColumnNumber = 5, SqlFieldName = T_Birthday ];

Index TNoUnqIdx1 On TNo [ Unique ];

Index RowIDBasedIDKeyIndex On TRowID [ IdKey, PrimaryKey, Unique ];

Storage SQLStorage
{
//此处省略,持久化的过程会自动添加
}

}

3.以下是通过M基本语法对此老师表的增删改查。

/// 操作老师数据
Class User.TeacherOperation Extends (%RegisteredObject, %XML.Adaptor)
{

/// Desc:       添加老师数据
/// Creator:    zhihongxin
/// CreateDate: 2019.7.12
/// Output:     0:失败 1:成功
/// Debug:      w ##Class(User.TeacherOperation).AddTeacherData("0104","Donib","1","")
ClassMethod AddTeacherData(TNo As %String, TName As %String, TSex As %String, TBirthday As %Date) As %String
{
	TSTART
	//s result = 0
	q:(TNo = "") result
	s obj = ##Class(User.Teacher).%New()
	s obj.TNo = TNo
	s obj.TName = TName
	s obj.TSex = TSex
	s obj.TBirthday = $zdh(TBirthday,3)
	//s obj.TBirthday = $p($h,",",1)
	//s obj.ApplyTime = $p($h,",",2)
	//s sc = obj.%Save()
	//s:($$$ISOK(sc)) result = 1 
	//q result
	
	if '(obj.%Save())
 	{
	 TROLLBACK
 	 Quit "0"
	 } 
 	TCOMMIT
	Quit "1"
}

/// Desc:       根据更新老师数据
/// Creator:    zhihongxin
/// CreateDate: 2019.7.12
/// Output:     result 0:失败 1:成功
/// Debug:      w ##Class(User.TeacherOperation).AddTeacherData("0104","Donib","1","")
ClassMethod UpdateTeacherInfo(TRowID As %String, TNo As %String, TName As %String, TSex As %String, TBirthday As %Date) As %String [ WebMethod ]
{
 TSTART
 set newTeacher = ##class(User.Teacher).%OpenId(TRowID)
 Quit:(newTeacher ="") "0"

 set newTeacher.TNo = TNo
 set newTeacher.TName = TName
 set newTeacher.TSex = TSex
 set newTeacher.TBirthday = $zdh(TBirthday,3)

 if '(newTeacher.%Save())
 {
 TROLLBACK
 Quit "0"
 } 
 TCOMMIT
 Quit "1"
}

/// Desc:       根据ID获取老师数据
/// Creator:    zhihongxin
/// CreateDate: 2019-7-12
/// Input:      the Teacher T_No
/// Output:     Teacher info
/// Debug:      w ##Class(User.TeacherOperation).GetTeacherInfoById(6)
ClassMethod GetTeacherInfoById(TID As %String) As %String [ WebMethod ]
{
	set teacherInfo = ##class(User.Teacher).%OpenId(TID)
 	q:(teacherInfo="") ""

 	Quit teacherInfo.TRowID_"^"_teacherInfo.TNo_"^"_teacherInfo.TName_"^"
 	_teacherInfo.TSex_"^"_$zd(teacherInfo.TBirthday,3)
}

/// Desc:       根据ID删除老师数据
/// Creator:    zhihongxin
/// CreateDate: 2019-7-12
/// Input:      the Teacher T_No
/// Output:     0:失败 1:成功
/// Debug:     w ##CLASS(User.TeacherOperation).DeleteTeacherInfoById(6)
ClassMethod DeleteTeacherInfoById(TNo As %String) As %Boolean
{
 TSTART
 set info = ##class(User.Teacher).%OpenId(TNo)
 Quit:(info ="") 0 

 if '(info.%DeleteId(TNo))
 {
 TROLLBACK
 Quit 0
 } 
 TCOMMIT
 Quit 1
}

/// Desc:       获取所有老师的数据
/// Creator:    zhihongxin
/// CreateDate: 2019-7-12
/// Input:      null
/// Output:     All Teacher info
/// Debug:      d ##Class(User.TeacherOperation).GetTeacherInfo()
ClassMethod GetTeacherInfo() As %String
{
	s TRowID = 0,Num = 0
	f  s TRowID = $o(^Teacher(TRowID),1) q:TRowID=""  d
	.s TNo = $p(^Teacher(TRowID),"^",1)
	.s TName = $p(^Teacher(TRowID),"^",2)
	.s TSex = $p(^Teacher(TRowID),"^",3)
	.s TBirthday = $p(^Teacher(TRowID),"^",4)
	.s Num = Num + 1
	.write !,TRowID_"^"_TNo_"^"_TName_"^"_TSex_"^"_$zd(TBirthday,3)
	q Num
}

}

注:初学写的很一般,待今后参考更正。

禁止转载,仅供参考。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP是一种流行的开源编程语言,常用于Web开发。在PHP中,我们可以使用各种方法来实现增删改查操作,并且还可以使用其它库来导出Excel文件。 首先,我们可以使用SQL语句执行增删改查操作。PHP提供了一组用于与数据库交互的函数和类,如mysqli和PDO等。我们可以连接到数据库,执行插入、更新和删除等操作,以及执行查询操作,并将结果返回到PHP脚本中进行处理和展示。 对于导出Excel文件,我们可以使用PHPExcel库。该库提供了一组丰富的功能,可以创建和操作Excel文件。我们可以使用该库创建一个Excel文件,设置头部信息数据内容,并将其保存到服务器或直接下载到客户端。 以下是一个简单的示例,演示了如何使用PHP实现增删改查和导出Excel的操作: 1. 增加数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行插入操作 $sql = "INSERT INTO table_name (column1, column2, column3) VALUES ('value1', 'value2', 'value3')"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 2. 删除数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行删除操作 $sql = "DELETE FROM table_name WHERE condition"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 3. 修改数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行更新操作 $sql = "UPDATE table_name SET column1 = 'new_value' WHERE condition"; $conn->query($sql); // 断开数据库连接 $conn->close(); ``` 4. 查询数据: ```php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "dbname"); // 执行查询操作 $sql = "SELECT * FROM table_name"; $result = $conn->query($sql); // 处理查询结果 if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { // 处理每一行数据 } } // 断开数据库连接 $conn->close(); ``` 5. 导出Excel文件: ```php // 导出Excel文件 require_once 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); // 设置Excel头部信息 $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Column 1'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Column 2'); $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Column 3'); // 设置Excel数据内容 $objPHPExcel->getActiveSheet()->setCellValue('A2', 'Value 1'); $objPHPExcel->getActiveSheet()->setCellValue('B2', 'Value 2'); $objPHPExcel->getActiveSheet()->setCellValue('C2', 'Value 3'); // 保存Excel文件 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('file.xls'); ``` 以上就是使用PHP实现增删改查和导出Excel的一些基本操作方法。根据具体需求,我们可以使用更复杂的SQL语句和PHPExcel库的更多功能来实现更强大的操作。 ### 回答2: PHP是一种常用的服务器端脚本语言,非常适合用于增删改查数据库操作,并且很容易实现导出Excel功能。 在PHP中,我们可以使用MySQLi或PDO等扩展来连接数据库进行数据增删改查操作。对于增加(Insert)、删除(Delete)、修改(Update)数据非常简单,只需要使用对应的SQL语句即可。 例如,对于增加数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ``` 对于删除数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "DELETE FROM users WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录删除成功"; } else { echo "Error deleting record: " . $conn->error; } $conn->close(); ``` 对于修改数据: ```php $conn = new mysqli($servername, $username, $password, $dbname); $sql = "UPDATE users SET email='johndoe@example.com' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "Error updating record: " . $conn->error; } $conn->close(); ``` 除了增删改查之外,导出Excel也非常简单。我们可以使用PHPExcel等第三方库来实现。 例如,导出Excel数据: ```php require_once 'PHPExcel/Classes/PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Name'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Email'); $conn = new mysqli($servername, $username, $password, $dbname); $sql = "SELECT * FROM users"; $result = $conn->query($sql); $rowCount = 2; while($row = $result->fetch_assoc()) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowCount, $row['name']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $rowCount, $row['email']); $rowCount++; } $conn->close(); $objPHPExcel->getActiveSheet()->setTitle('Users'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="users.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; ``` 以上就是使用PHP进行增删改查和导出Excel的简单示例。PHP提供了丰富的数据库操作功能和众多扩展库,让我们能够轻松地进行各种数据库操作和数据处理。 ### 回答3: PHP是一种非常流行的后端编程语言,可以很方便地实现数据库的增删改查操作以及导出Excel文件。 首先,对于数据库的增删改查操作,可以使用PHP的数据库扩展(如mysqli或PDO)来连接数据库,并使用相关函数实现。 对于增加(INSERT)操作,可以通过执行SQL INSERT语句向数据库中插入新的数据记录。 对于删除(DELETE)操作,可以通过执行SQL DELETE语句从数据库中删除指定的数据记录。 对于修改(UPDATE)操作,可以通过执行SQL UPDATE语句更新数据库中指定的数据记录。 对于查找(SELECT)操作,可以通过执行SQL SELECT语句从数据库中获取符合条件的数据记录。 在PHP中,可以使用相关的数据库函数(如mysqli_query或PDO::query)执行SQL语句,并通过结果返回来获取执行结果。 对于导出Excel文件,可以使用PHP的第三方库(如PHPExcel或PHPExcelWriter)来创建和操作Excel文件。 首先,可以在PHP中引入相关的Excel库,并创建一个新的Excel对象。 然后,可以使用Excel对象中的方法来添加工作、设置单元格内容和样式等。 最后,可以使用Excel库提供的导出方法,将Excel文件保存到指定的路径上。 需要注意的是,确保服务器上已经安装并启用了Excel库,并且对于导出文件的路径,需要给予足够的文件写入权限。 综上所述,使用PHP实现数据库的增删改查操作以及导出Excel文件的方法可以简要归纳为:连接数据库并执行相关的SQL语句完成增删改查操作;引入Excel库并创建一个Excel对象,通过添加工作,设置单元格内容和样式等操作生成Excel文件;最后,使用Excel库提供的导出方法将文件保存到指定路径上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值