MyBatis 基础

配置:

pom.xml 文件中添加依赖   mysql驱动 ,  mybatis  jar包  ,junit

 <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>

    </dependencies>

Resources文件下:

mybatis.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节点
        里面有配置信息 分别是环境和映射
         其中环境里有datasource,里面有我们熟悉的连接数据库的四个字符串
-->
<configuration>
    <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://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

UserMapper.xml   :   针对User类操作的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,
    每个方法对应自己的sql语句,每个sql语句对应有一个id
    整个项目中所有的namespace.id必须是唯一的
-->
<mapper namespace="UserMapper">
    <select id="selectUser" resultType="com.qfwh.pojo.User">
        select * from tb_user
    </select>
    <select id="selectUserCount" resultType="int">
        select count(*) from tb_user
    </select>
    <select id="select1" resultType="com.qfwh.pojo.User">
        select * from tb_user limit 3
    </select>
    <select id="select2" resultType="com.qfwh.pojo.User">
        select * from tb_user limit #{pageSize}
    </select>
    <select id="select3" resultType="com.qfwh.pojo.User">
        select * from tb_user limit #{startIndex},#{pageSize}
    </select>

    <insert id="saveUser" >
        insert into tb_user values (null,#{username},#{password});
    </insert>


</mapper>

com.qfwh.pojo.User

package com.qfwh.pojo;

public class User {
   private int id;
   private String username;
   private String password;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public User(int id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public User() {
    }
}

//测试类

com.qfwh.test.TestUser

package com.qfwh.test;

import com.qfwh.pojo.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.After;
import org.junit.Before;
import org.junit.Test;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestUser {
    SqlSession session = null;
    SqlSessionFactory sf = null;
    @Before
    public void setUp(){
        try {
            sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
            session = sf.openSession(true);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @After
    public void tearDown(){
        if (session!=null){
            session.close();
            session = null;
        }
    }

    /**
     * 测试类:  查询所有用户
     */
    @Test
    public  void testGetAllUsers(){


        /**
         *  1.  使用mybatis的配置文件以及SqlSessionFactoryBuilder建造者模式创建SqlSessionFactory对象
         *  2.  使用SqlSessionFactory对象的openSession()方法来得到一个SqlSession对象,用该对象即可完成对象的所有的crud操作
         *  3.  使用SqlSession对象来完成crud操作
         *  4.  关闭资源
         *
         */

        /**
         * session的crud方法("namespace.id");整个项目中的namespace.id必须唯一
         */
        try {

             sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
             session = sf.openSession();

            List<User> users = session.selectList("UserMapper.selectUser");
            for (User u : users) {
                System.out.println(u);
            }




        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (session!=null){
                session.close();
                session = null;
            }
        }

    }

    /**
     * 测试类:查询所有的用户的数量
     */
    @Test
    public void testGetAllUsersCount(){

        Integer count = session.selectOne("UserMapper.selectUserCount");
        System.out.println(count);

    }

    @Test
    public void testGetUsersByPage1(){
        List<User> users = session.selectList("UserMapper.select1");

        for (User u : users) {
            System.out.println(u);
        }
    }

    @Test
    public void selectUsersByPage2(){
        List<User> users = session.selectList("UserMapper.select2",3);

        for (User u : users) {
            System.out.println(u);
        }
    }

    @Test
    public void selectUsersByPage3(){
        Map<String,Integer> map = new HashMap<>();
        map.put("startIndex",2);
        map.put("pageSize",3);
        List<User> users = session.selectList("UserMapper.select3",map);
        for (User u : users) {
            System.out.println(u);
        }
    }

    @Test
    public void saveUser(){
        User user = new User();

        user.setUsername("babe");
        user.setPassword("5201314");

        int insert = session.insert("UserMapper.saveUser", user);
        System.out.println(insert);
    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值