MyBatis入门教程(一)

MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

       具有以下优点:1)开源的优秀持久层框架;(2SQL语句与代码分离;(3)面向配置的编程;(4)良好支持复杂数据映射;(5)动态SQL

 

         无论是Hibernate或者Mybatis,都可以法相他们有共同点1)从配置文件(通常是XML配置文件中)得到sessionfactory;(2)由sessionfactory产生 session;(3)在session中完成对数据的增删改查和事务提交等;(4)在用完之后关闭session

 

       具体言:每个MyBatis应用程序主要都是使用SqlSessionFactory实例,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

 

java对象和数据库之间有做mapping的配置文件,也通常是xml文件


各种技术在MVC中的位置如下图:


 


 下面贴出源代码:


MyBatisConfig.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>

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC">
      </transactionManager>
      <dataSource type="POOLED">
      <!--下面指定数据库的相关配置信息 -->
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/student"/>  
        <property name="username" value="root"/>   
        <property name="password" value="root"/>   
      </dataSource>
    </environment>
  </environments>

  <!--配置映射 -->
  <mappers>
	    <mapper resource="com/hanchun/map/student.xml"/>
  </mappers>

</configuration>




Student.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="/">

  <select id="findById"  parameterType="int"  resultType="com.hanchun.pojo.Student">
  	  select * from management where id=#{id}
  </select>

</mapper>

Student.java

package com.hanchun.pojo;

/**
 *Student注意和数据库对应的表写成一一对应,否则会返回null值 
 */

public class Student {
	private int id;
	private String stu_name;
	private String stu_age;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStu_name() {
		return stu_name;
	}
	public void setStu_name(String stu_name) {
		this.stu_name = stu_name;
	}
	public String getStu_age() {
		return stu_age;
	}
	public void setStu_age(String stu_age) {
		this.stu_age = stu_age;
	}
}




Test.java

package com.hanchun.test;

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

import com.hanchun.pojo.Student;

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

public class Test{

	public static void main(String[] args) {
		// 注意写成路径的形式
		String resource = "com/hanchun/map/MyBatisConfig.xml";
		Reader reader = null;
		SqlSession session;
		try {
			reader = Resources.getResourceAsReader(resource);
		} catch (IOException e) {
			e.printStackTrace();
		}
		SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
				.build(reader);
		session = sqlMapper.openSession();
		Student temp = session.selectOne("findById", 3);
		System.out.println(temp.getStu_name());
		session.close();
	}
}


最后程序运行结果:



欢迎讨论:http://blog.csdn.net/code_7






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值