第一步:创建BillMapper接口 ,ProviderMapper接口
public interface BillMapper {
//根据商品名称(模糊查询),供应商id,是否付款 进行查询
public List<Bill> getBillByProName(Bill bill);
}
public interface ProviderMapper {
public List<Provider> getAllProvider();
}
第二步:创建他们的实现类
public class BillMapperImpl implements BillMapper{
private SqlSessionTemplate sqlSessionTemplate;
public SqlSessionTemplate getSqlSessionTemplate() {
return sqlSessionTemplate;
}
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
@Override
public List<Bill> getBillByProName(Bill bill) {
return sqlSessionTemplate.getMapper(BillMapper.class).getBillByProName(bill);
}
}
package com.MyBatis.dao;
import com.pojo.Provider;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
/**
* @auther zll
* @create 2020/7/16-19:25
*/
public class ProviderMapperImpl implements ProviderMapper{
private SqlSessionTemplate sqlSessionTemplate;
public SqlSessionTemplate getSqlSessionTemplate() {
return sqlSessionTemplate;
}
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}
@Override
public List<Provider> getAllProvider() {
return sqlSessionTemplate.getMapper(ProviderMapper.class).getAllProvider();
}
}
第三步:创建其对应的映射文件
<?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.MyBatis.dao.BillMapper">
<select id="getBillByProName" resultType="com.pojo.Bill" resultMap="billlist">
select b.billCode,b.productName,b.totalPrice,b.isPayment,b.creationDate,p.proName
from smbms_bill b,smbms_provider p where b.productName like concat('%',#{productName},'%') and b.isPayment=#{isPayment}
and b.isPayment=#{isPayment} and b.providerId=p.id
</select>
<resultMap id="billlist" type="com.pojo.Bill">
<id property="id" column="id"></id>
<result property="providerName" column="proName"></result>
</resultMap>
</mapper>
<?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.MyBatis.dao.ProviderMapper">
<select id="getAllProvider" resultType="com.pojo.Provider">
select * from smbms_provider;
</select>
</mapper>
第四步:创建BillService和ProviderService接口
public interface BillService {
public List<Bill> getBillByNameIdIsPay(Bill bill);
}
public interface ProviderService {
public List<Provider> getall();
}
第五步:实现类
package com.spring.service;
import com.MyBatis.dao.BillMapperImpl;
import com.pojo.Bill;
import java.util.List;
/**
* @auther zll
* @create 2020/7/16-20:33
*/
public class BillServiceImpl implements BillService {
private BillMapperImpl billMapper;
public BillMapperImpl getBillMapper() {
return billMapper;
}
public void setBillMapper(BillMapperImpl billMapper) {
this.billMapper = billMapper;
}
@Override
public List<Bill> getBillByNameIdIsPay(Bill bill) {
return billMapper.getBillByProName(bill);
}
}
package com.spring.service;
import com.MyBatis.dao.ProviderMapper;
import com.pojo.Provider;
import java.util.List;
/**
* @auther zll
* @create 2020/7/16-19:38
*/
public class ProviderServiceImpl implements ProviderService {
private ProviderMapper providerMapper;
public ProviderMapper getProviderMapper() {
return providerMapper;
}
public void setProviderMapper(ProviderMapper providerMapper) {
this.providerMapper = providerMapper;
}
@Override
public List<Provider> getall() {
return providerMapper.getAllProvider();
}
}
第六步:配置applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- <context:property-placeholder location="classpath:"></context:property-placeholder>-->
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="url" value="jdbc:mysql:///smbms"></property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置数据源-->
<property name="dataSource" ref="datasource"></property>
<!-- 配置Mybatis-config文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!-- 配置映射文件-->
<!-- <property name="mapperLocations" value="classpath:com/MyBatis/dao/ProviderMapper.xml"></property>-->
<!-- -->
<property name="mapperLocations" value="classpath:com/MyBatis/dao/*.xml"></property>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<!-- 构造注入sqlSessionFactory-->
<constructor-arg ref="sqlSessionFactory"/>
</bean>
<!-- Provider-->
<bean id="providerMapper" class="com.MyBatis.dao.ProviderMapperImpl">
<property name="sqlSessionTemplate" ref="sqlSessionTemplate"></property>
</bean>
<bean id="providerService" class="com.spring.service.ProviderServiceImpl">
<property name="providerMapper" ref="providerMapper"></property>
</bean>
<!-- Bill-->
<bean id="billMapper" class="com.MyBatis.dao.BillMapperImpl">
<property name="sqlSessionTemplate" ref="sqlSessionTemplate"></property>
</bean>
<bean id="billService" class="com.spring.service.BillServiceImpl">
<property name="billMapper" ref="billMapper"></property>
</bean>
</beans>
第七步:测试
public class TestBill {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
BillService p = (BillService) context.getBean("billService");
List<Bill> list = new ArrayList<>();
Bill bill = new Bill();
bill.setProductName("北");
bill.setIsPayment(2);
list = p.getBillByNameIdIsPay(bill);
for (Bill p1 : list){
System.out.println(p1.toString());
}
}
}
public class TestProvider {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
ProviderService p = (ProviderService) context.getBean("providerService");
List<Provider> list = new ArrayList<>();
list = p.getall();
for (Provider p1 : list){
System.out.println(p1.toString());
}
}
}