以下是Spring使用MyBatis配置文件和Druid的示例,实现根据id查找数据库数据:
- 配置数据源和Druid连接池
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true&useSSL=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123456"/> <!-- 配置连接池的一些参数 --> <property name="initialSize" value="5"/> <property name="maxActive" value="20"/> <property name="minIdle" value="5"/> <property name="maxWait" value="60000"/> <property name="timeBetweenEvictionRunsMillis" value="60000"/> </bean>
与前面的示例相同,我们直接使用了Druid连接池作为数据源。
- 配置MyBatis的SqlSessionFactoryBean
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean>
configLocation
属性指向了MyBatis的配置文件。 - 配置Mapper
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.example.dao.UserMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean>
其中,
mapperInterface
属性指定了Mapper接口的全类名,sqlSessionFactory
属性指向了之前配置好的SqlSessionFactoryBean。 - 编写Mapper接口
public interface UserMapper { @Select("SELECT * FROM user WHERE id=#{id}") public User getUserById(@Param("id") Long id); }
在这个示例中,我们通过
@Select
注解配置了SQL语句,指定了根据id查询用户的操作。@Param
注解用于绑定参数。 - 在代码中使用Mapper接口
@Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.getUserById(id); }
在代码中,我们直接使用@Autowired将UserMapper注入进来,并调用其中的getUserById方法即可完成根据id查询数据的操作。