MyBatis学习(一)-HelloWorld

一、Mybatis介绍

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。

MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的

POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二、使用MyBatis查询数据库的操作

重点操作步骤:

1)导入相应的jar包

2)编写数据库数据表

3)配置mybatis-config.xml文件以链接数据库

4)编写封装类(和数据表中属性名一致)与测试类

5)编写Mapper操作语句

这里写图片描述

1.Employee.java

package com.mybatis.HelloWorld;

public class Employee {

    private Integer id;
    private String lastname;
    private String email;
    private String gender;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getLastname() {
        return lastname;
    }
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    @Override
    public String toString() {
        return "Employee [id=" + id + ", lastname=" + lastname + ", email=" + email + ", gender=" + gender + "]";
    }


}

2.mybatis-config.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>
    <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/book" />
                <property name="username" value="root" />
                <property name="password" value="WXC196728" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- 
            注册EmployeeMapper.xml文件, EmployeeMapper.xml
            位于com.mybatis.HelloWorld.employeeMapper这个包
            下
        -->
        <mapper resource="EmployeeMapper.xml"/>
    </mappers>

</configuration>
  1. EmployeeMapper.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,namespace的值习惯
    上设置成包名+sql映射文件名,这样就能够保证namespace的值
    是唯一的
    例如namespace="com.mybatis.HelloWorld.employeeMapper.xml"就是
    com.mybatis.HelloWorld(包名)+employeeMapper(employeeMapper.xml
    文件去除后缀)
-->
<mapper namespace="com.mybatis.HelloWorld.employeeMapper">
<!-- 
    在select标签中编写查询的SQL语句, 设置select标签的id属性
    为getUser,id属性值必须是唯一的,不能够重复
        使用parameterType属性指明查询时使用的参数类型,resultType
        属性指明查询返回的结果集类型
    resultType="me.gacl.domain.User"就表示将查询结果封装成一个
    User类的对象返回
    User类就是users表所对应的实体类
    -->
    <!-- 
        根据id查询得到一个user对象
     -->
    <select id="selectEmp" 
        resultType="com.mybatis.HelloWorld.Employee">
        select id,last_name lastname,email,gender from tb_employee where id=#{id}
    </select>
</mapper>

4.MyBatisTest.java测试类

package com.mybatis.test;



import java.io.IOException;
import java.io.InputStream;

import javax.annotation.Resources;

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

import com.mybatis.HelloWorld.Employee;





public class MyBatisTest {


    /*
     *1.根据xml配置文件创建一个SqlSessionFactory对象
     *2. sql映射文件  配置了每一个sql的封装规则
     *3.将sql语句注册在全局配置文件中
     *4.使用sqlSqssionFactory获取到sqlSession对象来增删改查
     */
    @Test
    public void test() throws IOException {
        String resource="mybatis-config.xml";
        InputStream inputStream=org.apache.ibatis.io.Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        //获取sqlSession实例,能直接执行已经映射的sql语句

        SqlSession openSession=sqlSessionFactory.openSession();
        try {
            Employee employee=openSession.selectOne("com.mybatis.HelloWorld.employeeMapper.selectEmp", 1);
            System.out.println(employee);
        }finally {
        openSession.close();
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值