Spring3

本文介绍了如何在Spring3环境中配置并使用Mybatis,包括Spring的配置文件设置、Mybatis的配置、数据访问层接口与实现,以及业务逻辑层的接口和实现。通过SqlSessionTemplate进行数据操作,并利用注解实现依赖注入。
摘要由CSDN通过智能技术生成

1.spring配置文件

<?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-3.2.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.2.xsd">

	<!-- 配置数据源 -->
	<!--配置连接池-->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="com.mysql.jdbc.Driver"/>
		<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/smbms"/>
		<property name="user" value="root"/>
		<property name="password" value="123456"/>
	</bean>

	<!--配置SqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 加载数据源 -->
		<property name="dataSource" ref="dataSource"></property>

		<!-- 加载MyBatis的配置文件 -->
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>

		<!--加载Mybatis的映射文件 -->
		<property name="mapperLocations">
			<!-- 通配符加载 -->
			<value>classpath:com/leisong/**/*.xml</value>
		</property>
	</bean>

	<!-- 配置sqlSessionTemplate -->
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
	</bean>
    <bean id="billMapper" class="com.leisong.dao.BillMapperImpl">
        <property name="sqlSessionTemplate" ref="sqlSessionTemplate"></property>
    </bean>
<!--    <bean id="billService" class="com.leisong.service.impl.BillServiceImpl">-->
<!--        <property name="billMapper" ref="billMapper"></property>-->
<!--    </bean>-->

    <bean id="providerMapper" class="com.leisong.dao.ProviderMapperImpl">
        <property name="sqlSessionTemplate" ref="sqlSessionTemplate"></property>
    </bean>
<!--    <bean id="providerService" class="com.leisong.service.impl.ProviderServiceImpl">-->
<!--        <property name="providerMapper" ref="providerMapper"></property>-->
<!--    </bean>-->



	<!--配置让其自动扫码指定的包下的注解  -->
	<context:component-scan base-package="com.leisong.service.impl"></context:component-scan>
</beans>

2.mybatis配置文件

<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 给类起别名 -->
	<typeAliases>

		<package name="com.leisong.domain" />
	</typeAliases>
</configuration>
在这里插入代码片

3.数据访问层接口

public interface BillMapper {
    //根据商品名称,供应商id,是否付款  进行查询
    public List<Bill> getBillByProName(Bill bill);

}


public interface ProviderMapper {

    public List<Provider> getProviderAll();
}

4.数据访问层实现类,通过SqlSessionTemplate实现数据访问

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);
    }
}

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> getProviderAll() {
        return sqlSessionTemplate.getMapper(ProviderMapper.class).getProviderAll();
    }
}

5.业务逻辑层接口

public interface BillService {
    public List<Bill> getBillByProName(Bill bill);
}

public interface ProviderService {
    public List<Provider> getProviderAll();
}

6.业务逻辑层实现类,通过注解注入数据访问层

@Service("billService")
public class BillServiceImpl implements BillService {
    @Autowired
    private BillMapper billMapper;

    public BillMapper getBillMapper() {
        return billMapper;
    }

    public void setBillMapper(BillMapper billMapper) {
        this.billMapper = billMapper;
    }

    @Override
    public List<Bill> getBillByProName(Bill bill) {
        return billMapper.getBillByProName(bill);
    }
}

@Service("providerService")
public class ProviderServiceImpl implements ProviderService {
    @Autowired
    private ProviderMapper providerMapper;

    public ProviderMapper getProviderMapper() {
        return providerMapper;
    }

    public void setProviderMapper(ProviderMapper providerMapper) {
        this.providerMapper = providerMapper;
    }

    @Override
    public List<Provider> getProviderAll() {
        return providerMapper.getProviderAll();
    }
}

7.测试

	@Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        BillService billService = (BillService)context.getBean("billService");
        Bill bill = new Bill();
        bill.setProductName("北");
        bill.setIsPayment(2);
        List<Bill> list = billService.getBillByProName(bill);
        for (Bill bill1:list) {
            System.out.println(bill1.toString());
        }
    }

	@Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        ProviderService service = (ProviderService)context.getBean("providerService");
        List<Provider> list = service.getProviderAll();
        for (Provider provider:list) {
            System.out.println(provider.toString());
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值