Mybatis项目搭建流程

1.引入Mybatis的依赖(在后续测试时注意需要加上mysql的依赖)

使用maven对Mybatis的依赖进行管理,在pom.xml文件中进行添加该依赖


<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.2</version>
</dependency>

2.创建与数据库表中对应的实体类

以Admin类为例

public class Admin {

    private int id;
    private String account;
    private String password;

    public int getId() {
        return id;
    }

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

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

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

    }
}

3.在resources目录下创建一个mybatis的核心配置文件进行并且进行相关的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!--配置属性文件-->
    <!--该处使用properties标签进行properties文件的引入-->

    <!--配置设置-->
    <settings>
        <!--配置日志的具体实现方式-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <!--配置类型别名,例如配置简称-->
    <typeAliases>
        <typeAlias alias="Admin" type="com.yzl.mybatispro.model.Admin"/>
    </typeAliases>

    
    <!-- 环境配置 -->
    <!--default设置配置的数据库环境-->
    <environments default="development">
        <!--可以设置多种数据库环境适应不同的场景,例如本地开发与线上测试-->
        <environment id="development">
            <!--配置事物管理器-->
            <transactionManager type="JDBC"></transactionManager>
            <!--数据源的配置 type配置是否使用数据库连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--定义Sql映射语句-->
    <!--该处使用mapper标签进行映射的配置-->

</configuration>

4.开发一个mybatis-dao层的mapper接口

例如AdminDao,其中定义与数据库交互的方法

public interface AdminDao {

    //单个参数传递,基本类型无需进行绑定
    Admin findAdminById(int id);

    //多个参数传递使用@Param进行绑定
    Admin login(@Param("acc")String account,@Param("pwd")String password);

    //多个参数传递时可以使用引用类型的对象传递
    Admin login1(Admin admin);

    //单个参数传递时,引用类型的参数需要进行绑定
    Admin find(@Param("columns")String columns);
}

5.在resources目录下创建一个对应dao层的sql映射文件例如AdminMapper.xml(此处建议再创建一个目录对所有的映射文件进行管理)

AdminMapper文件中定义sql的语句并且要遵循mybatis的mapper接口的开发规范

注意:       

        namespace 与 mapper 接口的类路径相同

        sql标签中的id属性需要与接口中定义的方法名称一致,parameterType属性与接口中的参数类型一致,resultType属性与接口方法的返回值类型一致,如果是自己定义引用类型此处需要写出全类名

<?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.yzl.mybatispro.dao.AdminDao">

    <select id="findAdminById" parameterType="int" resultType="Admin">
        select id,account,password from admin where id = #{id}
    </select>

    <select id="login" resultType="Admin">
        select id,account,password from admin where account = #{acc} and password = #{pwd}
    </select>

    <select id="login1" parameterType="Admin" resultType="Admin">
        select id,account,password from admin where account = #{account} and password = #{password}
    </select>

    <select id="find"  resultType="Admin">
        select id,account,password from admin where ${columns} = 'admin'
    </select>

</mapper>

在创建完成之后需要在mybatis的全局配置文件中所有的配置标签的最后面添加一个mapper标签将sql映射文件的路径配置进去

    <mappers>
        <mapper resource="mappers/AdminMapper.xml"></mapper>
    </mappers>

6.测试

使用mybatis中提供的SqlSessionFactory接口与SqlSession接口进行测试

         //读取mybatis的配置文件信息
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
        //通过配置文件的信息创建sessionFactory对象,由于sessionFactory对象创建的开销比较大,
        // 所以在一个项目中只创建一个,使用完毕之后不用关闭
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

        //SqlSession对象用于每次与数据库会话时使用,每次与数据库交互时都会创建一次
        SqlSession sqlSession = sessionFactory.openSession();

        //通过SqlSession对象创建一个接口的代理对象,传入该接口的类对象信息被该代理对象获取
        AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
        //通过代理对象可以调用与接口中名称与参数相同的方法,在该接口的映射文件中配置过该方法的名称
        Admin admin = adminDao.findAdminById(1);

        System.out.println(admin);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值