Mybatis学习

来源:互联网 发布:淘宝网店怎样优化 编辑:程序博客网 时间:2024/06/05 23:16

Mybatis简介

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

ORM的基本思想:
无论是通过Hibernate还是Mybatis都有一些共同点

  1. 从配置文件(通常是xml)得到sessionfactory
  2. 由是sessionfactory产生session
  3. 在session中完成对数据的增删改查和事务提交等
  4. 用完之后关闭session
  5. 在java对象和数据之间有做mapping映射,也通常是配置文件

MyBatis实例

1、设置mybatis配置文件Configuration.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>    <typeAliases>         <typeAlias alias="Student" type="com.mybatis.models.Student"/>     </typeAliases>     <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://127.0.0.1:3306/mysql" />            <property name="username" value="root"/>            <property name="password" value="mysql"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource="com/mybatis/models/Student.xml"/>    </mappers></configuration>

2、建立获得SqlSessionFactory的工具类

package com.mybatis.util;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class GetSessionFactory {    private static SqlSessionFactory sessionFactory;    private static Reader reader;    static{        try{            reader = Resources.getResourceAsReader("com/mybatis/config/Configuration.xml");            sessionFactory = new SqlSessionFactoryBuilder().build(reader);        }catch(Exception e){            e.printStackTrace();        }    }    public static SqlSessionFactory getSession(){        return sessionFactory;    }}

3、编写数据库表对应的Java实体类

package com.mybatis.models;public class Student {    private String id;    private String name;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

4、编写实体类对应的映射文件

<?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.mybatis.models.UserMapper">    <select id="selectStudentByID" parameterType="int" resultType="Student">        select * from `student` where id = #{id}    </select></mapper>
0 0
原创粉丝点击