Spring整合MyBatis

1、导入所需jar包

spring-mybatis整合jar包GitHub链接:https://github.com/mybatis/spring

注意:导入jar包时按需添加,否则可能发生jar包冲突难以发现

2、创建并配置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">

<!-- 注意congfiguration标签中子标签具有一定的先后顺序,比如setting标签要在前 -->
<configuration>

	<settings>
                <!-- 用于配置自动将下划线名称转换成驼峰式命名 -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>

        <!-- 设置类简称,常用于自定义类。mybatis对于基本数据类型已经有所规定 -->
	<typeAliases>
		<typeAlias type="com.jd.vo.UserInfo" alias="UserInfo"/>
	</typeAliases>
	
	<!--  注意,因为使用spring整合mybatis,在Spring配置文件application.xml中会对数据库连接池进行配置,因此此处不必再配置
	<environments default="dev">
		<environment id="dev">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="user_info.xml"/>
	</mappers>
	-->
	
</configuration>

3、创建并配置user_info.xml文件以及建立数据处理层

(1)创建并配置user_info.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.jd.userinfo.dao.IUserInfoDao">
        <!-- 删除多条记录使用foreach标签 -->
	<delete id="delete">
		delete from user_inf where id in
		<foreach item="id" collection="ids" open="(" separator="," close=")">
			#{id}
		</foreach>
	</delete>
</mapper>

(2)建立数据处理层接口IUserInfoDao.java

package com.jd.userinfo.dao;

import org.apache.ibatis.annotations.Param;

import com.jd.vo.UserInfo;

public interface IUserInfoDao {

	boolean delete(@Param("ids")int [] ids);
}

4、建立Service层

(1)建立Service层接口:IUserInfoService

package com.jd.userinfo.service;

public interface IUserInfoService {

	boolean delete(int [] ids);
}

(2)建立Service层接口实现类:UserInfoService

package com.jd.userinfo.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jd.userinfo.dao.IUserInfoDao;

@Service
public class UserInfoService implements IUserInfoService{

	@Autowired
	private IUserInfoDao userInfoDao;
	
	public boolean delete(int[] ids) {
		return userInfoDao.delete(ids);
	}

}

5、创建并配置Spring配置文件application.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"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		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-4.3.xsd">

        <!-- 扫描含有指定注释的类并为其创建代理类和对象,此处是为IUserInfoService类创建代理类以及对象并为userInfoDao变量赋值 -->
	<context:component-scan base-package="com.jd"></context:component-scan>
	
        <!-- 配置数据库连接池 -->
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
	    lazy-init="false" destroy-method="close">
	    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
	    <property name="jdbcUrl"
	      value="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8"></property>
	    <property name="username" value="root"></property>
	    <property name="password" value="root"></property>
 	 </bean>

        <!-- ***连接mybatis,整合spring*** -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean"
		p:dataSource-ref="dataSource" p:configLocation="classpath:mybatis-config.xml"
		p:mapperLocations="classpath:com/jd/sql/*.xml">
	</bean>

        <!-- 扫描指定包及其子包下的mapper接口并生成响应代理对象;base-package:指定mapper接口的包名。此处是为IUserInfoDao创建代理类以及对象 -->
	<mybatis-spring:scan base-package="com.jd.*.dao" />
</beans>

6、测试

package com.jd.test;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.jd.userinfo.dao.IUserInfoDao;
import com.jd.userinfo.service.IUserInfoService;
import com.jd.vo.UserInfo;

public class Test {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
		
		IUserInfoService userInfoService = applicationContext.getBean(IUserInfoService.class);
		
		System.out.println(userInfoService.delete(new int [] {1,3}));;
		
		applicationContext.close();
	}
}

附:如何在控制台直观的显示操作过程

添加如下log4j配置文件:log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
		<param name="Encoding" value="UTF-8" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
		</layout>
	</appender>
	<logger name="java.sql">
		<level value="debug" />
	</logger>
	<logger name="org.apache.ibatis">
		<level value="info" />
	</logger>
	<root>
		<level value="debug" />
		<appender-ref ref="STDOUT" />
	</root>
</log4j:configuration>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值