Mybatis面向接口式编程

Mybatis面向接口编程

1.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">
<mapper namespace="com.dao.BookMapper">

  <select id="selectBook" resultType="Book" databaseId="mysql">
    select * from Book where id = #{id}
  </select>

  <insert id="insertBook">
      insert into book (title,price,publishDate) value(#{title},#{price},#{publishDate})
  </insert>

  <update id="updateBook">
      update book set title=#{title},price=#{price},publishDate=#{publishDate}
  </update>

  <delete id="deleteBook">
      delete from book where id=#{1}
  </delete>

</mapper>

namespace:接口全类名

resultType:返回值类型(起得别名)

databaseId:指定数据库厂商id

2.测试

public class Test {

    public static void main(String[] args) throws IOException {
        // 读取全局配置文件
        String resource = "conf/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        // 获取sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 打开session
        SqlSession session = sqlSessionFactory.openSession();
        try {
            // 面向接口方式
            BookMapper bookMapper = session.getMapper(BookMapper.class);
            // 测试新增
            Book book = new Book(null, "jack", "2.1", "2018-01-19");
            boolean flag = bookMapper.insertBook(book);
            System.out.println(flag);
            // 一定得手动提交
            session.commit();
        } finally {
          // 关闭session
          session.close();
        }
    }
}

原文地址:https://www.cnblogs.com/zhangjianbing/p/8318913.html

时间: 2024-10-06 15:45:18

Mybatis面向接口式编程的相关文章

MyBatis接口式编程

代码清单及总结 接口 /** * 这是一个接口 * @author guozhenZhao * @date 2018年7月16日 */ public interface EmployeeMapper { public Employee getEmployeeById(Integer id); } 全局配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC

接口式编程小结

1.接口式编程 原生:            Dao        =======>   DaoImpl mybatis:       Mapper  =======>   xxMapper.xml 2.Sq1Session代表和数据库的一次会话; 用完必须关闭 3.SqlSession和connection一样她都是非线程安全.每次使用都应该去获取新的对象 4.mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象.(将接口和xml绑定) 5.两个重要的配置文件: myb

基础才是重中之重~再说面向接口的编程

之前在我的文章中有对接口进行过讲解,但感觉讲的还是不够清晰,不够利针见血,这次我把面向接口的编程里,自认为比较核心的两点说一下: 接口详细介绍请看我的这篇文章 基础才是重中之重~为什么C#有显示实现接口 一切依赖于抽象,而不是实现 多个接口相同的行为,被一个对象实现 #region 多个接口相同的行为,被一个对象实现(一切依赖于抽象,而不是实现) interface IPainter { void Draw(); } interface ICowBoy { void Draw(); } clas

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)  (1)框架搭建    (2):数据库访问层的设计Demo 前言:这篇博客在数据访问层的基础上面我们继续学习对这个Demo的开发,希望大家都好好理解一下这个Demo的架构,到最后我实现权限的时候我就简单的说一下搭建过程就OK了,因为这个Demo的思想就是按照权限的设计方式去设计的,下面我们开始介绍面向接口的编程思想,如果感觉好的话可以

volley 框架剖析(一) 面向接口的编程

Volley是Google出品的一个轻量级的网络框架,默认实现,主要用于小数据量的网络请求.这里就按从粗到细,自上而下的过程,给大家剖析这个牛X的框架. 这个框架的代码量虽少,但却把面向接口的编程这个原则发挥的淋漓尽致.这个框架是怎么构成的呢? 先看包的结构. 有com.android.volley 及 com.android.volley.toolbox两个包. 其中com.android.volley中的接口和类,是基础框架,构成了一个基于队列的网络请求功能. 而com.android.vo

接口式编程

主要是为了解决再调用MyBatis的SQL时候可能出现的认为失误 1.新建一个接口作为映射文件的说明.映射文件的命名空间就是这个接口的权限定类名.这样就保证了命名空间的唯一性 2.每条映射文件的SQL ID,对应一个接口中的方法.名称一样.参数与返回值类型也与映射文件一致 具体使用 xml 1 <!--查询--> 2 <select id="queryMessageList" resultMap="messageResult" parameterT

myBatis --(2)接口方式编程

接口编程方式思想: 1>在一个mapper文件里面编写多个方法. 2>在mapping文件中实现这些方法. 如下图所示: mapper文件里面的方法 mapping文件里面对应实现这些方法(id后面的方法名应该与mapper里面的方法名对应上)

wcf之二(接口契约式编程思想)

Wcf编程之二(接口契约编程) 简述 任务理解接口式编程,定义一个接口是为了遵循中规范,便于程序的扩展.接口是一种能力也是一种约定.1.接口不可以被实例化 2.实现类必须实现接口的所有方法(抽象类除外)3.接口可以实现多继承 4.接口中可定义属性. 实例 打印机需要墨盒和纸张.墨盒有黑白.彩色.纸张有A4 B5.打印机怎么实现对不同纸张好墨盒打印的呢?接口契约式编程,打印机执行定义纸张接口和墨盒接口两个约定.纸张厂家和墨盒厂家只需遵循约定就可有打印. 代码 接口契约墨盒 public inter

面向接口的开发到面向对象的编程

估计看到这个博文名字会有很些人懵逼,其实懵逼是正常的,因为刚听到这个名字我也是出于懵逼状态,也是看过类似的博文之后才有了那么点点的了解. 一.面向接口的编程 面向接口的编程目的是为了更好的代码扩展,因为对于java语言而言允许向上转型. 二.面向对象的开发 对于java世界而言,所有现实中的和非现实的事物一切都是可以抽象化的,万物皆对象. 如何抽象化接口为java中的对象? 接口包含了接口和抽象类,那么这里最终我们最关心的其实还是抽象方法.那么我们是否可以把方法看到一个对象?姑且可以,那么我们方