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

wordpress 插入或编辑链接网站建设优化

wordpress 插入或编辑链接,网站建设优化,业务网站风格模板,做网站的需要哪些职位文章目录 springboot使用mybatis组件1. 添加依赖2. 配置数据源3. 创建实体类4. 创建Mapper接口5. 创建Mapper XML文件6. 使用Mapper7. 启动类配置 mybtis 动态SQL1. Mapper 注解2. Select 注解3. Insert 注解4. Update 注解5. Delete 注解6. Results 注解7. Param 注解8. Cache…

文章目录

    • springboot使用mybatis组件
      • 1. 添加依赖
      • 2. 配置数据源
      • 3. 创建实体类
      • 4. 创建Mapper接口
      • 5. 创建Mapper XML文件
      • 6. 使用Mapper
      • 7. 启动类配置
    • mybtis 动态SQL
      • 1. `@Mapper` 注解
      • 2. `@Select` 注解
      • 3. `@Insert` 注解
      • 4. `@Update` 注解
      • 5. `@Delete` 注解
      • 6. `@Results` 注解
      • 7. `@Param` 注解
      • 8. `@CacheNamespace` 注解
      • 9. `@Options` 注解
      • 10. `@ResultMap` 注解
      • 总结
    • mybatis XML标签
      • 1. `<mapper>` 标签
      • 2. `<select>` 标签
      • 3. `<insert>` 标签
      • 4. `<update>` 标签
      • 5. `<delete>` 标签
      • 6. `<resultMap>` 标签
      • 7. `<collection>` 标签
      • 8. `<include>` 标签
      • 9. `<if>` 标签
      • 10. `<choose>`、`<when>` 和 `<otherwise>` 标签
      • 11. `<foreach>` 标签
      • 12. `<trim>` 标签
      • 总结
    • 注意
    • 参考文献

springboot使用mybatis组件

在Spring Boot项目中加入MyBatis组件,可以方便地进行数据库操作。以下是详细的步骤:

1. 添加依赖

首先,在pom.xml文件中添加MyBatis和数据库驱动的依赖。例如,如果你使用的是MySQL数据库,可以添加以下依赖:

<dependencies><!-- Spring Boot Starter Data JPA --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><!-- MyBatis Starter --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency>
</dependencies>

2. 配置数据源

application.propertiesapplication.yml文件中配置数据源信息。例如,在application.properties文件中添加以下配置:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# MyBatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity

3. 创建实体类

创建与数据库表对应的实体类。例如:

package com.example.demo.entity;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax protectedById;@Entity
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;private Integer age;// Getters and Setters
}

4. 创建Mapper接口

创建MyBatis的Mapper接口,并使用@Mapper注解标记。例如:

package com.example.demo.mapper;import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM user")List<User> findAll();
}

5. 创建Mapper XML文件

src/main/resources/mapper目录下创建Mapper的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="findAll" resultType="com.example.demo.entity.User">SELECT * FROM user</select>
</mapper>

6. 使用Mapper

在Service层或Controller层中使用Mapper进行数据库操作。例如,在Service层中:

package com.example.demo.service;import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> getAllUsers() {return userMapper.findAll();}
}

7. 启动类配置

确保在Spring Boot启动类上添加@MapperScan注解,以扫描Mapper接口。例如:

package com.example.demo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

通过以上步骤,你就可以在Spring Boot项目中成功加入MyBatis组件,并进行数据库操作了。

mybtis 动态SQL

在 MyBatis 中,除了使用 XML 映射文件来定义 SQL 语句之外,还可以使用注解(Annotations)的方式来编写 SQL 语句。这种方式可以让 SQL 语句更紧密地与 Java 代码结合,使得代码结构更加清晰。下面是一些常用的 MyBatis 注解及其使用方法。

1. @Mapper 注解

@Mapper 注解用于标记一个接口为 MyBatis 的 Mapper 接口。这个接口将包含一系列的 CRUD 方法。

import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper {// 方法定义
}

2. @Select 注解

@Select 注解用于定义一个 SELECT 语句。

import org.apache.ibatis.annotations.Select;
import com.example.demo.model.User;@Mapper
public interface UserMapper {@Select("SELECT * FROM user WHERE id = #{id}")User getUserById(Long id);
}

3. @Insert 注解

@Insert 注解用于定义一个 INSERT 语句。如果需要获取自动生成的主键值,可以使用 @Options 注解。

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;@Mapper
public interface UserMapper {@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")@Options(useGeneratedKeys = true, keyProperty = "id")void insertUser(User user);
}

4. @Update 注解

@Update 注解用于定义一个 UPDATE 语句。

import org.apache.ibatis.annotations.Update;@Mapper
public interface UserMapper {@Update("UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}")void updateUser(User user);
}

5. @Delete 注解

@Delete 注解用于定义一个 DELETE 语句。

import org.apache.ibatis.annotations.Delete;@Mapper
public interface UserMapper {@Delete("DELETE FROM user WHERE id=#{id}")void deleteUser(Long id);
}

6. @Results 注解

@Results 注解用于定义结果映射。它可以帮助处理复杂的结果集,比如一对一(One-to-One)或一对多(One-to-Many)的关系。

import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.ResultType;
import org.apache.ibatis.annotations.ResultMap;
import com.example.demo.model.User;
import com.example.demo.model.Address;@Mapper
public interface UserMapper {@Select("SELECT * FROM user WHERE id = #{id}")@Results({@Result(property = "id", column = "id"),@Result(property = "name", column = "name"),@Result(property = "age", column = "age"),@Result(property = "address", column = "address_id",one = @One(select = "com.example.demo.mapper.AddressMapper.getAddressById"))})User getUserById(Long id);
}

7. @Param 注解

@Param 注解用于指定 SQL 语句中的参数名称。

import org.apache.ibatis.annotations.Param;@Mapper
public interface UserMapper {@Select("SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')")List<User> findUsersByName(@Param("name") String name);
}

8. @CacheNamespace 注解

@CacheNamespace 注解用于定义缓存的命名空间,可以指定缓存的实现类等。

import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.cache.decorators.Synchronized;@Mapper
@CacheNamespace(implementation = SynchronizedCache.class)
public interface UserMapper {// 方法定义
}

9. @Options 注解

@Options 注解用于定义 SQL 执行后的一些选项,如获取自动生成的主键等。

import org.apache.ibatis.annotations.Options;@Mapper
public interface UserMapper {@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")@Options(useGeneratedKeys = true, keyProperty = "id")void insertUser(User user);
}

10. @ResultMap 注解

@ResultMap 注解用于引用已经定义好的结果映射。

import org.apache.ibatis.annotations.ResultMap;@Mapper
public interface UserMapper {@Select("SELECT * FROM user WHERE id = #{id}")@ResultMap("UserResultMap")User getUserById(Long id);
}

总结

使用 MyBatis 的注解可以让你在 Java 代码中直接定义 SQL 语句,这种方式更加简洁,特别是在一些简单的 CRUD 操作中。然而,对于复杂的 SQL 逻辑或者需要高度定制化的映射关系,XML 映射文件仍然是一种非常好的选择。在实际开发中,可以根据具体情况选择最适合的方式来定义 SQL 语句和结果映射。

mybatis XML标签

MyBatis 是一个优秀的持久层框架,它支持定制化的 SQL、存储过程以及高级映射。在 MyBatis 中,XML 映射文件用于定义 SQL 语句、结果映射以及其他与数据库交互相关的配置。下面是 MyBatis 中常用的一些 XML 标签及其用途。

1. <mapper> 标签

<mapper> 标签用于定义一个映射器接口,它包含一系列 SQL 语句和结果映射。

<mapper namespace="com.example.demo.mapper.UserMapper"><!-- SQL 语句和结果映射定义 -->
</mapper>

2. <select> 标签

<select> 标签用于定义一个 SELECT 语句。

<select id="getUserById" parameterType="long" resultType="com.example.demo.model.User">SELECT * FROM user WHERE id = #{id}
</select>

3. <insert> 标签

<insert> 标签用于定义一个 INSERT 语句。

<insert id="insertUser" parameterType="com.example.demo.model.User">INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>

4. <update> 标签

<update> 标签用于定义一个 UPDATE 语句。

<update id="updateUser" parameterType="com.example.demo.model.User">UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
</update>

5. <delete> 标签

<delete> 标签用于定义一个 DELETE 语句。

<delete id="deleteUser" parameterType="long">DELETE FROM user WHERE id=#{id}
</delete>

6. <resultMap> 标签

<resultMap> 标签用于定义复杂的结果映射关系,它可以处理一对一(One-to-One)、一对多(One-to-Many)或多对一(Many-to-One)的关系。

<resultMap id="UserResultMap" type="com.example.demo.model.User"><id property="id" column="id"/><result property="name" column="name"/><result property="age" column="age"/><association property="address" javaType="com.example.demo.model.Address" resultMap="AddressResultMap"/>
</resultMap>

7. <collection> 标签

<collection> 标签用于处理一对多关系。

<resultMap id="UserResultMap" type="com.example.demo.model.User"><id property="id" column="id"/><result property="name" column="name"/><collection property="orders" ofType="com.example.demo.model.Order" select="getOrdersById"/>
</resultMap>

8. <include> 标签

<include> 标签用于引用外部 SQL 片段。

<sql id="commonColumns">name, age</sql><select id="getAllUsers" resultType="com.example.demo.model.User">SELECT ${commonColumns} FROM user
</select>

9. <if> 标签

<if> 标签用于条件判断,可以动态地构建 SQL 语句。

<select id="findUsersByName" parameterType="string" resultType="com.example.demo.model.User">SELECT * FROM user WHERE 1=1<if test="name != null">AND name LIKE '%${name}%'</if>
</select>

10. <choose><when><otherwise> 标签

<choose><when><otherwise> 标签用于实现多条件判断。

<select id="findUsers" parameterType="com.example.demo.model.SearchCriteria" resultType="com.example.demo.model.User">SELECT * FROM user WHERE<choose><when test="name != null">name LIKE '%${name}%'</when><when test="age != null">age = ${age}</when><otherwise>1 = 1</otherwise></choose>
</select>

11. <foreach> 标签

<foreach> 标签用于处理集合参数,常用于批量操作。

<insert id="batchInsert" parameterType="java.util.List">INSERT INTO user(name, age) VALUES<foreach item="item" index="index" collection="list" open="(" separator=")," close=")">#{item.name}, #{item.age}</foreach>
</insert>

12. <trim> 标签

<trim> 标签用于动态拼接 SQL 语句,并提供去除前导或尾随空白的功能。

<select id="findUsers" parameterType="com.example.demo.model.SearchCriteria" resultType="com.example.demo.model.User">SELECT * FROM user WHERE<trim prefix="WHERE" prefixOverrides="AND|OR"><if test="name != null">AND name LIKE '%${name}%'</if><if test="age != null">OR age = ${age}</if></trim>
</select>

总结

以上是 MyBatis 中常用的 XML 标签及其用途。通过这些标签,可以灵活地定义 SQL 语句、结果映射以及其他与数据库交互相关的配置。掌握这些标签的使用方法,可以帮助你更好地利用 MyBatis 处理复杂的数据库操作。

注意

  • sql的配置有两种方式:动态SQL和xml配置
  • 推荐使用xml配置,原因如下:

某些场景下,可能需要对迁移到其他类型数据库,使用xml配置:

  1. 可以不需要改动代码, 而仅需复制一份xml, 针对新的类型的数据库进行兼容性改造。
  2. 新旧数据库切换时,在发生异常时,可以切换回旧的数据库操作,保证业务连续性。

参考文献

官网中文文档

http://www.tj-hxxt.cn/news/101224.html

相关文章:

  • 做网站年赚千万成年培训班有哪些
  • pinterest官网入口微信seo是什么意思
  • 长沙人才网最新招聘seo三人行论坛
  • 百度云盘做网站空间百度关键词搜索工具
  • 国内外网站建设青岛网站建设技术外包
  • 做视频添加字幕的网站大一html网页制作
  • 班级手机网站墨刀怎样做百度竞价渠道代理商
  • 建设部网站规范下载seo 培训教程
  • 视觉设计作品优化科技
  • 周易起名网唯一官网免费济南网站优化排名
  • 用vs做网站湖南今日新闻最新头条
  • 网站建设的成本有哪些方面互联网网站
  • 网站建设费用估计武汉最新消息今天
  • 服务型政府 网站建设优化策略济南网络推广公司
  • wordpress小程序直播网站seo优化课程
  • 前端做用vue做后台多还是做网站多百度网盘资源免费搜索引擎入口
  • 蓝色脚手架织梦企业网站模板搜索引擎优化宝典
  • 1 分析seo做的不好的网站打开百度一下
  • 网站上的流动图片怎么做的怎么把产品推广到各大平台
  • 网站建站专家网站流量统计查询
  • Javaweb做视频网站网站推广途径和要点
  • 临沂百度网站推广百度知道官网
  • 南昌金启网站建设搜索引擎排名优化技术
  • 深圳 网站设湖南seo优化推荐
  • 网站首页滚动大图怎么做seo推广排名软件
  • 公司网站建设怎么计费关键词排名推广
  • 网站建设主机百度优化师
  • 南京市秦淮区建设局网站东莞网站关键词优化排名
  • 住房和城乡建设部门户网站怎样联系百度客服
  • 西安网站开发多少钱汽车网络营销的方式有哪些