spring整合mybatis
在项目中添加spring和mybatis的jar包依赖。配置三个文件,分别如下:
#db-config.properties属性文件
db.driverName=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=UTF-8
db.username=root
db.pwd=123456
db.maxPoolSize=500
db.maxIDEL=5000
-----------------------------------------------------------------
#mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<!--声明映射的包路径-->
<package name="com.itszt.dao"></package>
</mappers>
</configuration>
-----------------------------------------------------------------
#spring-config.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:component-scan base-package="com.itszt.dao,com.itszt.service"></context:component-scan>
<!--引入连接池配置文件-->
<context:property-placeholder location="classpath:config/db-config.properties"></context:property-placeholder>
<!--配置C3P0连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${db.driverName}"></property>
<property name="jdbcUrl" value="${db.url}"></property>
<property name="user" value="${db.username}"></property>
<property name="password" value="${db.pwd}"></property>
<property name="maxPoolSize" value="${db.maxPoolSize}"></property>
<property name="maxIdleTime" value="${db.maxIDEL}"></property>
</bean>
<!--配置SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:config/mybatis-config.xml"></property>
<property name="typeAliasesPackage" value="com.itszt.domain"></property>
</bean>
<!--以配置文件的形式配置一个userDaoImpl,这一步可以替代mybatis-config.xml中的<mappers>配置-->
<!--<bean id="userDao" class="com.itszt.dao.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>-->
</beans>
接下来是操作映射的接口和文件:
package com.itszt.dao;
import com.itszt.domain.User;
/**
* 接口,实体类User此处略
*/
public interface UserDao {
public User findUserByID(int uid);
}
------------------------------------------------------------------
#UserDao.xml文件,与UserDao在同一包下
<?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.itszt.dao.UserDao">
<select id="findUserByID" parameterType="int" resultType="user">
SELECT * FROM user WHERE uid=#{uid}
</select>
</mapper>
测试类:
import com.itszt.dao.UserDao;
import com.itszt.domain.User;
import com.itszt.service.UserService;
import javafx.application.Application;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("config/spring-config.xml");
UserDao userDao = applicationContext.getBean("userDao", UserDao.class);
User userByID = userDao.findUserByID(2);
System.out.println("userByID = " + userByID);
}
}