方法一
先导包
junito
mybatiso
mysql数据库
spring相关的
aop织入
mybatis-spring 【new】
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.12</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
1.在ApplicationContext.xml配置
舍弃mybatis.xml(相应的在ApplicationContext配置类,mybatis里得删)里的配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/library?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</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:BookMapper.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
配置完成,util工具类不需要了
实体类Book不变
BookMapper接口
public interface BookMapper {
List<Book> getBookList();
}
BookMapper.xml的sql语句不变
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.BookMapper">
<select id="getBookList" resultType="com.bean.Book">
select * from library.book;
</select>
</mapper>
3.新建业务类BookMapperImpl.java
实现sqlSession方法
public class BookMapperImpl implements BookMapper{
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
}
在BookMapperImpl.java里写
@Override
public List<Book> getBookList() {
BookMapper mapper=sqlSession.getMapper(BookMapper.class);
return mapper.getBookList();
}
4.测试BookTest
@Test
public void getBookList(){
ApplicationContext context=new ClassPathXmlApplicationContext("ApplicationContext.xml");
BookMapper mapper=context.getBean("bookMapper",BookMapper.class);
List<Book> books=mapper.getBookList();
for (Book book:books){
System.out.println(book);
}
}
方法二
1.精简sqlSession语句
修改implement类
public class BookMapperImpl extends SqlSessionDaoSupport implements BookMapper{
@Override
public List<Book> getBookList() {
return getSqlSession().getMapper(BookMapper.class).getBookList();
}
}
2.可以删除spring-dao-setting.xml
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
3.修改ApplicationContext.xml
<bean id="bookMapper" class="com.dao.BookMapperImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
4.测试不变