`
snrqtdhuqf
  • 浏览: 77377 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多

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

创建数据库语句为:

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接口类。

package com.yunix.dao;

public interface IOrderDao {

	public int getOrderCount();
}

然后在com.yunix.dao.impl包下创建OrderDaoMapper.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接口:

package com.yunix.service;

public interface IOrderService {

	public int getOrderCount();
}

 创建service实现类:

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 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

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方法进行了测试,测试代码如下:

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

	}

}

 运行结果为:

count:11

 

 

1
6
分享到:
评论
4 楼 luoshengsha 2013-10-20  
这有个很详细的教程:http://www.luoshengsha.com/284.html,希望相互学习
3 楼 luoshengsha 2013-10-20  
这有个很详细的教程:http://www.luoshengsha.com/284.html,希望相互学习
2 楼 jjhpeopl 2013-05-09  
恕小弟愚昧,在applicationContext.xml配置文件中,没有配置service bean的情况下,你写的代码是如何能够执行的呢?

还有个问题是,mybatis就是直接用xml代替了dao中的本来impl类吗?
1 楼 huangsky 2013-05-09  
log4j在这里能把SQL语句能打印出来吗?

相关推荐

Global site tag (gtag.js) - Google Analytics