MyBatis基本使用步骤

         MyBatis是一个数据持久层(ORM)框架。把实体 类和SQL语句之间建立了映射关系,是一种半自 动化的ORM实现。MyBATIS需要开发人员自己来写sql语句,这可以增加了程序的灵活性,在一定程度上可以作为ORM的一种补充。

什么情况下不适合全自动化框架:

1)系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几条Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开;

2)开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现(就金融行业而言,工商银行、中国银行、交通银行,都在开发规范中严格指定);

3)系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。

MyBatis基本要素:

1.  configuration.xml 全局配置文件

2.  xml映射文件(mapper)—实体类

3.  SqlSession接口

使用准备工作:

1.  需要的jar包:mybatis-3.2.2.jar,mysql-connector-java-5.1.26-bin.jar;

2.  在eclipse中添加相关的dtd文件(XML Catalog): mybatis-3-config.dtd,mybatis-3-mapper.dtd,方便创建xml配置文件,注意dtd文件不要放在中文目录下;

Key:-//mybatis.org//DTD Config 3.0//EN

-//mybatis.org//DTDMapper 3.0//EN

3.  创建核心配置文件mybatis.xml,放在src目录下;

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
	<!-- 类型别名设置 -->
	<typeAliases>
		<typeAlias alias="Stu" type="com.it.entity.Stu"/>
	</typeAliases>
	<environments default="xx">
		<environment id="xx">
			<!-- 事务管理 -->
			<transactionManager type="jdbc"/>
			<!-- 数据库连接池 -->
			<dataSource type="pooled">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
				<property name="username" value="root"/>
				<property name="password" value="ok"/>
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<!-- 对应实体类的映射文件路径 -->
		<mapper resource="com/it/entity/Stu.xml"/>
	</mappers>
</configuration>

4.  创建实体类(POJO)--Stu.java

5.  创建与之对应的映射文件Stu.xml,与实体类在同一个目录下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="stu">
	<select id="findAll" resultType="Stu">
		select * from stu
	</select>
</mapper>

6.  创建测试类

public class Test {

	public static void findAll() {
		try {
			Reader reader = Resources.getResourceAsReader("mybatis.xml");
			// 工厂
			SqlSessionFactory factory = new SqlSessionFactoryBuilder()
					.build(reader);
			// session
			SqlSession session = factory.openSession();
			List<Stu> ls = session.selectList("stu.findAll");
			for (Stu s : ls) {
				System.out.println(s.getSid() + "	" + s.getSname() + "	"
						+ s.getSsex() + "	" + s.getSbirth());
			}
			// close
			session.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		findAll();
	}

}




原文地址:https://www.cnblogs.com/archermeng/p/7537413.html