mybatis原始配置mybatis.cfg.xml及其如何调用mapper接口

在没有整合spring框架的时候,最原始的mybatis.cfg.xml配置如下:

 

mysql.properties配置文件(数据库连接信息)

jdbc.driver=org.gjt.mm.mysql.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF8
jdbc.username=root
jdbc.password=1234

mybatis.cfg.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">
<!-- mybatis.cfg.xml 该配置文件主要用于:配置数据库的相关连接信息 -->
<configuration>
	<!-- 将外部文件链接到mybatis.cfg.xml中 -->
	<properties resource="mysql.properties"></properties>

	<settings>
		<!-- 开启懒加载的功能 -->
		<setting name="lazyLoadingEnabled" value="true"/>
		<!-- 将积极主动的关联对象加载方式,修改为消极按需的懒加载方式 -->
		<setting name="aggressiveLazyLoading" value="false"/>
	</settings>

	<!-- 开启自动扫描,并为 com.gt.mybatis.bean 下面的所有的JavaBean创建别名
	是将类的类名  来作为类的全限名的别名-->
	<typeAliases>
		<package name="com.gt.mybatis.bean"/>
	</typeAliases>

	<!-- 配置数据源 -->
	<!-- 数据库连接池的工作原理:
		 连接池:就是一个存放连接的池子,或者叫容器,只不过这个池子被分为2个部分:活跃区,空闲区
	 	
	 	 比如:配置 初始化连接条数为5,当连接不够重新获取条数为15,最大连接数为50 
	 
		连接池创建的时候,会根据配置信息,使用JDBC技术初始化 5 根连接,存放在连接池的"活跃区"中。当应用程序需要访问数据库时,连接池将从活跃区 中获取1根连接给应用程序,用于访问数据库,当该连接完成了SQL执行之后,不需要销毁而是直接重新回到连接池中。从而做到连接资源的复用。 
		当应用程序将"活跃区"中的5根连接都使用完毕之后,将按照配置信息重新再获取 15 根连接到"活跃区"中,以供应用程序使用,当然还是有出去的,就有回来 
		的。只不过回来的时候,需要判断"活跃区"中的连接是否已达到最初的状态,如果超过了,连接将回到"空闲区"去,以供应用程序 优先 下次访问(注意:空闲 
		区中的连接,一旦使用完毕,将直接销毁,不会再回到连接池中) 当重新获取新的连接之后,如果还是不够,就一直获取新的连接,直到达到最大连接数 50 ,当业务量逐渐上升的时候,连接池可以采用上述的方式不断的获取新的连接,当业务量逐渐下降时,也可以不断的销毁旧的连接 -->
	<environments default="default">
		<environment id="default">
			<!-- 采用JDBC的事务管理方式,去管理数据库事务 -->
			<transactionManager type="JDBC"></transactionManager>
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}"/>
				<property name="url" value="${jdbc.url}"/>
				<property name="username" value="${jdbc.username}"/>
				<property name="password" value="${jdbc.password}"/>
			</dataSource>
		</environment>
	</environments>

	<!-- 向mybatis框架,注册SQL映射文件 -->
	<mappers>
		<package name="com.gt.mybatis.o2mmag.mapper"/>
		<package name="com.gt.mybatis.m2mmag.mapper"/>
		<package name="com.gt.mybatis.extendsmag.mapper"/>
		<!-- 如果有多个:<package name="com.gt.mybatis.usermag.mapper"/>
		
	</mappers>





</configuration>

 

配置文件写好了之后,就需要有东西去读取这片配置

SessionUtil工具类,会去读取mybatis.cfg.xml这个配置文件,给我们产生一个session,通过这个session我们可以去建立与mapper接口的关系

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**
 * 获取Session的工具类
 * @author Administrator
 *
 */
public class SessionUtil {

	private static ThreadLocal<SqlSession> local = new ThreadLocal<SqlSession>() {
		protected SqlSession initialValue() {
			return ssf.openSession();
		};
	};
	
	
	private static SqlSessionFactory ssf;
	/**
	 * 读取mybatis.cfg.xml配置文件,然后采用建造者模式产生SqlSessionFactory类
	 * 默认读取src目录,所以根目录是src,将配置文件放在src下,就可以直接写文件名
	 */
	static {
		String xml = "mybatis.cfg.xml";
		try {
			Reader reader = Resources.getResourceAsReader(xml);
			ssf = new SqlSessionFactoryBuilder().build(reader);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * 从工厂类中获取SqlSession实例
	 * @return
	 */
	public static SqlSession getSession() {
		SqlSession session = local.get();
		if(session == null) {
			session = ssf.openSession();
			local.set(session);
		}
		return session;
	}
	
}

 

然后我们就可以去调用mapper里面定义的查询方法了

public class StudentDaoImpl implements IStudentDao {

	@Override
	public int countStudentBeanList(StudentBean stu) {
		// TODO Auto-generated method stub
		//通过工具获取session
		SqlSession session = SessionUtil.getSession();
		//通过session建立与自己写的mybatismapper接口的联系
		StudentMapper sm = session.getMapper(StudentMapper.class);
		//调用自己写的mapper接口的方法
		int rows = sm.countStudentBeanList(stu);
		session.close();
		return rows;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一款使用 XML 或注解配置的持久层框架,它可以自动化地将数据库的数据映射到 Java 对象。在 MyBatis mappermapper.xml 是配对使用的,其 mapper接口,而 mapper.xml 是映射配置文件。 mapper 接口定义了数据库操作的方法,而 mapper.xml 则定义了这些方法的 SQL 语句以及参数映射规则、结果集映射规则等。 下面是一个简单的例子: 1. 定义 mapper 接口 ```java public interface UserMapper { User selectUserById(Integer id); } ``` 2. 定义 mapper.xml 映射配置文件 ```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.example.UserMapper"> <resultMap id="userResultMap" type="com.example.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> </resultMap> <select id="selectUserById" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 上述代码,namespace 属性指定了 mapper 接口的全限定名,resultMap 标签定义了一个结果集映射规则,select 标签定义了一个查询操作,其 id 属性指定了 mapper 接口的方法名,resultMap 属性指定了结果集映射规则的 id。 3. 在 MyBatis 配置文件引入 mapper.xml ```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> <mappers> <mapper resource="com/example/UserMapper.xml"/> </mappers> </configuration> ``` 上述代码mapper 标签指定了映射配置文件的位置。 这样就完成了 mappermapper.xml配置。在代码调用 selectUserById 方法时,MyBatis 会根据 mapper.xml 配置自动生成 SQL 语句,并将查询结果映射到 User 对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值