spring框架与mybatis的整合之SM编程DAO层开发
在Spring框架与MyBatis的整合中,SM编程(Spring + MyBatis)是一种常见的DAO层开发方式。
下面是一个简单的示例:
首先,确保已经正确配置了Spring框架和MyBatis。
1. 创建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接口的实现类:实现上述接口,并使用MyBatis来执行相应的SQL语句。例如,创建一个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会进行整合并提供事务管理等功能。
阅读剩余
THE END