ホームページ Java &#&チュートリアル Mybatis を使用して Spring メソッド共有を統合する方法

Mybatis を使用して Spring メソッド共有を統合する方法

Sep 02, 2017 am 10:43 AM
mybatis spring 統合された

この記事では主に Spring を統合した Mybatis のサンプルコードを紹介します。必要な方は参考にしてください。

その他必要なツールや技術:

プロジェクト管理ツール: Maven

フロントエンド WEB 表示: JSP

その他フレームワーク: Spring、Spring MVC

データベース: Derby

新しい Maven Web プロジェクトを作成する

Maven 依存関係:


<!-- Spring --> 
    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.0.0.RELEASE</version> 
    </dependency> 
    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>4.0.0.RELEASE</version> 
    </dependency> 
    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>4.0.0.RELEASE</version> 
    </dependency> 
    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>4.0.0.RELEASE</version> 
    </dependency> 
    <!-- AspectJ --> 
    <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.6.10</version> 
    </dependency> 
    <!-- Logging --> 
    <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.6</version> 
    </dependency> 
    <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>1.6.6</version> 
      <scope>runtime</scope> 
    </dependency> 
    <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.6</version> 
      <scope>runtime</scope> 
    </dependency> 
    <!-- @Inject --> 
    <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
    </dependency> 
    <!-- Servlet --> 
    <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
    </dependency> 
    <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
      <scope>provided</scope> 
    </dependency> 
    <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
    </dependency> 
    <!-- Mybatis --> 
    <dependency> 
      <groupId>org.mybatis</groupId> 
      <artifactId>mybatis</artifactId> 
      <version>3.2.7</version> 
    </dependency> 
    <dependency> 
      <groupId>org.mybatis</groupId> 
      <artifactId>mybatis-spring</artifactId> 
      <version>1.2.1</version> 
    </dependency> 
    <!-- Test --> 
    <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.9</version> 
      <scope>test</scope> 
    </dependency> 
    <!-- Derby --> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derby</artifactId> 
      <version>10.10.2.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.derby</groupId> 
      <artifactId>derbyclient</artifactId> 
      <version>10.10.2.0</version> 
    </dependency>
ログイン後にコピー

SQL テーブルの作成とデータ挿入


CREATE TABLE USER_TEST_TB(  
ID INT PRIMARY KEY,  
USERNAME VARCHAR(20) NOT NULL,  
PASSWORD VARCHAR(20) NOT NULL,  
NICKNAME VARCHAR(20) NOT NULL  
);    
INSERT INTO USER_TEST_TB VALUES(1,&#39;1st&#39;,&#39;111&#39;,&#39;Jack&#39;);  
INSERT INTO USER_TEST_TB VALUES(2,&#39;2nd&#39;,&#39;222&#39;,&#39;Rose&#39;);  
INSERT INTO USER_TEST_TB VALUES(3,&#39;3rd&#39;,&#39;333&#39;,&#39;Will&#39;);
ログイン後にコピー

web.xml (scr /main) /webapp/WEB-INF)


<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
  <!-- Spring 的配置 --> 
  <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/*Context.xml</param-value> 
  </context-param> 
  <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
  </listener> 
  <servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
  </servlet> 
  <servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
  </servlet-mapping> 
</web-app>
ログイン後にコピー

appServlet-servlet.xml (Spring のサーブレット設定ファイル scr/main/webapp/WEB-INF)


<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:beans="http://www.springframework.org/schema/beans" 
  xmlns:context="http://www.springframework.org/schema/context" 
  xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 
  <!-- 开启Annotation支持 --> 
  <annotation-driven /> 
  <!-- Spring的渲染层配置 --> 
  <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="/WEB-INF/views/" /> 
    <beans:property name="suffix" value=".jsp" /> 
  </beans:bean> 
  <!-- Spring的Annotation默认扫描包 --> 
  <context:component-scan base-package="com.bjpowernode.practice" /> 
  <!-- 引入其他Spring配置文件 --> 
  <beans:import resource="classpath:applicationContext.xml" /> 
</beans:beans>
ログイン後にコピー

JSP ファイル


show.jsp(src/main/webapp/WEB-INF/views目录下)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
  pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Show All Users</title> 
<style type="text/css"> 
*{ 
margin: 0px; 
padding: 0px; 
} 
</style> 
</head> 
<body> 
  <table border="1px" bordercolor="green"> 
    <thead> 
      <tr> 
        <th>USER_NAME</th> 
        <th>PASSWORD</th> 
        <th>NICK_NAME</th> 
        <th>EDIT</th> 
        <th>DELETE</th> 
      </tr> 
      <c:forEach items="${users}" var="user" varStatus="status"> 
        <tr> 
          <td>${user.username}</td> 
          <td>${user.password}</td> 
          <td>${user.nickname}</td> 
          <td><a href="update/${user.id}" rel="external nofollow" >edit</a></td> 
          <td><a href="delete/${user.id}" rel="external nofollow" >delete</a></td> 
        </tr> 
      </c:forEach> 
    </thead> 
  </table> 
  <a href="insert" rel="external nofollow" >Add new User</a> 
</body> 
</html>
ログイン後にコピー

update.jsp (src/main/webapp/WEB-INF/views ディレクトリ下)


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
  pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Update Profile</title> 
</head> 
<body> 
  <form action="${user.id}" method="post"> 
    User ID:${user.id}<br> 
    Username:<input type="text" name="username" value="${user.username}"/><br> 
    Password:<input type="text" name="password" value="${user.password}"/><br> 
    Nickname:<input type="text" name="nickname" value="${user.nickname}"/><br> 
    <input type="submit" value="submit"> 
  </form> 
</body> 
</html>
ログイン後にコピー

insert.jsp (src/main/webapp/WEB-INF/views ディレクトリ下)


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
  pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert Profile</title> 
</head> 
<body> 
 
  <form action="" method="post"> 
    User Id:<input type="text" name="id"><br> 
    Username:<input type="text" name="username" /><br> 
    Password:<input type="text" name="password"/><br> 
    Nickname:<input type="text" name="nickname"/><br> 
    <input type="submit" value="submit"> 
  </form> 
</body> 
</html>
ログイン後にコピー

applicationContext.xml (Spring のアプリケーション設定ファイルは src/main/resources ディレクトリにあります)


<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 
  xmlns:context="http://www.springframework.org/schema/context" 
  xmlns:lang="http://www.springframework.org/schema/lang" xmlns:mvc="http://www.springframework.org/schema/mvc" 
  xmlns:tx="http://www.springframework.org/schema/tx" 
  xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd 
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.0.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
    http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd"> 
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="com.bjpowernode.practice" /> 
    <property name="sqlSessionFactoryBeanName" value="derbySqlSessionFactory" /> 
  </bean> 
  <!-- 配置Derby驱动数据源 --> 
  <bean id="derbyDataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" /> 
    <property name="url" value="jdbc:derby://localhost:1527/freud;create=true" /> 
  </bean> 
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" 
    name="derbySqlSessionFactory"> 
    <property name="dataSource" ref="derbyDataSource" /> 
    <property name="mapperLocations" value="classpath*:com/freud/practice/*Mapper.xml" /> 
  </bean> 
  <!-- 事务管理器 --> 
  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="derbyDataSource" /> 
  </bean> 
  <!-- 开启基于注解的事务 --> 
  <tx:annotation-driven /> 
</beans>
ログイン後にコピー

Java ファイル

UserController.Java (src/main/java/com.bjpowernode.practice.controller ディレクトリ内)


package com.bjpowernode.practice.controller; 
import com.bjpowernode.practice.User; 
import com.bjpowernode.practice.UserMapper; 
import java.util.List; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.PathVariable; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
@EnableWebMvc 
@Controller 
public class UserController 
{ 
  @Autowired 
  private UserMapper userMapper; 
  /** 
   * 
   * 获得所有的User信息 
   * 
   * @param model 
   * @return 
   */ 
  @RequestMapping(value = {"/", ""}, method = RequestMethod.GET) 
  public String getAllUser(Model model) 
  { 
    List<User> users = userMapper.getUsers(); 
    System.out.println("Show all user size:" + users.size()); 
    model.addAttribute("users", users); 
    return "show"; 
  } 
  /** 
   * 
   * INSERT的GET请求,跳转到Insert的View即insert.jsp 
   * 
   * @return 
   */ 
  @RequestMapping(value = {"/insert", ""}, method = RequestMethod.GET) 
  public String insertUser() 
  { 
    return "insert"; 
  } 
  /** 
   * 
   * INSERT的POST请求,执行插入操作并返回ShowAll页面 
   * 
   * @param user 
   * @return 
   */ 
  @RequestMapping(value = {"/insert", ""}, method = RequestMethod.POST) 
  public String insertUserPOST(User user) 
  { 
    userMapper.insertUser(user); 
    return "redirect:/"; 
  } 
  /** 
   * 
   * UPDATE的GET请求,跳转到update的View即update.jsp 
   * 
   * @param id 
   * @param model 
   * @return 
   */ 
  @RequestMapping(value = {"/update/{id}", ""}, method = RequestMethod.GET) 
  public String updateUser(@PathVariable String id, Model model) 
  { 
    model.addAttribute("user", userMapper.getUser(Integer.valueOf(id))); 
    return "update"; 
  } 
  /** 
   * 
   * UPDATE的POST请求,执行更新操作并返回ShowAll页面 
   * 
   * @param id 
   * @param user 
   * @return 
   */ 
  @RequestMapping(value = {"/update/{id}", ""}, method = RequestMethod.POST) 
  public String updateUserPOST(@PathVariable String id, User user) 
  { 
    userMapper.updateUser(user); 
    return "redirect:/"; 
  } 
  /** 
   * 
   * 通过Id删除USER 
   * 
   * @param id 
   * @return 
   */ 
  @RequestMapping(value = {"/delete/{id}", ""}, method = RequestMethod.GET) 
  public String deleteUser(@PathVariable int id) 
  { 
    userMapper.deleteUser(id); 
    return "redirect:/"; 
  } 
}
ログイン後にコピー

User.java (src/main/java/com.bjpowernode.practice 内)


package com.bjpowernode.practice; 
/** 
 * 
 * User 对象。 
 * 
 * @author Freud Kang 
 * 
 */ 
public class User 
{ 
  private Integer id; 
  private String username; 
  private String password; 
  private String nickname; 
  public Integer getId() 
  { 
    return id; 
  } 
  public void setId(Integer id) 
  { 
    this.id = id; 
  } 
  public String getUsername() 
  { 
    return username; 
  } 
  public void setUsername(String username) 
  { 
    this.username = username; 
  } 
  public String getPassword() 
  { 
    return password; 
  } 
  public void setPassword(String password) 
  { 
    this.password = password; 
  } 
  public String getNickname() 
  { 
    return nickname; 
  } 
  public void setNickname(String nickname) 
  { 
    this.nickname = nickname; 
  } 
}
ログイン後にコピー

UserMapper.java (src/main/java/com.bjpowernode.practice ディレクトリ内)


package com.bjpowernode.practice; 
import java.util.List; 
public interface UserMapper 
{ 
  /** 
   * 
   * 获得所有User 
   * 
   * @return 
   */ 
  public List<User> getUsers(); 
  /** 
   * 
   * 通过Id获得User 
   * 
   * @param id 
   * @return 
   */ 
  public User getUser(int id); 
  /** 
   * 
   * 插入User 
   * 
   * @param user 
   */ 
  public void insertUser(User user); 
  /** 
   * 
   * 更新User 
   * 
   * @param user 
   */ 
  public void updateUser(User user); 
  /** 
   * 
   * 通过Id删除User 
   * 
   * @param userId 
   */ 
  public void deleteUser(int userId); 
}
ログイン後にコピー

UserMapper.xml (mybatis マッパー設定ファイル、src/main/java/com.bjpowernode.practice ディレクトリ内)


<?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 namespace="com.bjpowernode.practice.UserMapper"> 
  <!-- 查询 --> 
  <select id="getUsers" resultType="com.bjpowernode.practice.User"> 
    select * 
    from USER_TEST_TB 
  </select> 
  <!-- 查询 --> 
  <select id="getUser" resultType="com.bjpowernode.practice.User"> 
    select * 
    from USER_TEST_TB 
    where ID=#{id} 
  </select> 
  <!-- 插入 --> 
  <insert id="insertUser"> 
    insert into  
      USER_TEST_TB  
    values(#{id},#{username},#{password},#{nickname}) 
  </insert> 
  <!-- 更改 --> 
  <update id="updateUser"> 
    update USER_TEST_TB set 
      USERNAME = #{username}, 
      PASSWORD = #{password}, 
      NICKNAME = #{nickname} 
    where ID = #{id} 
  </update> 
  <!-- 删除 --> 
  <delete id="deleteUser"> 
    delete from USER_TEST_TB where ID=#{id} 
  </delete> 
</mapper>
ログイン後にコピー

概要

以上がMybatis を使用して Spring メソッド共有を統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Apr 28, 2024 am 11:46 AM

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

MyBatis動的SQLタグのSetタグ機能の詳細説明 MyBatis動的SQLタグのSetタグ機能の詳細説明 Feb 26, 2024 pm 07:48 PM

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

MyBatis 1次キャッシュの詳細解説:データアクセス効率を高めるには? MyBatis 1次キャッシュの詳細解説:データアクセス効率を高めるには? Feb 23, 2024 pm 08:13 PM

MyBatis 1次キャッシュの詳細解説:データアクセス効率を高めるには?開発プロセス中、効率的なデータ アクセスは常にプログラマーの焦点の 1 つでした。 MyBatis のような永続層フレームワークの場合、キャッシュはデータ アクセス効率を向上させるための重要な方法の 1 つです。 MyBatis は、一次キャッシュと二次キャッシュという 2 つのキャッシュ メカニズムを提供しており、一次キャッシュはデフォルトで有効になっています。この記事では、MyBatis の 1 次キャッシュのメカニズムを詳細に紹介し、読者の理解を深めるために具体的なコード例を示します。

MyBatis Generator 設定パラメータの解釈とベスト プラクティス MyBatis Generator 設定パラメータの解釈とベスト プラクティス Feb 23, 2024 am 09:51 AM

MyBatisGenerator は、MyBatis が公式に提供するコード生成ツールで、開発者がデータベース テーブル構造に準拠した JavaBeans、Mapper インターフェイス、および XML マッピング ファイルを迅速に生成するのに役立ちます。コード生成に MyBatisGenerator を使用するプロセスでは、構成パラメーターの設定が重要です。この記事では、構成パラメータの観点から開始し、MyBatisGenerator の機能を詳しく説明します。

MyBatisのキャッシュ機構を解析:一次キャッシュと二次キャッシュの特徴と使い方を比較 MyBatisのキャッシュ機構を解析:一次キャッシュと二次キャッシュの特徴と使い方を比較 Feb 25, 2024 pm 12:30 PM

MyBatis のキャッシュ メカニズムの分析: 1 次キャッシュと 2 次キャッシュの違いと応用 MyBatis フレームワークでは、キャッシュはデータベース操作のパフォーマンスを効果的に向上させることができる非常に重要な機能です。そのうち、一次キャッシュと二次キャッシュは、MyBatis でよく使用される 2 つのキャッシュ メカニズムです。この記事では、一次キャッシュと二次キャッシュの違いと用途を詳細に分析し、具体的なコード例を示して説明します。 1. レベル 1 キャッシュ レベル 1 キャッシュはローカル キャッシュとも呼ばれ、デフォルトで有効になっており、オフにすることはできません。 1次キャッシュはSqlSesです

MyBatis の 1 対多のクエリ構成の詳細な説明: 関連する一般的なクエリの問題の解決 MyBatis の 1 対多のクエリ構成の詳細な説明: 関連する一般的なクエリの問題の解決 Feb 22, 2024 pm 02:18 PM

MyBatis の 1 対多のクエリ構成の詳細な説明: 一般的な関連クエリの問題を解決するには、特定のコード例が必要です。実際の開発作業では、マスター エンティティ オブジェクトとそれに関連付けられた複数のスレーブ エンティティ オブジェクトをクエリする必要がある状況によく遭遇します。 。 MyBatis では、1 対多のクエリが一般的なデータベース関連付けクエリであり、適切な設定を行うことで、関連付けられたオブジェクトのクエリ、表示、操作を簡単に実現できます。この記事では、MyBatis での 1 対多のクエリの構成方法と、関連するクエリに関する一般的な問題の解決方法を紹介します。

MyBatisで以下を使って文字をエスケープする方法は何ですか? MyBatisで以下を使って文字をエスケープする方法は何ですか? Feb 24, 2024 am 11:12 AM

MyBatis ではエスケープ文字以下を使用することが一般的な要件であり、実際の開発プロセスではこのような状況がよく発生します。以下では、MyBatis で以下のエスケープ文字を使用する方法を詳しく紹介し、具体的なコード例を示します。まず、SQL ステートメントで以下のエスケープ文字がどのように表現されるかを明確にする必要があります。 SQL ステートメントでは、以下の演算子は通常 " で始まります。

セキュリティ第一: MyBatis での SQL インジェクションを防ぐベスト プラクティス セキュリティ第一: MyBatis での SQL インジェクションを防ぐベスト プラクティス Feb 22, 2024 pm 12:51 PM

ネットワーク技術が発展し続けるにつれて、データベース攻撃はますます一般的になってきています。 SQL インジェクションは一般的な攻撃手法の 1 つで、攻撃者は悪意のある SQL ステートメントを入力ボックスに入力して不正な操作を実行し、データの漏洩、改ざん、さらには削除を引き起こします。 SQL インジェクション攻撃を防ぐために、開発者はコードを記述するときに特別な注意を払う必要があり、MyBatis などの ORM フレームワークを使用するときは、システムのセキュリティを確保するためのいくつかのベスト プラクティスに従う必要があります。 1. パラメータ化されたクエリ パラメータ化されたクエリは、

See all articles