10、mybatis的接口编程

在应用中,操作数据库时,我们可以定义操作数据库的接口,然后让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();
    }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值