0
点赞
收藏
分享

微信扫一扫

MyBatis 详解

寒羽鹿 2022-02-20 阅读 98
java

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeG1oLXN4aC0xMzE0,size_10,color_FFFFFF,t_70,g_se,x_16MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

 

 

  iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。

 

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

 

  再给大家推荐一个比较好的mybatis学习网站:www.mybatis.cn

 

回到顶部

2、MyBatis 入门实例基于xml配置

  ①、创建MySQL数据库:mybatisDemo和表:person

 

1

2

3

create database mybatisDemo;

use mybatisDemo;

create table person(pid int primary key AUTO_INCREMENT, pname varchar(50), page int);

  

 

 

 

  ②、建立一个Java工程,并导入相应的jar包

 

   

 

  相应的 jar 包下载链接:http://pan.baidu.com/s/1skZM09Z 密码:nkt6

 

  

 

   ③、在 MyBatisDemo 工程中添加数据库配置文件 mybatis-configuration.xml

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?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>

<!-- 可以配置多个运行环境,但是每个 SqlSessionFactory 实例只能选择一个运行环境  

  一、development:开发模式

   二、work:工作模式-->

 <environments default="development">

 <!--id属性必须和上面的default一样 -->

    <environment id="development">

    <!--事务管理器

        一、JDBC:这个配置直接简单使用了 JDBC 的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围

        二、MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期

            比如 spring 或 JEE 应用服务器的上下文,默认情况下,它会关闭连接。然而一些容器并不希望这样,

            因此如果你需要从连接中停止它,就可以将 closeConnection 属性设置为 false,比如:

            <transactionManager type="MANAGED">

                <property name="closeConnection" value="false"/>

            </transactionManager>

      -->

      <transactionManager type="JDBC"/>

      <!--dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象源 -->

      <dataSource type="POOLED">

        <property name="driver" value="com.mysql.jdbc.Driver"/>

        <property name="url" value="jdbc:mysql://localhost:3306/mybatisdemo"/>

        <property name="username" value="root"/>

        <property name="password" value="root"/>

      </dataSource>

    </environment>

  </environments>

</configuration>

  

 

  ④、定义表所对应的实体类

 

  

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

package com.ys.bean;

 

public class Person {

    private int pid;

    private String pname;

    private int page;

     

    public int getPid() {

        return pid;

    }

    public void setPid(int pid) {

        this.pid = pid;

    }

    public String getPname() {

        return pname;

    }

    public void setPname(String pname) {

        this.pname = pname;

    }

    public int getPage() {

        return page;

    }

    public void setPage(int page) {

        this.page = page;

    }

    @Override

    public String toString() {

        return "Person [pid=" + pid + ", pname=" + pname + ", page=" + page

                + "]";

    }

}

  

 

  ⑤、定义操作 person 表的sql映射文件personMapper.xml

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<?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.ys.bean.personMapper">

  <!-- 根据 pid 查询 person 表中的数据

       id:唯一标识符,此文件中的id值不能重复

       resultType:返回值类型,一条数据库记录也就对应实体类的一个对象

       parameterType:参数类型,也就是查询条件的类型

   -->

  <select id="selectPersonById"

            resultType="com.ys.bean.Person" parameterType="int">

    <!-- 这里和普通的sql 查询语句差不多,对于只有一个查询条件后面的 #{pid}表示占位符,里面不一定要写pid,写啥都可以,但是不要空着;如果有多个查询条件,则要写pojo类里面的属性 -->

    select * from person where pid = #{pid}

  </select>

   

  <!-- 查询person 表所有数据 -->

  <select id="getAllPerson" resultType="com.ys.bean.Person">

    select * from person

  </select>

   

  <!-- 根据id更新数据 -->

  <update id="updatePersonById" parameterType="com.ys.bean.Person">

    update person set pname=#{pname},page=#{page} where pid = #{pid}

  </update>

   

  <!-- 向 person 表插入一条数据 -->

  <insert id="addPerson" parameterType="com.ys.bean.Person">

    insert into person(pid,pname,page) values(#{pid},#{pname},#{page})

  </insert>

   

  <!-- 根据 pid 删除数据 -->

  <delete id="deletePersonById" parameterType="Long">

    delete from person where pid=#{pid}

  </delete>

   

</mapper>

  

 

  ⑥、向 mybatis-configuration.xml 配置文件中注册 personMapper.xml 文件

 

1

2

3

4

5

<mappers>

       <!-- 注册personMapper.xml文件,

       personMapper.xml位于com.ys.bean这个包下,所以resource写成com/ys/bean/personMapper.xml-->

       <mapper resource="com/ys/bean/personMapper.xml"/>

</mappers>

  如下图所示:

 

 

 

 

 

   ⑦、创建测试类

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

package com.ys.test;

 

import java.io.InputStream;

import java.util.List;

 

import org.apache.ibatis.session.SqlSession;

import org.apache.ibat

举报

相关推荐

0 条评论