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

概念

本文在上篇文章的学习之上,展开新的学习。【MyBatis】第二课 MyBatis映射文件的CRUD操作<方式一>_笔触狂放的博客-CSDN博客

通过前面的学习,大家会发现框架的使用比原生java操作数据来的更简便。但在操作调用sql语句的时候还是显得有些笨拙,对于初学者在使用命名空间+id属性值的过程中出错性比较大,对于sql语句所执行的结果进行分析的能力比较差。那么本文使用创建接口的方式与映射文件进行对应,那么我们在执行的时候,只需要和接口对象进行对接即可。具体操作看一下篇幅。

1.搭建MyBatis环境

对于MyBatis的搭建过程,本文不再赘述,初学者还未掌握的,可查阅【MyBatis】第一课 MyBatis的框架的搭建和使用_笔触狂放的博客-CSDN博客

接着,我们需要在dao层中创建接口文件,选中dao--》右键--》new--》java class

输入接口名称,按照我们对MVC+三层架构的项目搭建方式中,我们对于接口的命名为I+要操作的表名+当前包的名称,例如 IBookDao 作为接口名称

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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、付费专栏及课程。

余额充值