Spring整合Mybatis极简完整示例(结构清晰仅需一个xml系统配置文件!)

看网上的教程都是一堆xml配置文件,我今天出一个教程,除mybatis映射文件外,整个spring容器框架整合mybatis只需要一个xml配置文件即可完成,

无需 :mybatis-config.xml, db.properties,web.xml。

示例环境:

spring5.2.9,下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/5.2.9.RELEASE/

Mybatis:3.5.6,下载地址:https://github.com/mybatis/mybatis-3/releases

以上包均为目前最新版本

 

1,User.java实体类

package com.sm.entity;
public class User {
private String loginid;
private String loginname;
private String sex;
private String mobile;
public String getLoginid() {
return loginid;
}
public void setLoginid(String loginid) {
this.loginid = loginid;
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("loginid=").append(loginid);
sb.append(", loginname=").append(loginname);
sb.append(", sex=").append(sex);
sb.append(", mobile=").append(mobile);
sb.append("]");
return sb.toString();
}
}

2,UserDao.java 接口类

package com.sm.dao;
import java.util.List;
import com.sm.entity.User;
public interface UserDao {
public User selectUserByID (int id);
public List<User> selectUserByName (String loginname);
}

3,UserDao.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="user"> -->
<mapper namespace="com.sm.dao.UserDao">
<select id="selectUserByID" parameterType="int" resultType="com.sm.entity.User" >
select * from t_users where id=#{id}
</select>
<select id="selectUserByName" parameterType="string" resultType="com.sm.entity.User" >
select * from t_users where loginName like '%${value}%'
</select>
</mapper>

4,applicationContext.xml (spring+mybatis配置文件)

<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<!-- 读取db.properties
<context:property-placeholder location="db.properties"/>
-->
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/itqs" />
<property name="username" value="root" />
<property name="password" value="123" />
</bean>
<!-- 配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- <property name="configLocation" value="mybatis-config.xml"/> -->
<property name="mapperLocations" value="com/sm/dao/*.xml"/>
<!-- <property name="typeAliasesPackage" value="com.sm.entity" /> -->
</bean>
<!--配置userMapper对象-->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.sm.dao.UserDao"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>

5,测试类Test.java

package com.sm.test;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.sm.dao.UserDao;
import com.sm.entity.User;
public class Test1 {
public static void main(String[] args) {
//第一种写法
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao mapper = (UserDao)context.getBean("userMapper");
User user = mapper.selectUserByID(18);
System.out.println(user);
//第二种写法
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao mapper1 = ctx.getBean("userMapper",UserDao.class);
List<User> userlist = mapper1.selectUserByName("李");
System.out.println(userlist);
}
}

6, 效果:

posted @   IT情深  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示