首页 > 其他 > 详细

Mybatis框架 从入门到精通 (二) Mybatis的入门案例及基本运行分析

时间:2020-03-13 19:14:14      阅读:72      评论:0      收藏:0      [点我收藏+]

一、入门案例所需要的准备

1、创建数据库和表

-- 创建数据库
CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;
-- 创建数据表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL COMMENT ‘用户名称‘,
  `birthday` datetime default NULL COMMENT ‘生日‘,
  `sex` char(1) default NULL COMMENT ‘性别‘,
  `address` varchar(256) default NULL COMMENT ‘地址‘,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 添加记录
insert  into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (41,‘老王‘,‘2018-02-27 17:47:08‘,‘男‘,‘北京‘),(42,‘小二王‘,‘2018-03-02 15:09:37‘,‘女‘,‘北京金燕龙‘),(43,‘小二王‘,‘2018-03-04 11:34:34‘,‘女‘,‘北京金燕龙‘),(45,‘传智播客‘,‘2018-03-04 12:04:06‘,‘男‘,‘北京金燕龙‘),(46,‘老王‘,‘2018-03-07 17:37:26‘,‘男‘,‘北京‘),(48,‘小马宝莉‘,‘2018-03-08 11:44:00‘,‘女‘,‘北京修正‘);

2、创建实体类(我们现在创建的实体类要保证实体类属性名与数据库表字段保持一致)

 1 import java.io.Serializable;
 2 import java.util.Date;
 3 
 4 public class User implements Serializable {
 5     private Integer id;
 6     private String username;
 7     private Date birthday;
 8     private String sex;
 9     private String address;
10 
11     @Override
12     public String toString() {
13         return "User{" +
14                 "id=" + id +
15                 ", username=‘" + username + ‘\‘‘ +
16                 ", birthday=" + birthday +
17                 ", sex=‘" + sex + ‘\‘‘ +
18                 ", address=‘" + address + ‘\‘‘ +
19                 ‘}‘;
20     }
21 
22     public Integer getId() {
23         return id;
24     }
25 
26     public void setId(Integer id) {
27         this.id = id;
28     }
29 
30     public String getUsername() {
31         return username;
32     }
33 
34     public void setUsername(String username) {
35         this.username = username;
36     }
37 
38     public Date getBirthday() {
39         return birthday;
40     }
41 
42     public void setBirthday(Date birthday) {
43         this.birthday = birthday;
44     }
45 
46     public String getSex() {
47         return sex;
48     }
49 
50     public void setSex(String sex) {
51         this.sex = sex;
52     }
53 
54     public String getAddress() {
55         return address;
56     }
57 
58     public void setAddress(String address) {
59         this.address = address;
60     }
61 }

3、创建实体类的持久层接口

package com.blog.dao;

import com.blog.domain.User;

import java.util.List;

public interface UserMapper  {
    /**
     * 第一个样例: 查询所有用户
     */
    List<User> findAll();
}

4、配置接口映射文件(UserMapper.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.blog.dao.UserMapper">
    <!-- 配置查询所有用户 -->
    <select id="findAll" resultType="com.blog.domain.User">
        SELECT * FROM user
    </select>
</mapper>

  最终的项目结构图:

   技术分享图片

 

 

 

  •  注意事项:
    • 在Mybatis中Mapper概念相当于我们之前的Dao
    • 映射文件的mapper标签namespase 属性的取值必须是mapper接口的全限定类名
    • 映射配置文件的配置操作,id属性的取值必须是mapper接口的方法名   

二、Mybatis的入门案例 

编写测试类:

package com.blog.test;

import com.blog.dao.UserMapper;
import com.blog.domain.User;
import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MybaitsTest {
    @Test
    public void findAllTest() throws IOException {
        //1.读取配置文件
        InputStream ins = Resources.getResourceAsStream("SqlMapconfig.xml");
        //2.创建SqlSessionFactory 工厂 (工厂模式)
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = builder.build(ins);
        //3.获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.使用SqlSession 创建Mapper的代理对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //5.使用代理对象执行查询
        List<User> users = mapper.findAll();
        for (User user : users) {
            System.out.println(user);
        }
        //6.释放资源
        sqlSession.close();
        ins.close();

    }
}

 

效果如下:

技术分享图片

 

 至此入门案例已完成,我们接下来对运行基本的分析理清一下思路:

技术分享图片

 

 

 这是我根据自己的理解画的图,可能有不对的地方欢迎大家指正。

Mybatis框架 从入门到精通 (二) Mybatis的入门案例及基本运行分析

原文:https://www.cnblogs.com/blackcatbiubiubiu/p/12488174.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!