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>

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

User.java

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

3.创建Dao接口 (UserDao)

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

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

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>

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>

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();
    }
}

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标签设置结果映射

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值