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

时间:2024-10-06 16:04:38
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

创建数据库语句为:

  1. CREATE TABLE `orders` (
  2. `id` bigint(20) NOT NULL AUTO_INCREMENT,
  3. `company_id` varchar(255) DEFAULT NULL,
  4. `charge` decimal(18,4) NOT NULL DEFAULT '0.0000',
  5. `state` int(11) DEFAULT '0',
  6. `remark` varchar(500) DEFAULT NULL,
  7. PRIMARY KEY (`id`)
  8. );

搭建项目需要以下的包,

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

  1. package com.yunix.dao;
  2. public interface IOrderDao {
  3. public int getOrderCount();
  4. }

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

内容为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC
  3. "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.yunix.dao.IOrderDao">
  6. <select id="getOrderCount"  resultType="int">
  7. <![CDATA[
  8. select count(1) from orders
  9. ]]>
  10. </select>
  11. </mapper>

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

创建service接口:

  1. package com.yunix.service;
  2. public interface IOrderService {
  3. public int getOrderCount();
  4. }

创建service实现类:

  1. package com.yunix.service.impl;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.stereotype.Service;
  4. import com.yunix.dao.IOrderDao;
  5. import com.yunix.service.IOrderService;
  6. @Service
  7. public class OrderService implements IOrderService {
  8. @Autowired
  9. private IOrderDao orderDao;
  10. @Override
  11. public int getOrderCount() {
  12. return orderDao.getOrderCount();
  13. }
  14. }

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. default-autowire="byName"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  9. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
  10. destroy-method="close">
  11. <property name="driverClass" value="com.mysql.jdbc.Driver" />
  12. <property name="jdbcUrl" value="jdbc:mysql://192.168.1.5:3306/test" />
  13. <property name="user" value="yunix" />
  14. <property name="password" value="123456" />
  15. <property name="initialPoolSize" value="1" />
  16. <property name="minPoolSize" value="0" />
  17. <property name="maxPoolSize" value="10" />
  18. <property name="acquireIncrement" value="5" />
  19. <property name="maxIdleTime" value="10" />
  20. <property name="maxStatements" value="0" />
  21. </bean>
  22. <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
  23. <constructor-arg index="0" ref="sqlSessionFactory" />
  24. </bean>
  25. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  26. <property name="dataSource" ref="dataSource" />
  27. <property name="mapperLocations"
  28. value="classpath*:com/yunix/dao/impl/*Mapper.xml" />
  29. </bean>
  30. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  31. <property name="basePackage" value="com.yunix.dao" />
  32. </bean>
  33. <context:component-scan base-package="com.yunix.service" />
  34. </beans>

以及log4j.properties

  1. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  2. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  3. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n
  4. log4j.logger.com.ibatis=debug
  5. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
  6. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
  7. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
  8. log4j.logger.java.sql.Connection=debug
  9. log4j.logger.java.sql.Statement=debug
  10. log4j.logger.java.sql.PreparedStatement=debug,stdout

至此,项目搭建完成。

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

  1. package test;
  2. import org.springframework.context.ApplicationContext;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. import com.yunix.service.IOrderService;
  5. public class MyBatisTest {
  6. public static void main(String[] args) {
  7. @SuppressWarnings("resource")
  8. ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  9. IOrderService orderService = (IOrderService)context.getBean("orderService");
  10. int count = orderService.getOrderCount();
  11. System.out.println("count:" + count);
  12. }
  13. }

运行结果为:

  1. count:11