mybatis学习第一次使用

来源:互联网 发布:网络进度计划编制软件 编辑:程序博客网 时间:2024/06/05 23:48

mybatis学习第一天

  • 1.使用IDEA创建一个maven工程
  • 2.去百度mvn r.. https://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.4 查找mybatits的maven包的结构
  • 3.http://www.mybatis.org/mybatis-3/zh/getting-started.html 跟着这个教程简单的实践一下如何简单的了解使用mybatits
  • 4.使用navicat 创建一个mybatis的数据库,创建一个简单的表进行实验

添加mybatis maven 配置

        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.4.4</version>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>        </dependency>        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.40</version>        </dependency>

创建数据库mybatis与之创建一个表user和对应的实体的文件信息

Create TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `userName` varchar(50) ,  `userAge` int(11) ,  `userAddress` varchar(200),  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;Insert INTO `user` VALUES ('1', 'wangji', '25', 'guizhou');

创建与之对应的实体User

package com.jet.module.UserManage.entity;/** * Created by JetWang on 2017/7/19. */public class User {    private int id;    private String name;    private Integer age;    private String address;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                ", age=" + age +                ", address='" + address + '\'' +                '}';    }}

配置mapping和Dao接口

说明一下,这里的mapping有点类似于Hibernate中Dao的实现,只是这个实现是在配置文件中去书写.

package com.jet.module.UserManage.dao;import com.jet.module.UserManage.entity.User;/** * Created by JetWang on 2017/7/19. */public interface UserDao {    User findById(Integer id);}

mapping,可以想象为Dao具体的实现

<?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.jet.module.UserManage.dao.UserDao">    <!-- 1.命名空间是唯一的,根据你的Dao接口来定制的,Select标签的id对应我们的方法上的函数名称-->    <!-- 这里的#{id},相当于传递进来的参数,你可以想象成map中的一个key,或者一个JavaBean中的对应的属性名称-->    <select id="findById" parameterType="int" resultType="User">       select id,userName as name,userAge as age,userAddress as address from `user` where id = #{id}    </select></mapper>

mybatis-config的属性配置直接去官方copy下来,对于学习来说,基本的配置属性基本够用了

<?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>    <typeAliases>        <typeAlias alias="User" type="com.jet.module.UserManage.entity.User"/><!--别名,可以在mapping中直接使用的-->    </typeAliases>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC"/>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>                <property name="username" value="root"/>                <property name="password" value="wang"/>            </dataSource>        </environment>    </environments>    <mappers>        <!--查找映射文件信息-->        <mapper resource="user-mapping.xml"/>    </mappers></configuration>

这里写图片描述

然后就是写个测试,测试一下我们这个查找通过ID能不能成功。

基本的步骤就是获取配置文件中的属性来创建Session工程,然后获取一个Session,就可以通过命名空间进行查询或者通过Mapper进行查询。和JDBC中的Connection有点类似,与Hibernate中的Session一样的道理。(怎么去获取配置文件之类的官方文档很详细)

 import com.jet.module.UserManage.dao.UserDao;import com.jet.module.UserManage.entity.User;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Assert;import org.junit.Test;import java.io.IOException;import java.io.InputStream;/** * Created by JetWang on 2017/7/19. */public class UserDaoTest {    @Test    public void findByIdTest() {        InputStream inputStream = null;        SqlSessionFactory sqlSessionFactory = null;        SqlSession sqlSession = null;        try {            inputStream = org.apache.ibatis.io.Resources.getResourceAsStream("mybatis-config.xml");            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);            sqlSession = sqlSessionFactory.openSession();            //这里面向接口的,mybatis使用动态代理给你生成实现类,不需要DaoImpl            UserDao userDao = sqlSession.getMapper(UserDao.class);            User user = userDao.findById(1);          /*          通过命名空间进行查询          User user = sqlSession.selectOne("com.jet.module.UserManage.dao.UserDao.findById",1);          */            Assert.assertNotNull(user);            System.out.println(user.toString());        } catch (IOException e) {            e.printStackTrace();        } finally {            if (inputStream != null) {                try {                    inputStream.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (sqlSession != null) {                sqlSession.close();            }        }    }}

好好动起来,可以了

这里写图片描述

地址: https://github.com/WangJi92/mybatits-study/blob/master/mybatis-study/study-1

原创粉丝点击