spring怎么调用mybatis
-
要让Spring调用MyBatis,需要进行以下几个步骤:
- 配置Spring和MyBatis的依赖:在项目的pom.xml文件中,添加Spring和MyBatis的相关依赖。例如:
<dependencies> <!-- Spring依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.5</version> </dependency> <!-- MyBatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> </dependencies>- 配置Spring和MyBatis的配置文件:在src/main/resources目录下,创建一个名为
applicationContext.xml的Spring配置文件,并在其中配置MyBatis的相关内容。例如:
<!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <!-- 配置SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <!-- 配置Mapper扫描 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean>- 配置MyBatis的映射文件:在src/main/resources目录下,创建一个名为
mybatis-config.xml的MyBatis配置文件,并在其中配置MyBatis的Mapper扫描路径。例如:
<configuration> <mappers> <package name="com.example.mapper" /> </mappers> </configuration>- 创建Mapper接口和Mapper实现类:在指定的包下,创建Mapper接口和对应的Mapper实现类。例如:
// Mapper接口 public interface UserMapper { User getUserById(int id); void insertUser(User user); } // Mapper实现类 @Repository public class UserMapperImpl implements UserMapper { @Autowired private SqlSessionFactory sqlSessionFactory; public User getUserById(int id) { try(SqlSession session = sqlSessionFactory.openSession()) { return session.selectOne("com.example.mapper.UserMapper.getUserById", id); } } public void insertUser(User user) { try(SqlSession session = sqlSessionFactory.openSession()) { session.insert("com.example.mapper.UserMapper.insertUser", user); session.commit(); } } }- 使用Spring注入Mapper:在需要使用Mapper的地方(例如Service类),使用@Autowired注解将Mapper注入进来,并使用其方法进行数据操作。例如:
@Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(int id) { return userMapper.getUserById(id); } public void insertUser(User user) { userMapper.insertUser(user); } }通过以上步骤,就可以让Spring调用MyBatis进行数据库操作了。在使用过程中,还可以根据需要进行其他配置,例如事务管理等。
1年前 -
Spring可以通过使用MyBatis框架来调用MyBatis。下面是在Spring中使用MyBatis的几个步骤:
- 配置数据源:在Spring的配置文件中配置数据源,可以使用Spring提供的DataSource或者其他第三方连接池。例如,可以使用以下配置添加一个基于连接池的数据源:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/testdb" /> <property name="username" value="username" /> <property name="password" value="password" /> </bean>- 配置SqlSessionFactory:在Spring的配置文件中配置SqlSessionFactory。SqlSessionFactory是MyBatis的核心接口,用于创建SqlSession对象。以下是一个配置示例:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mappers/*.xml" /> </bean>在上面的配置中,我们需要指定数据源和mapper文件的路径。mapper文件包含SQL语句以及对应的映射关系。
- 配置Mapper接口:在Spring的配置文件中配置Mapper接口,使其自动扫描并生成Mapper代理对象。以下是一个配置示例:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean>在上面的配置中,我们需要指定Mapper接口所在的包路径。
- 编写Mapper接口:创建Mapper接口,用于定义SQL语句以及参数映射。例如,可以编写一个UserMapper接口:
public interface UserMapper { User getUserById(Long id); List<User> getAllUsers(); void insertUser(User user); void updateUser(User user); void deleteUser(Long id); }- 注入Mapper接口:在需要使用Mapper接口的地方注入它。可以使用Spring的依赖注入来实现。例如,可以在Service类中注入UserMapper接口,并使用它进行数据库操作:
@Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.getUserById(id); } public List<User> getAllUsers() { return userMapper.getAllUsers(); } public void insertUser(User user) { userMapper.insertUser(user); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(Long id) { userMapper.deleteUser(id); } }通过以上步骤配置好Spring和MyBatis之后,就可以在Spring的Bean中注入Mapper接口,并使用它来进行各种数据库操作了。在调用Mapper接口的方法时,MyBatis会自动将SQL语句执行并映射为相应的Java对象。此外,MyBatis还提供了丰富的SQL语句语法和参数映射方式,以及事务管理等功能,可以满足各种数据库操作的需求。
1年前 -
调用MyBatis框架的方式有多种,Spring框架提供了多种集成方式来使用MyBatis。下面将介绍两种常用的方式:
方式一:使用Spring的MyBatis集成
- 首先,需要在项目中引入Spring和MyBatis的相关依赖。对于Maven工程,可以在pom.xml文件中添加如下依赖:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>{spring-version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>{mybatis-version}</version> </dependency>其中,
{spring-version}为Spring的版本号,{mybatis-version}为MyBatis的版本号。- 在Spring的配置文件中配置数据源和MyBatis的SessionFactory。
<!-- 数据源配置 --> <bean id="dataSource" class="{data-source-class}"> <!-- 配置数据源的相关属性 --> </bean> <!-- MyBatis的SessionFactory配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:mapper/*.xml" /> </bean>其中,
{data-source-class}为具体的数据源实现类,例如org.apache.commons.dbcp2.BasicDataSource。- 创建MyBatis的Mapper接口,定义数据访问的方法。
public interface UserMapper { User getUserById(int id); void insertUser(User user); void updateUser(User user); void deleteUser(int id); }- 创建MyBatis的Mapper XML文件,定义SQL语句。
<mapper namespace="com.example.mapper.UserMapper"> <select id="getUserById" parameterType="int" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> <insert id="insertUser" parameterType="com.example.entity.User"> INSERT INTO user(name, age) VALUES (#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.entity.User"> UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM user WHERE id = #{id} </delete> </mapper>- 在Spring的配置文件中配置MyBatis的Mapper扫描。
<!-- 扫描Mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean>其中,
com.example.mapper为Mapper接口所在的包路径。- 在业务类中注入Mapper接口,并调用方法。
@Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(int id) { return userMapper.getUserById(id); } public void insertUser(User user) { userMapper.insertUser(user); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(int id) { userMapper.deleteUser(id); } }方式二:使用Spring Boot的MyBatis集成
Spring Boot对MyBatis的集成提供了更加简洁的方式。只需进行简单的配置即可使用MyBatis。- 在Spring Boot的配置文件中配置数据源和MyBatis。
# 数据源配置 spring.datasource.url=jdbc:mysql://{host}:{port}/{database} spring.datasource.username={username} spring.datasource.password={password} spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis配置 mybatis.mapper-locations=classpath:mapper/*.xml-
创建MyBatis的Mapper接口和XML文件,与方式一相同。
-
在业务类中注入Mapper接口,并调用方法,与方式一相同。
这两种方式都可以实现Spring调用MyBatis,选择其中一种方式根据自己的需要进行开发。
1年前