Mybatis快速入门—新手Mybatis详细配置步骤介绍

新手学习Mybatis笔记—Mybatis配置

第一次接触Mybatis,记录自己的学习过程,首先通过查阅一些资料得到对Mybatis的以下几点理解

一、 Mybatis个人理解

  • Mybatis是一种针对SQL查询映射ORM持久层框架
  • 配置过程与Hibernate相类似
  • Mybatis消除了繁琐的JDBC代码编码以及参数设置过程
  • 相比较Hibernate,Mybatis更为轻量级。两者具体的比较,之后会记录

二、 Mybatis配置详解

1.准备Eclipse创建测试Mybatis的项目,最好是JavaWeb项目。在创建的过程中注意:
一是要创建WEB-INF下的classes文件夹(src下的源代码编译后存放在这里的字节码文件:xxxx.class等)
二是要创建WEB-INF下的web.xml文件(用于配置拦截器,过滤器以及servlet等的xml配置文件),具体如下图所示,创建过程中就可以创建两个classes文件与web.xml文件:

Mybatis配置

这里写图片描述

最后我们会看到目录下将有我们所要创建的文件及MybatisDemo的javaweb项目,这都是必须的,这只是对于菜鸟新手而言,其他的可以跳过此步。

注意:图中classes文件夹可能不会显示,这时候你可以百度怎么显示,但我记得是Project Exploer右上角倒三角下的Customize view-去掉java output folders前面的勾即可
这里写图片描述

2.准备jar包:mybatis-3.2.7.jar+mysql-connection-java-5.1.1.44-bin.jar复制到lib文件下,Libraries下自然就会多出Web App Libraries存放jar包的文件,不需要Add to build path
这里写图片描述

3.创建数据库和表,我用到的是Mysql+navicat
SQL脚本使用入如下:

create database mybatis_demo;
use mybatis_demo;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(10),age INT);
INSERT INTO users(NAME, age) VALUES('Zhangsan', 21);
INSERT INTO users(NAME, age) VALUES('Lisi', 22);

这里是创建好的用来简单测试数据库mybatis_demo下的表users
这里写图片描述

4.创建conf.xml文件,在src下右键new->other->xml file->创建conf.xml
复制代码覆盖xml文件,注意我使用的端口是3308,一般都是3306

<?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>
<!--一个environment代表一个环境变量,也就是一个基于JDBC的数据库连接,有多个JDBC就有多个environment  -->
    <environments default="development">
        <environment id="development">
        <!--transactionManager声明事务管理器:基于JDBC  -->
            <transactionManager type="JDBC" />
            <!--dataSource:声明数据源,数据源的类型有NOPOOLED ,POOLED ,JIDN(开发和测试用POOLED)  -->
            <dataSource type="POOLED">
                <!-- property:配置数据库连接JDBC的一些属性信息 -->
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3308/mybatis_demo?useSSL=true" />
                <property name="username" value="root" />
                <property name="password" value="1234" />
            </dataSource>
        </environment>
    </environments>  
    <mappers>
        <mapper resource="com/mybatis/userMapper.xml"/>
    </mappers>
</configuration>

注意一定要加上以下的mappers资源代码,不然会出现Cause: java.lang.IllegalArgumentException: Mapped Statements collection………错误

 <mappers>
        <mapper resource="com/mybatis/userMapper.xml"/>
 </mappers>

5.创建实体类User:在src下创建com.mybatis包,之后创建User类:
代码如下:

package com.mybatis;

/**
 * @author Lijian
 * 
 */
public class User {

    // 这里的属性必须跟数据库中字段要一致,必须对应
    private int id;
    private String name;
    private int age;
    /*
     * 这里getter/setter方法以及toString都可以自动生成
     */
    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
}

6.创建映射文件userMapper.xml,一开始学习阶段跟实体类User在同一个包下(类似于:Hibernate中的映射文件配置)

<?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:指明userMapper映射文件的所在位置,一般都是:包名(com.mybatis)+映射文件名(userMapper)  -->
<mapper namespace="com.mybatis.userMapper">
    <!-- 
         1.parameterType属性指明查询时用到的参数类型:即id字段的类型
         2.resultType属性指明查询返回的结果集类型:即返回一个User实体对象
         3.resultType="com.mybatis.User"就表示将查询结果封装成一个User类的对象返回
         4.在select标签中可以写SQL查询语句select * from users where id=#{id}
    -->
    <select id="getUser" parameterType="int"  resultType="com.mybatis.User">
        select * from users where id=#{id}
    </select>
</mapper>

7.创建TestDemo

package com.mybatis;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestDemo {

    public static void main(String[] args) throws IOException {

        String resource = "conf.xml";
        //使用类加载器getClassLoader()加载mybatis的配置文件
        InputStream in = TestDemo.class.getClassLoader().getResourceAsStream(resource);
        //创建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in);
        //从sessionFactory里打开一个会话连接,即连接一个数据库
        SqlSession session = sessionFactory.openSession();
        /*
         * 映射sql的标识字符串statement:
         * com.mybatis.userMapper是mapper映射文件中唯一的标识符namespace
         * selectById是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL语句
         */
        String statement = "com.mybatis.userMapper.selectById";
        //执行查询返回数据库第1条记录 :也可以使用selectList
        User user=session.selectOne(statement,1);     
        System.out.println(user);
        //执行查询返回数据库第2条记录 
        User user2=session.selectOne(statement,2);     
        System.out.println(user2);        
    }
}

接下来运行TestDemo->Run as->Java Application
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值