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>