当前位置: 首页 > news >正文

网站开发框架图网页设计用到的技术

网站开发框架图,网页设计用到的技术,wordpress翠珠林,自动秒收录网Spring 和 MyBatis 是 Java 开发中广泛使用的两个框架。Spring 提供了全面的基础设施支持,而 MyBatis 是一个优秀的持久层框架,两者结合能够简化数据访问层的开发。本文将详细介绍如何在 Spring 中使用 MyBatis 进行各种查询操作,包括简单查询…

Spring 和 MyBatis 是 Java 开发中广泛使用的两个框架。Spring 提供了全面的基础设施支持,而 MyBatis 是一个优秀的持久层框架,两者结合能够简化数据访问层的开发。本文将详细介绍如何在 Spring 中使用 MyBatis 进行各种查询操作,包括简单查询、条件查询、分页查询、联合查询和动态 SQL 查询。

一、环境配置

1. Maven 依赖

在 pom.xml 文件中添加 Spring 和 MyBatis 的相关依赖:

<dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Starter MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>
</dependencies>
​
2. 配置文件

在 application.yml 中配置数据库连接和 MyBatis 设置:

spring:datasource:url: jdbc:mysql://localhost:3306/your_databaseusername: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mappers/*.xmltype-aliases-package: com.example.demo.model
​

二、实体类和 Mapper 接口

1. 实体类

创建一个简单的实体类 User

package com.example.demo.model;public class User {private Long id;private String name;private String email;// Getters and setters
}
​
2. Mapper 接口

定义 UserMapper 接口:

package com.example.demo.mapper;import com.example.demo.model.User;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM users WHERE id = #{id}")User findById(Long id);@Select("SELECT * FROM users")List<User> findAll();@Select("SELECT * FROM users WHERE name = #{name}")List<User> findByName(String name);@Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")@Options(useGeneratedKeys = true, keyProperty = "id")void insert(User user);@Update("UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}")void update(User user);@Delete("DELETE FROM users WHERE id = #{id}")void delete(Long id);
}
​

三、各种查询操作

1. 简单查询

通过主键 ID 查询用户:

User user = userMapper.findById(1L);
System.out.println(user.getName());
​
2. 条件查询

根据用户名查询用户列表:

List<User> users = userMapper.findByName("John");
users.forEach(user -> System.out.println(user.getEmail()));
​
3. 分页查询

分页查询可以通过 SQL 语句中的 LIMIT 关键字实现。首先在 Mapper 接口中添加分页查询方法:

@Select("SELECT * FROM users LIMIT #{offset}, #{limit}")
List<User> findByPage(@Param("offset") int offset, @Param("limit") int limit);
​

然后在业务代码中调用分页查询方法:

int page = 1;
int pageSize = 10;
int offset = (page - 1) * pageSize;
List<User> users = userMapper.findByPage(offset, pageSize);
users.forEach(user -> System.out.println(user.getName()));
​
4. 联合查询

假设有另一个表 orders,我们需要查询用户及其订单信息。首先创建 Order 实体类:

package com.example.demo.model;public class Order {private Long id;private Long userId;private String product;private int quantity;// Getters and setters
}
​

然后在 UserMapper 中添加联合查询方法:

@Select("SELECT u.*, o.* FROM users u JOIN orders o ON u.id = o.user_id WHERE u.id = #{userId}")
@Results({@Result(property = "id", column = "id"),@Result(property = "name", column = "name"),@Result(property = "email", column = "email"),@Result(property = "orders", column = "user_id", many = @Many(select = "com.example.demo.mapper.OrderMapper.findByUserId"))
})
User findUserWithOrders(Long userId);
​

在 OrderMapper 中添加 findByUserId 方法:

package com.example.demo.mapper;import com.example.demo.model.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface OrderMapper {@Select("SELECT * FROM orders WHERE user_id = #{userId}")List<Order> findByUserId(Long userId);
}
​

调用联合查询方法:

User user = userMapper.findUserWithOrders(1L);
System.out.println(user.getName());
user.getOrders().forEach(order -> System.out.println(order.getProduct()));
​
5. 动态 SQL 查询

动态 SQL 查询使用 MyBatis 的 <if> 和 <choose> 等标签。首先创建 XML 映射文件 UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.demo.mapper.UserMapper"><select id="findUsersByCriteria" parameterType="map" resultType="com.example.demo.model.User">SELECT * FROM users<where><if test="name != null">AND name = #{name}</if><if test="email != null">AND email = #{email}</if></where></select>
</mapper>
​

在 UserMapper 接口中声明方法:

List<User> findUsersByCriteria(@Param("name") String name, @Param("email") String email);
​

调用动态查询方法:

Map<String, Object> params = new HashMap<>();
params.put("name", "John");
params.put("email", null);List<User> users = userMapper.findUsersByCriteria(params);
users.forEach(user -> System.out.println(user.getEmail()));
​

四、总结

Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。

http://www.dtcms.com/a/547430.html

相关文章:

  • 大型网站建设公司有哪些电商网站功能模块图
  • 网站开发团队名字胜芳网站建设qiansi
  • 网站开发的现实意义企业管理咨询经营范围有哪些
  • 响应式网站如何设计wordpress 媒体库 最大
  • 海南网站建设培训wordpress 图片加边框
  • 潍坊云建站模板泉州seo排名扣费
  • 天津 企业网站建设建设网站个人银行
  • 网站产品内容在数据库网站备案模板
  • 站长工具seo综合查询下载安装重庆seo关键词排名
  • 什么网站专门做自由行的机械产品做那几个网站好
  • 网站项目验收确认书南昌网站建设代理商
  • [MySQL] 视图
  • 网站设计的一般步骤是什么?设计软件网站推荐
  • 网站页面设计网站怎么套模板
  • 生成二维码的网站wordpress可爱的主题下载
  • 商丘做网站的公司有哪些加强网站的建设工作的通知
  • 东莞网站优化排名建设网站需要考虑什么
  • wordpress 做的网站学校的网站怎么做的好
  • 哪个网站做h5比较好看网络事件营销成功案例
  • 网站建设和平面设计绵阳网站建设
  • 网页制作与网站建设技术大全 pdf前端网站开发总结
  • wordpress 主题 国外百度seo优化软件
  • 公司网站建设合同电子版服装行业网站开发
  • 网站做授权登录界面安保企业网站模板
  • 骨科医院网站模板中国建设银行 英文网站
  • 网站开发语言怎么识别平面磨床东莞网站建设
  • 网站搭建系列教程网站设计方法
  • 产品网站建设广州哪里可以做网站
  • 有关网站建设的参考书wordpress减压完成后
  • 网站更换空间需要怎么做网站设计常见问题