10、mybatis的接口编程

标签: mybatis
87人阅读 评论(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();
    }

}

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

查看评论

Mybatis接口编程原理分析(一)

Mybatis接口编程示例(1)首先定义接口编程需要的接口及其方法public interface IUserMapper { public User getById(int id);//接口...
  • qq924862077
  • qq924862077
  • 2016-09-18 20:15:21
  • 1642

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

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

Mybatis系列(六)接口式编程

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

MyBatis3和Spring4基于接口编程的例子

Spring MyBatis
  • wu_boy
  • wu_boy
  • 2015-11-17 10:18:46
  • 1343

springmvc+mybatis高效接口编程

这边记录一套比较高效的基础接口编程,在springmvc+mybatis架构下的基础接口,结合了所有的增删改查,节省很多代码的书写,使代码更加简洁明了,结合上泛型的使用。 1.BaseDao接口,结合...
  • u014001866
  • u014001866
  • 2016-07-26 18:13:45
  • 1623

mybatis之接口编程(2)

  • 2018年03月09日 14:49
  • 2.59MB
  • 下载

mybatis(接口形式开发配置)

1、mybatis.xml                                                                   ...
  • wuliu_forever
  • wuliu_forever
  • 2016-07-28 11:29:16
  • 720

Mybatis接口式编程

Mybatis项目有两种实现方式 其一:通过xml配置文件实现 其二:面向接口编程的实现            前者原理在Mybatis运行套路里面大致说了一下,此节说的是后者,面向接口的编程,可...
  • CSDN_Terence
  • CSDN_Terence
  • 2017-03-15 10:21:02
  • 502

Mybatis面向接口编程

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

MyBatis接口的简单实现原理

MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? MyBatis是通过Java动态代理实现的接口。 这里仅仅...
  • isea533
  • isea533
  • 2015-09-09 16:34:45
  • 11276
    个人资料
    持之以恒
    等级:
    访问量: 3万+
    积分: 1994
    排名: 2万+
    最新评论