MyBatis快速使用

MyBatis速食

一:创建数据库
 CREATE DATABASE `mybatis`;
 USE `mybatis`;
 DROP TABLE IF EXISTS `user`;
 CREATE TABLE `user`(
 `id` int(20) NOT NULL,
 `name` varchar(30) NOT NULL,
 `pwd` varchar(30) NOT NULL,
 PRIMARY KEY (`id`)
 )ENGINE=INNODB DEFAULT CHARACTER SET utf8;INSERT INTO `user`(`id`,`name`,`pwd`)VALUES(1,'张三','123'),(2,'李四','1234'),(3,'王五','12345');
二:导入MyBatis相关 jar 包

使用 Maven 来构建项目,将依赖代码置于 pom.xml 文件中。

<!--导入依赖-->
 <dependencies>
     <!--mybatis-->
     <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>3.5.4</version>
     </dependency>
     <!--MySQL-->
     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.15</version>
     </dependency>
 </dependencies>
三:mybatis配置文件

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。创建mybatis-config.xml文件,在里面添加配置文件内容。XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器。

 <?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>
     <environments default="development">
         <environment id="development">
             <transactionManager type="JDBC"/>
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8"/>
                 <property name="username" value="root"/>
                 <property name="password" value="123456"/>
             </dataSource>
         </environment>
     </environments>
     <!--注册mapper(mapper.xml所在地址)-->
     <mappers>
         <mapper resource="mybatis/node0/dao/UserMapper.xml"/>
     </mappers>
 </configuration>

通过在pom.xml中添加下面的build文件,防止maven中配置文件无法生效和导出。

 <build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>
四:编写mybatis工具类

从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

 //构建 SqlSessionFactory实例
 private static SqlSessionFactory sqlSessionFactory;
  static {
     try {
         String resource = "mybatis-config.xml";
         InputStream inputStream = Resources.getResourceAsStream(resource);
         sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
     } catch (IOException e) {
         e.printStackTrace();
     }
 } 
//获取SqlSession连接
 public static SqlSession getSession(){
     return sqlSessionFactory.openSession();
 }
五:创建实体类
 public class User {
    private int id;  
    private String name;   
    private String pwd;
    //省略get,set方法(或者使用Lombok注解)   
 }
六:创建mapper接口
//定义一个Mapper接口
 public interface UserMapper {
     List<User> selectUser();
 }
七:Mapper.xml配置文件

MyBatis 提供的所有特性都可以利用基于 XML 的映射语言来实现,一个基于 XML 映射语句的示例,它应该可以满足 SqlSession 的调用。

 <?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接口,不能填错-->
 <mapper namespace="mybatis.node0.dao.UserMapper">
     <select id="selectUser" resultType="mybatis.node0.pojo.User">
       select * from user
     </select>
 </mapper>

文档在命名空间 “mybatis.node0.dao.UserMapper” 中定义了一个名为 “selectUser” 的映射语句。它可以直接映射到在命名空间中同名的映射器类,并将已映射的 select 语句匹配到对应名称、参数和返回类型的方法。即可以在对应的映射器接口调用方法。

 UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
 List<User> users=userMapper.selectUser();
八:Junit 包测试
@Test
 public void selectUser(){
     //每个线程都应该有它自己的 SqlSession 实例。
     SqlSession sqlSession= MybatisUtils.getSession();
     UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
     List<User> users=userMapper.selectUser();
     //for each打印数据
     for (User user: users){
         System.out.println(user);
     }
     //关闭
     sqlSession.close();
 }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值