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, 效果:
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751772.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?