第一种方式
- 在Spring配置文件中配置sqlSession。
先连接数据库
配置sqlSessionFactory<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value=""/> <property name="password" value=""/> </bean>
配置sqlSession<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="datasource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" value="classpath:com/kuang/mapper/UserMapper.xml"/> </bean>
配置接口实现类<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 没有set方法,可以用构造器实现 <constructor-arg index="0" ref="sqlSessionFactory"/> </bean>
<bean id="userMapper" class="com.kuang.mapper.UserMapperImpl"> <property name="sqlSession" ref="sqlSession"/> </bean>
- 在UserMapper.xml中实现方法
<mapper namespace="com.kuang.mapper.UserMapper"> <select id="selectUser" resultType="com.kuang.pojo.User"> select * from mybatis.user; </select>
3.测试
@Test
public void test() throws IOException {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-dao.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
for (User user : userMapper.selectUser()) {
System.out.println(user);
}
}
第二种方式
- 编写接口实现类,继承SqlSessionDaoSupport类,使用getSqlSession方法获取sqlSession。
- 在Spring配置文件中注册Bean。
<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:com/kuang/mapper/UserMapper.xml"/>
</bean>
<bean id="userMapper2" class="com.kuang.mapper.UserMapperImpl_2">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>