一个卑微的程序员

 

Mybatis基础使用方法

1.首先在数据库中建立一张表

create table login(
    name varchar(20) not null,
    username varchar(20) not null,
    password int not null,
    type varchar(20) not null
)

2.配置mybatis-config.xml文件(即mybatis配置文件)

<?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>-->
<!--        <setting name="LogImpl" value="log4j"/>-->
<!--    </settings>-->
    <!--数据库环境配置,我用的是MySQL-->
    <environments default="mysql">
        <environment id="mysql">
            <!--指定事务管理的类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据库连接源,username和password填本机的账号密码-->
            <dataSource type="UNPOOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
                <property name="username" value="****"></property>
                <property name="password" value="****"></property>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/ys/mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

这里做几个说明:

<transactionManager type="JDBC"></transactionManager>

事务管理的方式有两种,一种是JDBC,它是直接使用了JDBC的提交和回滚机制,另一种是MANGED,是将事务的管理交付给容器来操作。(结合了spring后就不需要配置事务管理器了,之后SSM结合后再来补充)

<dataSource type="UNPOOLED">
  <property name="driver" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="jdbc:mysql://127.0.0.1:3306/job"></property>
  <property name="username" value="****"></property>
   <property name="password" value="****"></property>
</dataSource>

这里没有使用数据库连接池,毕竟是个学习过程,项目不大用连接词反而影响效率,这里的url,username,password切记换成本地数据库的信息。

这里写代码时还有个小插曲,仅代表个人想法,如果有了解实际原因的大佬,多多赐教啦

<settings>
    <setting name="LogImpl" value="log4j"/>
</settings>

这个我注释掉的代码是我在整合log4j时报错:Caused by: org.apache.ibatis.builder.BuilderException: The setting LogImpl is not known.  Make sure you spelled it correctly (case sensitive).

上网查到的原因说是mabtis的jar包过于老旧,换成3.2.7的就可以,可是我使用的jar包是3.4.2的,这里不知道为什么报错,反复尝试后我发现不用配置setting编译器好像会自动识别src目录下的log4j,不知道是不是mybatis在新版本将这个配置默认配置好了。

3.创建一个实体类User.java

package com.ys.pojo;

public class User {
    String name;
    String username;
    int password;
    String type;

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUsername() {
        return username;
    }

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

    public int getPassword() {
        return password;
    }

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

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

4.编写mapper映射文件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.ys.mapper.UserMapper">

    <!--查询所有用户信息-->
    <select id="getAllUser" resultType="com.ys.pojo.User">
        select * from login ;
    </select>

</mapper>

 

5.编写测试代码Test.java

package com.ys.test;

import com.ys.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 java.io.IOException;
import java.io.InputStream;
import java.util.List;


public class Test {
    public static void main(String[] args) throws IOException {
        String resource= "mybatis-config.xml";
        //获取mybatis配置文件
        InputStream is= Resources.getResourceAsStream(resource);
        //实例化工厂对象(这里参考源码发现用构建者设计模式的好处是简化对象实例化过程)
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
        //实例化SqlSession对象,开启与数据库的交互
        SqlSession session=factory.openSession();

        List<User> list=session.selectList("getAllUser");
        for (User user:list){
            System.out.println(user.toString());
        }

    }

}

 

就此,mybatis的基本使用方法如上。

 

 

 

如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处!

posted on 2020-05-15 18:25  一个卑微的程序员  阅读(266)  评论(0编辑  收藏  举报

导航