Mapperインターフェースを使用すると、インターフェース実装クラスを記述する必要がなく、データベース操作を直接完了できるため、簡単で便利です。 誰もが Mapper インターフェイスをよりよく学習できるように、編集者は、必要な人々を助けることを願って、Mapper インターフェイスに関するいくつかの知識ポイントをまとめました。
構造図から始めましょう:
以下は具体的なコードです:
1. User.java
2. UserMapper.java のアイデアです。インターフェース指向のプログラミングは依然として非常に重要です。これは、このブログ投稿の最も重要な部分でもあります。
实体类中的的get/set方法以及构造方法及toString方法就不贴了 public class User { private int id; private String name; private int age; }
1. の名前空間 違い
package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper { void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user); User getUser(int id); User[] list(); }
<mapper namespace="com.mi.mapper.UserMapper">
JDBC 接続
mapper.xml の設定
create table ${tableName}...
ここでツール クラスを書きました。主な目的は sqlSession を取得することです。データベースを操作するたびに、もう一度書きますので、一度カプセル化します。
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
上記のツールクラス sqlSession を通じて、最も重要なことは次の文です
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><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" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 注册userMapper.xml文件 --> <mappers> <mapper resource="com/mi/mapping/userMappers.xml"/> </mappers></configuration>
MyBatis はマッパーインターフェイスを実装します。 動的プロキシを使用すると、実行インターフェイスでの準備が簡単になります。
sqlSession.commit() と sqlSession.close() を忘れないように注意してください。そうしないと、実行中にエラーは報告されませんが、データベースには変更がありません。ただし、実行中にエラーは報告されません。実行してもデータベースに変更はなく、インターフェース実装クラスを記述する必要がなく、データベースの操作を直接完了できるため、簡単で便利です。
以下は具体的なコードです:
package com.mi.util;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.
session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class SqlSessionUtil
{
public static SqlSession getSqlSession() throws Exception{
String resource = "conf.xml";
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Resources.getResourceAsStream(resource);
//构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession sqlSession = sessionFactory.openSession();
return sqlSession;
}
}
2. UserMapper.java これはマッパーインターフェイスとインターフェイスの概念です。指向のプログラミングは依然として非常に重要です。これは、このブログ投稿の最も重要な部分でもあります。
Mapperインターフェースのメソッド名は、UserMapper.xmlで定義された各SQLのIDと同じ名前になります。
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
III、UserMappers.xml
がここにあることに注意してください
这里我只执行了创建表的方法. package com.mi.test;import org.apache.ibatis.session.SqlSession;import com.mi.beans.User;import com.mi.mapper.UserMapper; import com.mi.util.SqlSessionUtil;public class MyTest { public static void main(String[] args) throws Exception { SqlSession sqlSession = SqlSessionUtil.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.createTable("t_user"); sqlSession.commit(); sqlSession.close(); } }
实体类中的的get/set方法以及构造方法及toString方法就不贴了public class User { private int id; private String name; private int age;
four、conf.xml
mapper.xml の設定
package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper {
void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user);
User getUser(int id);
User[] list();
}
5. SqlSessionUtil.java ここでツール クラスを書きました。主な目的は sqlSession を取得することです。データベースを操作するたびに、もう一度書きますので、一度カプセル化します。
<mapper namespace="com.mi.mapper.UserMapper">
、 MyTest.java
上記のツールクラス sqlSession を通じて、最も重要なことは次の文です
create table ${tableName}...
MyBatis はマッパーインターフェイスを実装します。 動的プロキシを使用すると、実行インターフェイスでの準備が簡単になります。
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
関連する推奨事項:
Spring Boot、Mybatis、Redis は最新の Web プロジェクトを迅速に構築します
以上がMybatisの利用(マッパーインターフェース方式)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。