xml的crud

这个是index.xml

<?xml version="1.0" encoding="utf-8"?>
<!--保存编码utf-8-->
<!--引入dtd-->
<!DOCTYPE 班级 SYSTEM "class01.dtd">
<班级>
<学生>
<名字>周星驰</名字>
<年龄>23</年龄>
<介绍>学习刻苦</介绍>
</学生>
<学生>
<名字>杨钰莹</名字>
<年龄>27</年龄>
<介绍>唱歌好听</介绍>
</学生>
</班级>

class01.dtd是用来限制xml的,会看就可以

<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>

read.php用来查看节点

<html>
<?php

$xmldoc=new DOMDocument();
$xmldoc->load("index.xml");
//var_dump($xmldoc);查看方法属性
$stus=$xmldoc->getElementsByTagName("学生");

echo "共有".$stus->length;
//选中第一个学生
 $stu1=$stus->item(1);
//取出名字
// $stu_names=$stu1->getElementsByTagName("名字");
   //echo $stu_names->item(0)->nodeValue;
echo getNodeVal($stu1,"年龄");


function getNodeVal(&$Mynode,$tagName){
return $Mynode->getElementsByTagName($tagName)->item(0)->nodeValue;

}

另外这个checkDtd.html是检查xml的正确性,但是只能IE打开支持。

<html><head>
<tilte>检验dtd</tilte>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
window.alert("你的");
//创建一个xml解析器,只能用IE浏览器
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
//开启校验功能
xmldoc.validateOnParse=true;
//指定对哪个xml文件校验
xmldoc.load("index.xml");
//如果有错误信息,则输出
document.write("</br>错误信息="+xmldoc.parseError.reason+"</br>");
document.write("错误的行号="+xmldoc.parseError.line+"</br>");

</script>
</head>
</html>

增加信息addDemo.php

<html>
<?php
//xml增删改
$xmldoc=new DOMDocument();
$xmldoc->load("index.xml");
//增加一个学生信息
//取出根节点
 $root=$xmldoc->getElementsByTagName("班级")->item(0);
//创建学生节点和其他所有节点,子节点,创建出来是没有联系的
$stu_node=$xmldoc->createElement("学生");
//**********添加属性节点***********
$stu_node->setAttribute("性别","男");
//创建名字节点
$stu_node_name=$xmldoc->createElement("名字");
$stu_node_name->nodeValue="刘德华";
//把名字节点挂到学生节点下
$stu_node->appendChild($stu_node_name);


//创建年龄节点
$stu_node_age=$xmldoc->createElement("年龄");
$stu_node_age->nodeValue="33";
$stu_node->appendChild($stu_node_age);
//创建介绍节点
$stu_node_intro=$xmldoc->createElement("介绍");
$stu_node_intro->nodeValue="爱唱歌";
$stu_node->appendChild($stu_node_intro);

//把学生挂到跟节点下
$root->appendChild($stu_node);
//重新保存
$xmldoc->save("index.xml");

echo "增加完成,保存成功";

?>
</html>

删除一个信息delDemo.php

<html>
<?php
//xml增删改
$xmldoc=new DOMDocument();
$xmldoc->load("index.xml");
//删除一个学生信息
//取出根节点
 $root=$xmldoc->getElementsByTagName("班级")->item(0);
//假设删除第三个学生
//1,找到该学生
  $stus=$xmldoc->getElementsByTagName("学生");
  $stu1=$stus->item(2);
//2,删除学生
//$root->removeChild($stu1);
//2,更灵活的方法,连root都不需要
$stu1->parentNode->removeChild($stu1);
$xmldoc->save("index.xml");
echo "删除完成,保存成功";

?>
</html>

修改一个信息updataDemo.php

<html>
<?php
//xml增删改
$xmldoc=new DOMDocument();
$xmldoc->load("index.xml");
//更改学生的年龄
  $stus=$xmldoc->getElementsByTagName("学生");
  $stu1=$stus->item(0);
 $stu1_age=$stu1->getElementsByTagName("年龄")->item(0);
 $stu1_age->nodeValue+=10;
$xmldoc->save("index.xml");
echo "更新完成,保存成功";
?>

“`

### 关于 `mapper.xml` 中 CRUD 操作的格式与示例 在传统的 MyBatis 使用方式中,确实需要通过编写 `mapper.xml` 文件来定义 SQL 映射语句。下面提供了一个标准的 `mapper.xml` 文件结构以及常见的 CRUD 操作实例。 #### 基本 XML 头部声明 每个 Mapper 文件都应包含命名空间属性,通常设置为对应的 DAO 接口全限定名: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.dao.UserDao"> ``` #### 创建 (Create) 用于向数据库表插入一条记录: ```xml <insert id="addUser" parameterType="com.example.model.User"> INSERT INTO users(name, age) VALUES(#{name}, #{age}) </insert> ``` #### 查询 (Read/Select) 可以执行简单的 SELECT 或带有条件过滤的复杂查询: ```xml <select id="getUserById" resultType="com.example.model.User"> SELECT * FROM users WHERE id=#{id} </select> <!-- 支持多参数 --> <select id="findUsersByNameAndAge" resultMap="userResultMap"> SELECT * FROM users u WHERE u.name LIKE CONCAT('%', #{name}, '%') AND u.age >= #{minAge} AND u.age <= #{maxAge} </select> ``` 为了更好地处理复杂的对象映射关系,在此引入了 `resultMap` 的概念[^2]: ```xml <resultMap id="userResultMap" type="com.example.model.User"> <id property="id" column="user_id"/> <result property="username" column="name"/> <!-- 更多字段映射... --> </resultMap> ``` #### 更新 (Update) 允许修改现有记录的数据: ```xml <update id="updateUserNameById" parameterType="java.util.Map"> UPDATE users SET name=#{newName} WHERE id=#{userId} </update> ``` #### 删除 (Delete) 可以从数据库移除指定记录: ```xml <delete id="removeUserById"> DELETE FROM users WHERE id=#{id} </delete> ``` 尽管上述方法展示了如何利用 `mapper.xml` 实现基本的 CRUD 功能,但从 MBG 1.3.6 版本之后,官方更倾向于采用动态 SQL 来简化开发流程并减少手动维护 XML 文件的工作量[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值