MyBatis快速入门_1

一、MyBatis的前身是iBatis,本是Apache的一个开源的项目

  MyBatis是一个支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。



二、MyBatis是一个数据持久层(ORM)框架,把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。

三、MyBatis小巧,简单易学
        1)基于SQL语法,简单易学
        2)能了解底层组装过程
        3)SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度

        4)程序调试方便


四、MyBatis是开发的步骤 

   2.1、准备开发环境

      1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:

         

     2、添加相应的jar包

  【mybatis】

         mybatis-3.2.2.jar

  【Oracle驱动包】
    ojdbc6.jar

    3、数据表数据如下:

     

      

2.2、使用MyBatis查询表中的数据

  1、在src下添加Mybatis的配置文件mybatis-conf.xml,jdbc.properites,log4j.properties 

        如图所示

      

    jdbc.properties

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:HLX
username=scott
password=hsx

mybatis-conf.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>
	<!-- 引入 jdbc.properties 文件 -->
	<properties resource="jdbc.properties" />
	<environments default="development">
		<environment id="development">
			<!--配置事务管理,采用JDBC的事务管理 -->
			<transactionManager type="JDBC" />
			<!-- 配置数据库连接信息 -->
			<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	<!-- 将mapper文件加入到配置文件中 -->
	

</configuration>

  2、定义表所对应的实体类,

package com.hlx.pojo;

/**
 * POJO plain old java objects ( 普通的Java对象)
 * @author Administrator
 *
 */
public class Userinfos {
	
	//ctrl+shift+Y lower
	//ctrl+shift+X upper
	private int id;                         
	private String uname;                           
	private String  upass;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Userinfos() {
		super();
	}
	public Userinfos(int id, String uname, String upass) {
		super();
		this.id = id;
		this.uname = uname;
		this.upass = upass;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getUpass() {
		return upass;
	}
	public void setUpass(String upass) {
		this.upass = upass;
	}
	@Override
	public String toString() {
		return "Userinfos [id=" + id + ", uname=" + uname + ", upass=" + upass
				+ "]";
	}
	
}

3、定义操作userinfos表的sql映射文件UserinfosMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
  例如namespace="com.hlx.dao.UserinfosMapper"就是com.hlx.dao(包名)+UserinfosMapper(UserinfosMapper.xml文件去除后缀)
 -->
<mapper namespace="com.hlx.dao.UserinfosMapper">

  <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUserinfo,id属性值必须是唯一的,不能够重复
                 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
     resultType="com.hlx.pojo.Userinfos"就表示将查询结果封装成一个User类的对象返回
     User类就是users表所对应的实体类
    -->
     <!-- 
                   根据id查询得到一个userinfos对象
     -->
 <select id="getUserinfo" parameterType="int" resultType="com.hlx.pojo.Userinfos">
   select * from userinfos where id=#{id}
 </select>
</mapper>

4、在mybatis-conf.xml文件中注册UserinfosMapper.xml文件

<!-- 将mapper文件加入到配置文件中 -->
	<mappers>
     <mapper resource="com/hlx/dao/UserinfosMapper.xml"/>
   </mappers>

5、测试代码:执行定义的select语句

package com.hlx.test;

import java.io.InputStream;

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 org.apache.log4j.Logger;
import org.junit.Test;

import com.hlx.pojo.Userinfos;
/**
 * 测试类
 * @author Administrator
 *
 */
public class UserinfoTest {
    //日志对象
	private Logger logger = Logger.getLogger(UserinfoTest.class);

	@Test
	public void findById() {

		// mybatis的配置文件
		String resources = "mybatis-config.xml";

		SqlSession session = null;

		try {
			// 1.使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
			InputStream is = Resources.getResourceAsStream(resources);
			

			// 2 创建sqlSessionFactory对象(完成对配置文件的读取)
			SqlSessionFactory factory = new SqlSessionFactoryBuilder()
					.build(is);

			// 3 创建sqlSession
			session = factory.openSession();
			// 4 调用mapper文件来进行数据操作(调用之前,mapper文件需要先加入mybatis-config.xml配置文件中)
			/**
			 * 映射sql的标识字符串, com.hlx.dao.UserinfosMapper是userinfosMapper.
			 * xml文件中mapper标签的namespace属性的值,
			 * getUserinfo是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
			 */
			String statementString = "com.hlx.dao.UserinfosMapper.getUserinfo";

			// 执行查询返回一个唯一user对象的sql
			Userinfos userinfos = session.selectOne(statementString,3);
			
			logger.debug("查询数据为:");

			System.out.println(userinfos);

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		} finally {
			session.close(); // 关闭
		}

	}
}
执行结果如下:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值