SpringフレームワークとMyBatisを統合したSMプログラミングによるDAOレイヤーの開発

Spring フレームワークと MyBatis の統合において、SM プログラミング (Spring + MyBatis) は、一般的な DAO 層開発手法です。

以下は簡単な例です。

最初に、SpringフレームワークとMyBatisが正しく設定されていることを確認します。

DAOインターフェースを作成します: データアクセス操作のメソッドを宣言するためにDAOレイヤでインターフェースを定義します。たとえば、UserDaoインターフェースを作成します:

public interface UserDao {

User getUserById(int id);

List<User> getAllUsers();

void addUser(User user);

void updateUser(User user);

void deleteUser(int id);

}


2. DAOインタフェース実装クラスの作成:上記したインターフェースを実装し、SQL文の実行にはMyBatisを使用します。例えば、UserDaoImplクラスを作成します。

@Repository

public class UserDaoImpl implements UserDao {

@Autowired

private SqlSessionFactory sqlSessionFactory;

@Override

public User getUserById(int id) {

try (SqlSession session = sqlSessionFactory.openSession()) {

return session.selectOne(“getUserById”, id);

}

}

@Override

public List<User> getAllUsers() {

try (SqlSession session = sqlSessionFactory.openSession()) {

return session.selectList(“getAllUsers”);

}

}

@Override

public void addUser(User user) {

try (SqlSession session = sqlSessionFactory.openSession()) {

session.insert(“addUser”, user);

session.commit();

}

}

@Override

public void updateUser(User user) {

try (SqlSession session = sqlSessionFactory.openSession()) {

session.update(“updateUser”, user);

session.commit();

}

}

@Override

public void deleteUser(int id) {

try (SqlSession session = sqlSessionFactory.openSession()) {

session.delete(“deleteUser”, id);

session.commit();

}

}

}


3. MyBatisのMapperファイル配置:resourcesディレクトリ以下にDAOインターフェースと対応するMapper XMLファイル(例: UserMapper.xml)を作成し、SQL文を記述します。

<mapper namespace="com.example.dao.UserDao">

<select id=”getUserById” resultType=”com.example.entity.User”>

SELECT * FROM users WHERE id = #{id}

</select>

<select id=”getAllUsers” resultType=”com.example.entity.User”>

SELECT * FROM users

</select>

<insert id=”addUser” parameterType=”com.example.entity.User”>

INSERT INTO users (name, email) VALUES (#{name}, #{email})

</insert>

<update id=”updateUser” parameterType=”com.example.entity.User”>

UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}

</update>

<delete id=”deleteUser” parameterType=”int”>

DELETE FROM users WHERE id = #{id}

</delete>

</mapper>


4. Spring Beanの設定: Springの設定ファイルで、`UserDaoImpl` を Bean として注入し、MyBatis の必要な設定を行います。

<bean id="userDao" class="com.example.dao.UserDaoImpl">

<property name=”sqlSessionFactory” ref=”sqlSessionFactory” />

</bean>

<bean id=”sqlSessionFactory” class=”org.mybatis.spring.SqlSessionFactoryBean”>

<property name=”dataSource” ref=”dataSource” />

<property name=”mapperLocations” value=”classpath*:com/example/mappers/*.xml” />

</bean>

<bean id=”dataSource” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>

<!– 设置数据库相关配置 –>

</bean>


上記の手順を経ることで、アプリケーションでUserDaoインタフェースの実装クラスを使用してデータベースへのアクセス操作を実施でき、SpringとMyBatisが統合され、トランザクション管理機能などが提供されます。

bannerAds