【MyBatis】第二课 MyBatis映射文件的CRUD操作<方式一>

概念

【MyBatis】第一课 MyBatis的框架的搭建和使用_笔触狂放的博客-CSDN博客

本文在上一篇文章之后,操作数据库的增删改查。

1.查询操作

在mapper.xml映射文件中编写查询的sql语句,根据不同的条件和查询的字段进行分析和设置

<?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标签上添加一个属性,用于设置命名空间-->
<mapper namespace="com.book.dao">
    <!--查询有多少本图书     编写任何要执行的sql语句都要注意两点,1.是都需要传入数据,2.返回值是什么-->
    <select id="getBookNumber" resultType="int">
        SELECT COUNT(*) FROM book
    </select>

    <select id="getBookName" resultType="String" >
        select name from book where id=1
    </select&
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
假设有两个实体类,一个是订单(Order),一个是订单项(OrderItem),它们之间是一对多的关系,一个订单可以对应多个订单项。下面是使用MyBatis框架进行一对多映射下的CRUD操作的示例。 1. 创建订单(Order)表和订单项(OrderItem)表,并在数据库中插入数据。 2. 创建Order实体类和OrderItem实体类,其中Order类包含一个List<OrderItem>类型的属性,用于存储与该订单相关联的所有订单项。 ```java public class Order { private int id; private String orderNo; private List<OrderItem> orderItemList; // getter和setter方法省略 } public class OrderItem { private int id; private String itemName; private int orderId; // getter和setter方法省略 } ``` 3. 创建OrderMapper.xml文件,配置一对多映射关系。 ```xml <mapper namespace="com.example.mapper.OrderMapper"> <resultMap id="orderMap" type="com.example.entity.Order"> <id property="id" column="id"/> <result property="orderNo" column="order_no"/> <collection property="orderItemList" ofType="com.example.entity.OrderItem"> <id property="id" column="id"/> <result property="itemName" column="item_name"/> <result property="orderId" column="order_id"/> </collection> </resultMap> <select id="getOrderById" resultMap="orderMap"> SELECT o.id, o.order_no, oi.id, oi.item_name, oi.order_id FROM orders o LEFT JOIN order_items oi ON o.id = oi.order_id WHERE o.id = #{id} </select> </mapper> ``` 4. 创建OrderMapper接口,并编写查询方法。 ```java public interface OrderMapper { Order getOrderById(int id); } ``` 5. 在MyBatis配置文件中配置数据源和Mapper接口。 ```xml <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis_test"/> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/example/mapper/OrderMapper.xml"/> </mappers> </configuration> ``` 6. 编写测试类,调用Mapper接口中的方法进行查询。 ```java public class Test { public static void main(String[] args) { SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Test.class.getClassLoader().getResourceAsStream("mybatis-config.xml")); SqlSession sqlSession = sqlSessionFactory.openSession(); OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class); Order order = orderMapper.getOrderById(1); System.out.println(order.getOrderNo()); for (OrderItem orderItem : order.getOrderItemList()) { System.out.println(orderItem.getItemName()); } sqlSession.close(); } } ``` 以上就是使用MyBatis框架进行一对多映射下的CRUD操作的示例。在实际开发中,根据需要可以编写Mapper接口的其他方法来实现其他的CRUD操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔触狂放

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值