返回顶部
首页 > 资讯 > 精选 >spring框架与mybatis的整合之SM编程DAO层开发
  • 685
分享到

spring框架与mybatis的整合之SM编程DAO层开发

spring 2023-09-28 20:09:28 685人浏览 独家记忆
摘要

在spring框架与mybatis的整合中,SM编程(Spring + MyBatis)是一种常见的DAO层开发方式。下面是一个简单

spring框架mybatis的整合中,SM编程(Spring + MyBatis)是一种常见的DAO层开发方式。

下面是一个简单的示例:

首先,确保已经正确配置了Spring框架和MyBatis。

1. 创建DAO接口:在DAO层定义一个接口,用于声明数据访问操作的方法。例如,创建一个`UserDao`接口:

```java

public interface UserDao {

    User getUserById(int id);

    List<User> getAllUsers();

    void addUser(User user);

    void updateUser(User user);

    void deleteUser(int id);

}

```

2. 创建DAO接口的实现类:实现上述接口,并使用MyBatis来执行相应的sql语句。例如,创建一个`UserDaoImpl`类:

```java

@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语句。示例:

```xml

<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的相关设置。示例:

```xml

<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会进行整合

并提供事务管理等功能。

--结束END--

本文标题: spring框架与mybatis的整合之SM编程DAO层开发

本文链接: https://lsjlt.com/news/420693.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作