Mybatis上路_01-基本流程

本文详细介绍了一个使用MyBatis框架进行数据库操作的实战案例,包括数据库准备、JavaBean创建、映射文件配置、Configuration.xml配置及接口编程等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据库准备:


    1)创建数据库:

CREATE DATABASE DB_MYBATIS CHAR SET UTF8;
USE DB_MYBATIS;


    2)创建表单:

CREATE TABLE TB_PERSON(
    id INT PRIMARY KEY,
    name VARCHAR(32),
    country VARCHAR(60),
    address VARCHAR(60) 
);


    3)插入条目:

INSERT INTO tb_person VALUES (1, "Michael", "USA", "Holliday");
INSERT INTO tb_person VALUES (2, "Michael2", "USA2", "Holliday2");


2.使用MyEclipse创建web项目:


    1)导入jar包:


    2)创建JavaBean:

package cn.cvu.domain;

public class BeanPerson {

    private Integer id;
    private String name;
    private String country;
    private String address;

    public Integer getId() {...}
    public void setId(Integer id) {...}
    public String getName() {...}
    public void setName(String name) {...}
    public String getCountry() {...}
    public void setCountry(String country) {...}
    public String getAddress() {...}
    public void setAddress(String address) {...}

    public BeanPerson() {
    }

    public BeanPerson(Integer id, String name, String country, String address) {
        this.id = id;
        this.name = name;
        this.country = country;
        this.address = address;
    }

    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", country=" + country
                + ", address=" + address + "]";
    }
}


    3)配置JavaBean映射文件:

此文件和JavaBean放在同一目录下,且名称相同。

<?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=“自定义的操作的集合的空间名称” -->
<mapper namespace="cn.cvu.mybatis.query">

    <!-- 查询    id=“自定义的方法名”
                paramenterType=“要操作的列的数据类型”
                resultType=“对应的表单” -->
    <select id="selectPersonByID" parameterType="int" resultType="tb_person">

    <!-- 查询语句。#{id}为参数,id不是固定的写法-->
        select * from tb_person where id = #{id}
    </select>

    <select id="selectPersonByName" parameterType="String" resultType="tb_person">
        select * from tb_person where name = #{name}
    </select>
</mapper>


    4)配置Mybatis的Configuration.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>
    <typeAliases>
        <!-- alias=“JavaBean映射文件返回的对应的表单名称” type=“JavaBean全名” -->
        <typeAlias alias="tb_person" type="cn.cvu.domain.BeanPerson" />
    </typeAliases>

    <!-- 环境 default=“开发环境” -->
    <environments default="development">
        <environment id="development">
            <!-- 连接类型 type=“JDBC” -->
            <transactionManager type="JDBC" />
            <!-- 数据源 type=“连接池” -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_mybatis" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- 映射资源 resource=“JavaBean配置文件” -->
        <mapper resource="cn/cvu/domain/BeanPerson.xml" />
    </mappers>
</configuration>


    5)测试:

package cn.cvu.test;

import java.io.Reader;
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.Test;
import cn.cvu.domain.BeanPerson;

public class TestMybatis {
/**
     * 每次查询一条数据
     * @throws Exception
*/
    @Test
    public void testQueryOne() throws Exception {
           //1。 创建读取器。读取器=Mybatis资源.得到资源读取器(Mybatis配置文件)
           Reader reader = Resources.getResourceAsReader("Configuration.xml");
           //2。创建SQL会话工厂。SQL会话工厂=new SQL会话工厂建造器().创建(读取器)
           SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
           //3。 创建SQL会话。SQL会话=SQL会话工厂.打开会话
           SqlSession session = sqlSessionFactory.openSession();
           //4。 查询。返回JavaBean=SQL会话.查询一条(BeanPerson.xml中定义的操作集命名空间.操作,参数)
           BeanPerson person = (BeanPerson) session.selectOne("cn.cvu.mybatis.query.selectPersonByID", 1);
           System.out.println("ID:" + person.getId());
           System.out.println("姓名:" + person.getName());
           System.out.println("国家:" + person.getCountry());
           System.out.println("地址:" + person.getAddress());
           //------------------------------------------------------------
           person = (BeanPerson) session.selectOne("cn.cvu.mybatis.query.selectPersonByName", "Michael2");
           System.out.println("\nID:" + person.getId());
           System.out.println("姓名:" + person.getName());
           System.out.println("国家:" + person.getCountry());  System.out.println("地址:" + person.getAddress());
           session.close();
    }
}


3.使用接口编程:


    1)编写接口:

package cn.cvu.service;
import cn.cvu.domain.BeanPerson;
//接口,定义操作
public interface IOperationBean {
    //使用ID查询
    public BeanPerson selectPersonByID(Integer id);
    //使用name查询
    public BeanPerson selectPersonByName(String name);
}


    2)修改BeanPerson.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">

<!-- 命名空间 namespace=“接口的全路径” --> 
<mapper namespace="cn.cvu.service.IOperationBean">
    <!-- 查询    id=“IoperationBean接口中的方法名”
                paramenterType=“要操作的列的数据类型”
                resultType=“对应的表单” --> 
    <select id="selectPersonByID" parameterType="int" resultType="tb_person">
        <!-- 查询语句。#{id}为接口中selectPersonByID方法的参数-->
        select * from tb_person where id = #{id}
    </select>
    <select id="selectPersonByName" parameterType="String" resultType="tb_person">
        <!-- 查询语句。#{name}为接口中selectPersonByName方法的参数-->
        select * from tb_person where name = #{name}
    </select>
</mapper>


    3)测试:

package cn.cvu.test;

import java.io.Reader;
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.Test;
import cn.cvu.domain.BeanPerson;
import cn.cvu.service.IOperationBean;

public class TestMybatis {
/**
     * 每次查询一条数据
     * @throws Exception
*/
    @Test
    public void testQueryOne() throws Exception {
        //1。 创建读取器。读取器=Mybatis资源.得到资源读取器(Mybatis配置文件)
        Reader reader = Resources.getResourceAsReader("Configuration.xml");
        //2。创建SQL会话工厂。SQL会话工厂=new SQL会话工厂建造器().创建(读取器)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //3。 创建SQL会话。SQL会话=SQL会话工厂.打开会话
        SqlSession session = sqlSessionFactory.openSession();
        //4。 创建接口。接口=SQL会话.得到映射(接口.class)
        IOperationBean operationBean = session.getMapper(IOperationBean.class);
        //5。 查询。返回JavaBean=接口.使用ID查询(Integer)
        BeanPerson person = operationBean.selectPersonByID(1);
        System.out.println("ID:" + person.getId());
        System.out.println("姓名:" + person.getName());
        //-----------------------------------------------------------------
        //查询。返回JavaBean=接口.使用name查询(String)
        person = operationBean.selectPersonByName("Michael2");
        System.out.println("\nID:" + person.getId());
        System.out.println("姓名:" + person.getName());
        session.close();
    }
}

-end

转载于:https://my.oschina.net/vigiles/blog/123995

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值