MyBatis概念和”安装“

Posted hello,vicme!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis概念和”安装“相关的知识,希望对你有一定的参考价值。

MyBatis概念

MyBatis的前身就是iBatis,本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为MyBatis。

MyBatis是一个数据持久层(ORM)框架。

MyBatis是把实体类和sql语句之间建立了映射关系,而Hibernate在实体类和数据库之间建立了映射关系。

 总体来说 MyBatis 主要完成两件事情

  1. 根据 JDBC 规范建立与数据库的连接;
  2. 通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。

MyBatis的优点

  1. 基于SQL语法,简单易学。
  2. 能了解底层组装过程。
  3. SQL语句封装在配置文件中,便于统一管理与维护,降低了程序的耦合度。
  4. 程序调试方便。

MyBatis层次结构

MyBatis安装(环境配置)*.* 例子是最好的笔记

  1. 准配需要的jar包:mybatis-3.2.6.jar和mysql-connector-java-5.1.11-bin.jar

  

  2.创建mybatis-config.xml,并配置数据库环境

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- 环境 -->
 7     <environments default="developments">
 8         <environment id="mysql">
 9             <transactionManager type="JDBC"></transactionManager>
10             <dataSource type="POOLED">
11                 <property name="driver" value="com.mysql.jdbc.Driver"/>
12                 <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydbone"/>
13                 <property name="username" value="root" />
14                 <property name="password" value="199751hwl" />
15             </dataSource>
16         </environment>
17     </environments>
18     
19 </configuration>
View Code

  3.创建一个实体Person.java

package com.model.system;

public class Person {

    private Integer persId;
    private String persName;
    private String persSex;
    private String persHobby;
    
    
    public Person() {}

    public Person(Integer persId, String persName, String persSex, String persHobby) {
        super();
        this.persId = persId;
        this.persName = persName;
        this.persSex = persSex;
        this.persHobby = persHobby;
    }

    public Integer getPersId() {
        return persId;
    }

    public void setPersId(Integer persId) {
        this.persId = persId;
    }

    public String getPersName() {
        return persName;
    }

    public void setPersName(String persName) {
        this.persName = persName;
    }

    public String getPersSex() {
        return persSex;
    }

    public void setPersSex(String persSex) {
        this.persSex = persSex;
    }

    public String getpersHobby() {
        return persHobby;
    }

    public void setpersHobby(String persHobby) {
        this.persHobby = persHobby;
    }

    @Override
    public String toString() {
        return "Person [persId=" + persId + ", persName=" + persName + ", persSex=" + persSex + ", persHobby="
                + persHobby + "]";
    }
    
}
View Code

  4.为实体配置对应的映射文件Person.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.model.system.Person">
    <resultMap type="com.model.system.Person" id="person">
        <result column="persId" property="persId" />
        <result column="persName" property="persName" />
        <result column="persSex" property="persSex" />
        <result column="persHobby" property="persHobby" />
    </resultMap>
    
    <!-- 查询用户通过用户ID -->
    <select id="queryPersonByPersonId" parameterType="java.lang.Integer"
        resultMap="person">
        select * from person where persId = #{persId}
    </select>
    
    <!-- 添加用户通过用户ID -->
    <select id="insertPerson" parameterType="java.lang.String"
        resultMap="person">
        INSERT INTO person(persName,persSex,persHobby) VALUE (#{persName},#{persSex},#{persHobby})
    </select>
</mapper>
View Code

  5.在mybatis-config.xml添加User.xml映射文件

1 <!-- 添加映射文件 -->
2     <mappers>
3         <mapper resource="com/mapper/system/Person.xml" />
4     </mappers>
View Code

 

  6. 调用类(测试类)

 1 package com;
 2 
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 
11 import com.model.system.Person;
12 
13 public class TestQueryPersonById {
14 
15     public static void main(String[] args) throws IOException {
16         
17         // 从XML中创建SqlSessionFactory
18         String resource = "mybatis-config.xml";
19         
20         Reader reader = Resources.getResourceAsReader(resource);
21         SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader, "mysql");
22         // 获取session
23         SqlSession session = ssf.openSession();
24         
25         Person person = session.selectOne("com.model.system.Person.queryPersonByPersonId", 1);
26         // 通过命名空间查找sql
27         System.out.println(person);
28     }
29 }

 

以上是关于MyBatis概念和”安装“的主要内容,如果未能解决你的问题,请参考以下文章

markdown [mybatis参考]关于mybatis #mybatis的一些片段

Android 对话框片段和 onActivityResult

mybatis 存储过程

mybatis学习(39):动态sql片段

mybatis学习笔记(一) for 概念

mybatis动态sql片段与分页,排序,传参的使用