当前位置:   article > 正文

MyBatis框架-学习笔记 一 入门_mybatis框架学习笔记

mybatis框架学习笔记

MyBatis框架概述:

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
MyBatis官网:http://www.mybatis.org/mybatis-3/
在这里插入图片描述

MyBatis框架使用步骤:

1.创建maven工程,导入对应依赖坐标

主要包括mybatis依赖,mysql驱动依赖,单元测试依赖

pom.xml

<!--MyBatis坐标-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.5</version>
    </dependency>
    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
    </dependency>
    <!--单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

2.创建对应User实体类,数据库user表,属性与数据库表对应

User.java

public class User implements Serializable{
    private int id; //用户id
    private String username;// 用户姓名
    private String password;// 密码
}
  • 1
  • 2
  • 3
  • 4
  • 5
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,-- 自增主键
  `username` varchar(255) ,
  `password` varchar(255) ,
  PRIMARY KEY (`id`) -- 主键
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.创建Dao接口 (UserDao)

UserDao 接口就是我们的持久层接口(也可以写成 UserMapper)

public interface UserDao {
		//自定义的方法,方法名与后面xml映射文件中SQL语句的id保持一致
    public List<User> findAll();
}
  • 1
  • 2
  • 3
  • 4

4. 创建UserDao.xml映射文件

文件名必须与前面定义的接口名相同,UserDao

<?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">
<!--namespace属性: 接口类的全限定名-->
<mapper namespace="com.dao.UserDao">
    <!--select标签: 查询
        id属性: UserDao中的方法名,该方法会执行这条SQL语句
        resultType属性: 方法返回值类型(如果是list,直接写实体类的全限定名)
        标签体: sql语句
    -->
    <select id="findAll" resultType="com.bean.User">
        select * from user;
    </select>
</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5.创建 mybatis-config.xml 配置文件

mybatis-config.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>
    <settings>
    		<!--控制台打印SQL语句-->
        <setting name="logImpl" value="STDOUT_LOGGING" />
    </settings>
    <!--environments标签: 用来配置数据库环境   default属性: 用来指定使用哪个环境-->
    <environments default="development">
        <!--environment标签: 配置数据库环境  id属性:为当前环境指定唯一标识,可以配置多个数据库环境-->
        <environment id="development">
            <!--transactionManager标签: 配置Mybatis事务  type:用来指定事务的类型  JDBC:使用的是JDBC的事务-->
            <transactionManager type="JDBC"/>
            <!--dataSource标签: 用来配置数据源-->
            <!--type属性: 用来指定数据源的类型   POOLED: 表示使用连接池(mybatis内置的)  UNPOOLED:表示不使用连接池-->
            <dataSource type="POOLED">
                <!--配置连接参数-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/db01"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
        
    </environments>

    <mappers>
        <!--引入mapper/dao包===批量引入映射文件-->
        <package name="com.mapper"/>
    </mappers>
</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
  • 32
  • 33
  • 34

6 测试

public class Demo01 {
    @Test
    public void Test01() throws Exception {
        //1. 读取mybatis-config.xml获得输入流
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        //2.创建SqlSessionFactory
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = builder.build(is);
        //3. 获得SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.获得UserDao代理对象
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        //5.调用方法
        List<User> list = userDao.findAll();
        //打印查询到的数据
        System.out.println(list);
        //6.释放资源
        sqlSession.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

7 注意事项

Mapper接口开发需要遵循以下规范:

  1. Mapper.xml文件的文件名尽量和mapper(Dao)接口的名字一样

  2. Mapper.xml文件的文件名尽量和mapper(Dao)接口的名字一样

  3. Mapper.xml文件中的namespace必须和mapper(Dao)接口的全限定名相同(包名+类名)

  4. Mapper.xml文件中select,update等的标签id的值必须和mapper(Dao)接口中对应的方法名相同

  5. Mapper.xml文件中select,update等的标签的parameterType必须和mapper(Dao)接口的方法的形参类型对应,如果不对应需要手动设置别名,一般parameterType属性可以省略不写

  6. Mapper.xml文件中select,update等的标签的resultType必须和mapper(Dao)接口的方法的返回值类型对应,否则需要在mapper.xml使用resultMap标签设置结果映射

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号