Mybatis根据配置文件获取session(多数据源)
1.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> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://192.168.15.10:3306/db" /> <property name="username" value="123" /> <property name="password" value="123" /> </dataSource> </environment> </environments> <mappers> <mapper class="com.TestMyBatis.hr_checkinMapper"></mapper> </mappers> </configuration>
2.config-wx.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> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://192.168.37.1:3306/DB" /> <property name="username" value="root" /> <property name="password" value="mysql" /> </dataSource> </environment> </environments> <mappers> <mapper class="com.TestMyBatis.userMapper"></mapper> </mappers> </configuration>
3.hr_checkinMapper.java

package com.TestMyBatis; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; public interface hr_checkinMapper { @Select(" select count(*) from kq_checkin") public int getCount(); }
4.uc_userMapper.java

package com.TestMyBatis; import org.apache.ibatis.annotations.Select; public interface uc_userMapper { @Select("select count(*) from uc_user") public int getUcUserCount(); }
6.SessionManager.java

package com.TestMyBatis; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class SessionManager { public static SqlSession getSession(String configName){ // String resource = Program.class.getResource("")+"config.xml"; // System.out.println(resource); InputStream inputStream = Program.class.getResourceAsStream(configName); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session=sqlSessionFactory.openSession(); return session; } }
7.program

package com.TestMyBatis; 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 java.io.IOException; import java.io.InputStream; import java.sql.SQLException; public class Program { public static void main(String []args) throws IOException,InterruptedException,SQLException { //xml方式生成sqlsessionfactory SqlSession session=SessionManager.getSession("config.xml"); hr_checkinMapper mapper=session.getMapper(hr_checkinMapper.class); int count=mapper.getCount(); System.out.println(count); SqlSession sessionUc=SessionManager.getSession("config-wx.xml"); uc_userMapper userMapper=sessionUc.getMapper(uc_userMapper.class); int count2=userMapper.getUcUserCount(); System.out.println(count2); } }
Test.class.getresource("") Test 的所在目录
Test.getClassloader.getresource("") classpath目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2013-10-18 sqlserver 设置外键