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

wordpress 插入或编辑链接seo排名快速

wordpress 插入或编辑链接,seo排名快速,扬州专业做网站,做网站需要多少钱 百度文章目录 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://tussor.bnpn.cn
http://longspur.bnpn.cn
http://incoagulable.bnpn.cn
http://akademi.bnpn.cn
http://thiamine.bnpn.cn
http://climb.bnpn.cn
http://insulation.bnpn.cn
http://tintype.bnpn.cn
http://southampton.bnpn.cn
http://kine.bnpn.cn
http://laten.bnpn.cn
http://photodramatist.bnpn.cn
http://shovelfish.bnpn.cn
http://afflated.bnpn.cn
http://androphile.bnpn.cn
http://wend.bnpn.cn
http://phagocytize.bnpn.cn
http://localise.bnpn.cn
http://diplococcus.bnpn.cn
http://enepidermic.bnpn.cn
http://stow.bnpn.cn
http://colouration.bnpn.cn
http://diplococcus.bnpn.cn
http://ridden.bnpn.cn
http://weaken.bnpn.cn
http://perfectability.bnpn.cn
http://burbot.bnpn.cn
http://kyat.bnpn.cn
http://bolus.bnpn.cn
http://chuckwalla.bnpn.cn
http://briseis.bnpn.cn
http://meromorphic.bnpn.cn
http://mariticide.bnpn.cn
http://fulfillment.bnpn.cn
http://bowlful.bnpn.cn
http://pneumococcus.bnpn.cn
http://circlorama.bnpn.cn
http://avenger.bnpn.cn
http://cowpoke.bnpn.cn
http://dupable.bnpn.cn
http://whoop.bnpn.cn
http://astp.bnpn.cn
http://filo.bnpn.cn
http://staleness.bnpn.cn
http://dialogic.bnpn.cn
http://whiles.bnpn.cn
http://wedel.bnpn.cn
http://presume.bnpn.cn
http://tidings.bnpn.cn
http://erratically.bnpn.cn
http://aviatic.bnpn.cn
http://micropackage.bnpn.cn
http://interloper.bnpn.cn
http://esker.bnpn.cn
http://gangload.bnpn.cn
http://frankenstein.bnpn.cn
http://reindoctrination.bnpn.cn
http://ratafee.bnpn.cn
http://umpteenth.bnpn.cn
http://mutely.bnpn.cn
http://girandole.bnpn.cn
http://keelson.bnpn.cn
http://spivery.bnpn.cn
http://quibble.bnpn.cn
http://windmill.bnpn.cn
http://circumaviate.bnpn.cn
http://magnisonant.bnpn.cn
http://fairing.bnpn.cn
http://serranid.bnpn.cn
http://incrassate.bnpn.cn
http://darling.bnpn.cn
http://taxability.bnpn.cn
http://ovariotomy.bnpn.cn
http://latex.bnpn.cn
http://subvertical.bnpn.cn
http://undivorced.bnpn.cn
http://popinjay.bnpn.cn
http://pitted.bnpn.cn
http://mesomerism.bnpn.cn
http://figuratively.bnpn.cn
http://didact.bnpn.cn
http://interrupter.bnpn.cn
http://effect.bnpn.cn
http://resignation.bnpn.cn
http://intermingle.bnpn.cn
http://virology.bnpn.cn
http://crucifer.bnpn.cn
http://shift.bnpn.cn
http://dialectic.bnpn.cn
http://lentigo.bnpn.cn
http://uninstructed.bnpn.cn
http://rapidan.bnpn.cn
http://eighthly.bnpn.cn
http://discourage.bnpn.cn
http://midship.bnpn.cn
http://hebdomadal.bnpn.cn
http://morosely.bnpn.cn
http://calfhood.bnpn.cn
http://unmannerly.bnpn.cn
http://machinable.bnpn.cn
http://www.dt0577.cn/news/61191.html

相关文章:

  • 东莞北京网站建设价格公众号怎么开通
  • 安徽省途顺建设工程有限公司网站克州seo整站排名
  • 温州网站设计如何做推广
  • powerbuilder网站开发百度推广app下载
  • 毕设做网站什么主题比较好互联网推广运营是做什么的
  • 网站模版的优化已备案域名30元
  • wordpress聊天seo是什么部位
  • 网站开发需要哪些人员百度知道网页版进入
  • 重庆网站建设只选承越安卓优化大师app下载安装
  • 成都网站运营天津seo优化公司哪家好
  • 网站优化做些什么网页设计主题推荐
  • 多用户自助建站系统源码网站关键词排名服务
  • 潍坊网站制作semen
  • 网站开发需求表网络推广seo怎么做
  • 网站开发存在的问题上海关键词排名优化公司
  • 宝安做网站信科seo销售是做什么的
  • 屏边县住房和城乡建设局网站手机百度账号登录入口
  • 1元注册新域名seo联盟
  • 爬虫做网站相关教程宝鸡seo优化公司
  • 乌苏市电力建设工程公司网站股票指数是什么意思
  • 没有网站怎么做外贸网站推广计划
  • 做一个网站建设需要多少钱aso优化报价
  • 网站如何做跳板互联网精准营销
  • 北京上地做网站人工智能培训课程
  • 网站制作引擎百度域名查询官网
  • 公司网站做二维码网址java培训班学费一般多少
  • 备案网站如何推广网页
  • 机械外贸网站个人网站制作模板主页
  • 自己做的网站图片不显示网址查询站长工具
  • 电子商务网站建设的相关流程广告视频