关闭

10、mybatis的接口编程

标签: mybatis
23人阅读 评论(0) 收藏 举报
分类:

在应用中,操作数据库时,我们可以定义操作数据库的接口,然后让mybatis的sql的映射文件动态实现接口中的方法,在程序中只需要调用接口的方法就可以操作数据库。示例如下

1、首先导入mybaits的jar包和数据库的jar包,此地用的是

mybatis-3.1.1.jar
mysql-connector-java-5.1.7-bin.jar

2、创建对应数据库表users的实体类User

package com.lzj.mybaits.bean;

public class User {

    private int id;
    private String name;
    private float age;

    public User() {
        super();
    }

    public User(int id, String name, float age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    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 float getAge() {
        return age;
    }

    public void setAge(float age) {
        this.age = age;
    }

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

}

3、创建一个接口UserDao,调用接口中的getUser方法,传入一个id值就可以读取数据库。

package com.lzj.mybatis.dao;

import com.lzj.mybaits.bean.User;

public interface UserDao {

    public User getUser(int id);

}

4、创建sql的映射文件UserDaoMapper.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为UserDao接口的全类名-->
<mapper namespace="com.lzj.mybatis.dao.UserDao">

    <!--getUser要与UserDao接口中的接口方法名一致-->
    <!--parameterType和resultType指定的类型除了基本类型外,自定义的类要用全类名-->
    <select id="getUser" parameterType="int" resultType="com.lzj.mybaits.bean.User">
        select * from users where id=#{id}
    </select>

</mapper>

5、创建mybatis的配置文件conf.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/lzj_database" />
                <property name="username" value="root" />
                <property name="password" value="lzjlzj" />
            </dataSource>
        </environment>
    </environments>

    <!-- 由于是在src下创建的conf文件夹,然后在conf文件夹下创建的UserMapperDao.xml映射文件,所以此地写映射文件的位置是应写conf/UserDaoMapper.xml,千万不要写/conf/UserDaoMapper.xml,否则会提示找不到UserDaoMapper.xml文件 -->
    <mappers>
        <mapper resource="conf/UserDaoMapper.xml"/>
    </mappers>
</configuration>

6、创建测试方法

package com.lzj.mybatis.example;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.lzj.mybaits.bean.User;
import com.lzj.mybatis.dao.UserDao;

public class MybaitsTest {

    public static void main(String[] args) {
        String resource = "conf.xml";
        InputStream in = MybaitsTest.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);   
        SqlSession session = factory.openSession();
        /*由于UserDaoMapper.xml动态的实现了UserDao接口,所以此地通过接口去获取对应的Mapper文件,然后去调用Mapper文件中的getUer方法*/
        UserDao userDao = session.getMapper(UserDao.class);
        int id = 1;
        User user = userDao.getUser(id);
        System.out.println(user);
        session.close();
    }

}

工程目录如下:
这里写图片描述

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Mybatis系列(六)接口式编程

Mybatis系列之接口式编程 引言 在前面的文章《Mybatis系列之简单示例》曾有一段代码涉及到了接口式编程,当时并没有展开阐述,今天我们单独把这一段拿出来表一表。 在讲Mybatis接口式...
  • chris_mao
  • chris_mao
  • 2015-10-01 00:33
  • 7736

Mybatis面向接口编程

在使用Mybatis的时候,我们通过sqlSession的各种方法和数据交互,比如查询我们是通过sqlSession.selectList("Namespace.sqlId",paramObj),对于...
  • dyy_gusi
  • dyy_gusi
  • 2015-10-16 16:52
  • 2161

Mybatis实现【7】 --基于接口编程的原理

MyBatis可以仅通过申明接口并在annotation上注明sql,即可省略配置文件的编写。 这里Mapper是不需要实现类,我们来探究下MyBatis是如何做这层代理的。 bean的注入 1...
  • timchen6824
  • timchen6824
  • 2014-06-18 16:31
  • 5794

Mybatis3源码分析(10)-Executor接口实现方式

之前介绍过,Executor接口定义了对象操作库操作的基本方法:select/update/insert/delete/commit/rollbak/close。Mybatis对Executor接口的...
  • ashan_li
  • ashan_li
  • 2015-12-20 22:27
  • 962

Mybatis接口编程方式实现增删改查

  • 2015-05-13 09:26
  • 5KB
  • 下载

Mybatis3和Spring4基于接口编程例子源代码

  • 2015-11-17 10:23
  • 25KB
  • 下载

Mybatis接口编程方式实现增删改查

Mybatis接口编程方式实现增删改查
  • Evankaka
  • Evankaka
  • 2015-05-12 16:11
  • 6403

MyBatis 实战-使用 maven 构建(2)- 面向接口编程

说明:这一节我们面向接口编程,MyBatis 面向接口编程的好处是,减少了面向字符串编程出错的几率。 注意事项: (1)配置文件中还是要写上 xml 文件的地址: 如果没有写,MyBat...
  • lw_power
  • lw_power
  • 2015-03-28 09:52
  • 756

MyBatis+Spring 基于接口编程的原理分析

对于整合Spring及Mybatis不作详细介绍,可以参考: MyBatis 3 User Guide Simplified Chinese.pdf   或者 mybatis_spring整合——...
  • oBuXuKu
  • oBuXuKu
  • 2013-10-23 14:35
  • 425

20、SSM框架-Mybatis接口编程方式实现增删改查 (2)

前面一章已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: [java] ...
  • gywtzh0889
  • gywtzh0889
  • 2016-11-03 16:03
  • 559
    个人资料
    • 访问:12109次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:33篇
    • 译文:2篇
    • 评论:4条
    文章分类
    最新评论