Spring 整合mybatis配置

Spring整合mybatis配置

Mybatis是ibatis的升级版,是一个基于java的持久层框架。Mybatis是支持普通SQL查询,存储过程和高级映射的优秀的持久层框架,Mybatis 消除了几乎所有JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。

源码下载:基于maven的spring mvc+Mybatis纯净版框架

步骤:

1、创建maven项目,详细可参考IDEA 创建基于Maven的spring mvc框架 


2、修改pom.xml,添加mybatis对应包的依赖

        <!--Mybatis核心包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.2.8</version>
        </dependency>
        <!--Mybatis与spring整合包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>

添加mysql对应包依赖

<span style="white-space:pre">	</span><dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.34</version>
        </dependency>
<span style="white-space:pre">	</span><dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
3、自动生成所需的Dao,bean,和mapping文件,详细请参考 mybatis-generator 代码自动生成工具 自己手写也可以

并放到对应的目录,我的目录图如下:

代码如下:

KbCity.java

package com.spring.bean;
public class KbCity {
	private Integer id;
	private String name;
	private Integer provinceId;
	private Integer type;
	public Integer getId() {return id;}
	public void setId(Integer id) {this.id = id;}
	public String getName() {return name;}
	public void setName(String name) {this.name = name == null ? null : name.trim();}
	public Integer getProvinceId() {return provinceId;}
	public void setProvinceId(Integer provinceId) {this.provinceId = provinceId;}
	public Integer getType() {return type;}
	public void setType(Integer type) {this.type = type;}
}


KbCityMapper.java

package com.spring.dao;

import com.spring.bean.KbCity;

public interface KbCityMapper {

    KbCity selectByPrimaryKey(Integer id);

}

KbCityMapper.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.spring.dao.KbCityMapper" >
  <resultMap id="BaseResultMap1" type="com.spring.bean.KbCity" >
    <id column="_ID_" property="id" jdbcType="INTEGER" />
    <result column="NAME" property="name" jdbcType="VARCHAR" />
    <result column="PROVINCE_ID" property="provinceId" jdbcType="INTEGER" />
    <result column="TYPE" property="type" jdbcType="INTEGER" />
  </resultMap>

  <select id="selectByPrimaryKey" resultMap="BaseResultMap1" parameterType="java.lang.Integer" >
    select
    *
    from kb_city
    where _ID_ = #{id,jdbcType=INTEGER}
  </select>

</mapper>


 在mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。
当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句

比如上方代码中:

Dao层接口定义了KbCity selectByPrimaryKey(Integer id);

在mapper文件中,namespace为com.spring.dao.KbCityMapper,则可以直接使用KbCityMapper.selectByPrimaryKey(),而不需要写实现类

请注意,接口文件方法名和mapper文件id一一对应


4、创建mybatis配置文件,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>

	
	<!-- 类型别名是为 Java类型命名一个短的名字。 它只和 XML配置有关,只用来减少类完全 限定名的多余部分 -->
	<typeAliases>
		<typeAlias alias="kbCity" type="com.spring.bean.KbCity" />
	</typeAliases>

	<mappers>
		<mapper resource="mybatis/mapper/KbCityMapper.xml"></mapper>
	</mappers>

</configuration>

5、创建数据库配置属性文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/my_db?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8


6、创建spring-mybatis配置文件
 
</pre><pre>

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

	<!-- 导入属性配置文件 -->
	<context:property-placeholder location="classpath:jdbc.properties" />

	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="url" value="${jdbc.url}" />
	</bean>
	<!-- 将数据源映射到sqlSessionFactory中 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
		<property name="dataSource" ref="dataSource" />
		<!--<property name="mapperLocations" value="classpath:mybatis/mapper/*.xml" />-->
	</bean>

	<!-- SqlSession模板类实例 -->
	<bean id="sessionTemplate" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="close">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>

	<!--======= 事务配置 Begin ================= -->
	<!-- 事务管理器(由Spring管理MyBatis的事务) -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 关联数据源 -->
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!--======= 事务配置 End =================== -->
	
	<!--mapper配置-->
	<bean id="kbCityMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<property name="mapperInterface" value="com.spring.dao.KbCityMapper" />
		<property name="sqlSessionFactory" ref="sqlSessionFactory" />
	</bean>
</beans>


也可不定义mapper,这时需要在mapper层添加注解

package com.spring.dao;

import com.spring.bean.KbCity;
import org.springframework.stereotype.Repository;

@Repository
public interface KbCityMapper {

    KbCity selectByPrimaryKey(Integer id);

}


每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。

SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。


7、在对应的servlet.xml文件中加入扫描信息


    <!--扫描包注解-->
    <mvc:annotation-driven />
    <context:component-scan base-package="com.spring.*"/>
    
    <!--导入spring配置信息-->
    <import resource="classpath:spring/spring-mybatis.xml" />


至此,Mybatis的配置工作已经做完了,启动,测试看是否正常就OK了




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值