spring3.2.2+mybatis3.2.3+c3p0项目整合

Posted wsy0202

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring3.2.2+mybatis3.2.3+c3p0项目整合相关的知识,希望对你有一定的参考价值。

在搭建项目之前,创建数据库,以及数据库表,我用的数据库是mysql 5.6.11

创建数据库语句为:

Sql代码  技术图片
 

 

CREATE TABLE `orders` (  
  `id` bigint(20) NOT NULL AUTO_INCREMENT,  
  `company_id` varchar(255) DEFAULT NULL,  
  `charge` decimal(18,4) NOT NULL DEFAULT 0.0000,  
  `state` int(11) DEFAULT 0,  
  `remark` varchar(500) DEFAULT NULL,  
  PRIMARY KEY (`id`)  
); 

 

搭建项目需要以下的包,

mybatis-3.2.3-SNAPSHOT.jar

mybatis-spring-1.2.0.jar

mysql-connector-java-5.1.24-bin.jar

c3p0-0.9.1.2.jar

commons-logging-1.1.1.jar

spring-aop-3.2.2.RELEASE.jar

spring-aspects-3.2.2.RELEASE.jar

spring-beans-3.2.2.RELEASE.jar

spring-context-3.2.2.RELEASE.jar

spring-context-support-3.2.2.RELEASE.jar

spring-core-3.2.2.RELEASE.jar

spring-expression-3.2.2.RELEASE.jar

spring-jdbc-3.2.2.RELEASE.jar

spring-tx-3.2.2.RELEASE.jar

好了,简单的准备工作已经准备就绪,现在来创建一个java项目或者java web项目

 

首先,创建dao接口类。

Java代码  技术图片
 
package com.yunix.dao;  
  
public interface IOrderDao   
  
    public int getOrderCount();  
  

 

然后在com.yunix.dao.impl包下创建OrderDaoMapper.xml

内容为:

Xml代码  技术图片
 
<?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.yunix.dao.IOrderDao">  
    <select id="getOrderCount"  resultType="int">  
    <![CDATA[ 
        select count(1) from orders 
    ]]>  
    </select>  
</mapper>  

 

 其中namespace为dao接口,id为dao接口中的方法。

创建service接口:

Java代码  技术图片
 
package com.yunix.service;  
  
public interface IOrderService   
  
    public int getOrderCount();  
  

 

 创建service实现类:

Java代码  技术图片
 
package com.yunix.service.impl;  
  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Service;  
  
import com.yunix.dao.IOrderDao;  
import com.yunix.service.IOrderService;  
  
@Service  
public class OrderService implements IOrderService   
  
    @Autowired  
    private IOrderDao orderDao;  
      
    @Override  
    public int getOrderCount()   
  
        return orderDao.getOrderCount();  
      
  
  

 

 在src文件夹下创建applicationCntext.xml文件

Xml代码  技术图片
 
<?xml version="1.0" encoding="UTF-8"?>  
<beans xmlns="http://www.springframework.org/schema/beans"    
    default-autowire="byName"    
    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.0.xsd  
    http://www.springframework.org/schema/context   
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">    
      
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"   
            destroy-method="close">  
        <property name="driverClass" value="com.mysql.jdbc.Driver" />  
        <property name="jdbcUrl" value="jdbc:mysql://192.168.1.5:3306/test" />  
        <property name="user" value="yunix" />  
        <property name="password" value="123456" />  
        <property name="initialPoolSize" value="1" />  
        <property name="minPoolSize" value="0" />  
        <property name="maxPoolSize" value="10" />  
        <property name="acquireIncrement" value="5" />  
        <property name="maxIdleTime" value="10" />  
        <property name="maxStatements" value="0" />  
    </bean>  
      
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">    
        <constructor-arg index="0" ref="sqlSessionFactory" />    
    </bean>    
      
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
        <property name="mapperLocations"  
            value="classpath*:com/yunix/dao/impl/*Mapper.xml" />  
    </bean>  
  
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
        <property name="basePackage" value="com.yunix.dao" />  
    </bean>  
  
    <context:component-scan base-package="com.yunix.service" />  
      
      
</beans>  

 

 以及log4j.properties

Properties代码  技术图片
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n  
log4j.logger.com.ibatis=debug  
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug  
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug  
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug  
log4j.logger.java.sql.Connection=debug  
log4j.logger.java.sql.Statement=debug  
log4j.logger.java.sql.PreparedStatement=debug,stdout  

 

至此,项目搭建完成。

到底搭建成不成功,写一个测试类进行简单测试一下。我写的比较简单,写了个main方法进行了测试,测试代码如下:

Java代码  技术图片
 
package test;  
  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
  
import com.yunix.service.IOrderService;  
  
public class MyBatisTest   
  
    public static void main(String[] args)   
          
        @SuppressWarnings("resource")  
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");    
        IOrderService orderService = (IOrderService)context.getBean("orderService");    
        int count = orderService.getOrderCount();    
        System.out.println("count:" + count);    
  
      
  
  

 

 运行结果为:

Console代码  技术图片
  1. count:11 

以上是关于spring3.2.2+mybatis3.2.3+c3p0项目整合的主要内容,如果未能解决你的问题,请参考以下文章

2020.03.27 JDBCTemplate常用方法

在 Spring 上实例化 EntityManager

SpringqueryForXXX()方法使用的一些细节问题

SpringqueryForXXX()方法使用的一些细节问题

maven构建ssh项目的出现的问题以及解决方法

解决Spring+Quartz无法自动注入bean问题