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

时间:2024-12-22

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

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

  ```java

  public interface UserDao {

   User getUserById(int id);

   List getAllUsers();

   void addUser(User user);

   void updateUser(User user);

   void deleteUser(int id);

  }

  ```

   创建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 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();

   }

   }

  }

  ```

   配置MyBatis的Mapper文件:在resources目录下创建一个与DAO接口相对应的Mapper XML文件(如UserMapper.xml),并定义SQL语句。示例:

  ```xml

  

  

  

  

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

  

  

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

  

  

   DELETE FROM users WHERE id = #{id}

  

  

  ```

   配置Spring的Bean:在Spring配置文件中,将`UserDaoImpl注入为一个Bean,并配置MyBatis的相关设置。示例:

  ```xml

  

  

  

  

  

  

  

  

  

  

  ```

  通过以上步骤,你就可以在应用中使用UserDao接口的实现类进行数据库访问操作了,Spring、MyBatis会进行整合并提供事务管理等功能。