`
liyixing1
  • 浏览: 958770 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

一个简单例子,以及基于接口,class对象调用

阅读更多
应用结构:



IbatisConfiguration.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/ibatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="pojo/Account.xml" />
</mappers>
</configuration>

Account.java

package pojo;

public class Account {
private int id;
private String username;

public int getId() {
return id;
}

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

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

}

Account.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="liyixing">
<select id="getAccount" parameterType="string" resultType="pojo.Account">
select * from Account where username = #{username}
</select>
</mapper>

test.java

package test;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import pojo.Account;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
try {
Reader reader = Resources
.getResourceAsReader("test/IbatisConfiguration.xml");
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);

Account account = (Account) sqlMapper.openSession().selectOne(
"liyixing.getAccount", "liyixing");

System.out.println("id: " + account.getId());
System.out.println("name: " + account.getUsername());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

基于接口,class调用
上面例子中进行修改,首先添加dao类

package dao;

import pojo.Account;

public interface AccountDao {
public Account getAccount(String name);
}

修改映射文件
<?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="dao.AccountDao">
<select id="getAccount" parameterType="string" resultType="pojo.Account">
select * from Account where username = #{username}
</select>
</mapper>
可以看到,首先要改mapper的namespace值,该值和dao接口的包名完全相同。其次是看接口中的方法名,方法名必须在map文件中,存在相同的id才行,否则会报错。这种方式可以将dao接口的实现转移到配置文件中。

修改test类
package test;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import dao.AccountDao;

import pojo.Account;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
try {
Reader reader = Resources
.getResourceAsReader("test/IbatisConfiguration.xml");
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder()
.build(reader);
SqlSession session = sqlMapper.openSession();
AccountDao accountDao = session.getMapper(AccountDao.class);
Account account = accountDao.getAccount("liyixing");

System.out.println("id: " + account.getId());
System.out.println("name: " + account.getUsername());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这里通过AccountDao accountDao = session.getMapper(AccountDao.class);方式获取dao接口的实现。这个实现是ibatis帮助创建的。我们只需要生成对应的配置文件即可。

Account account = accountDao.getAccount("liyixing");
通过调用dao接口的方法,进行数据操作。
  • 大小: 11 KB
分享到:
评论

相关推荐

    luaclass简单例子

    `TeamMgr`可以看作是一个更高级别的抽象,它可能持有一些`Team`对象,并提供接口供外部操作这些团队。 在Lua中,由于没有内置的类系统,所以面向对象的实现相对灵活,可以根据项目需求进行定制。这种灵活性使得Lua...

    delphi对象参数调用

    因此,对象参数调用不会复制整个对象,只是复制了一个指向对象的指针,这在处理大对象时非常有利。 其次,了解对象参数的传递方式。在Delphi中,参数传递有两种方式:传值(by value)和传引用(by reference)。...

    基于thrift的RPC调用实例

    在本实例中,我们将关注一个基于Thrift的RPC调用实现,Thrift是由Facebook开发的一种高效的跨语言服务开发框架。 Thrift的核心思想是定义一种中间描述文件(.thrift),该文件包含了服务接口、数据结构以及服务间的...

    Java 调用 SAP RFC 案例

    以下是一个简单的Java调用SAP RFC的示例代码片段: ```java import com.sap.conn.jco.*; public class SapRfcExample { public static void main(String[] args) { try { JCoDestination destination = ...

    基于JPA的CRUD例子

    Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它为开发者提供了一种声明式的方式来处理对象与数据库之间的映射,简化了数据库操作。在这个“基于JPA的CRUD例子”中,...

    Java动态调用实例

    下面将详细解释这些概念以及如何在一个实际示例中应用它们。 首先,让我们了解一下Java的反射API。反射是Java提供的一种机制,它允许程序在运行时检查类、接口、字段和方法的信息,甚至可以创建和操作对象。`java....

    一个利用C++CLI实现Web Services 的方法调用程序例子

    Web服务是一种基于互联网的、可互操作的应用程序接口,它们通过标准协议如SOAP(简单对象访问协议)进行通信,允许不同系统间的数据交换。C++CLI是微软为了使传统C++开发者能够利用.NET平台的特性而设计的语言,它...

    swagger接口管理框架

    而Swagger UI则是一个基于Web的界面,它从OpenAPI规格文件中拉取信息,展示成用户友好的文档,同时提供了一个交互式的测试环境,允许开发者快速验证接口的功能。 在实际开发中,使用Swagger有以下几个显著优点: 1...

    基于ATL c++ com的简单例子

    通过这个简单的教程,新手将了解如何从头开始创建一个ATL COM组件,包括编写接口、实现接口、注册组件以及测试组件。这个过程中,可能会遇到的问题,如接口实现错误、注册表错误、内存泄漏等,教程也会给出相应的...

    webservice调用,传参代码样例

    以下是一个简单的Axis客户端调用Web服务的代码示例: ```java import org.apache.axis.client.Service; public class WebServiceClient { public static void main(String[] args) { try { // 创建Service实例...

    CXF与web项目服务端整合的例子以及客户端调用详细说明

    2. 创建服务接口和实现:定义一个Java接口,声明你需要提供的服务方法。然后,创建一个类实现这个接口,实现具体的服务逻辑。 3. 配置CXF:在Web应用的配置文件(如web.xml)中,配置CXF的Servlet,指定服务接口和...

    关于 js 和 applet 相互调用的例子

    本文将详细探讨如何实现JS与Applet之间的相互调用,并通过一个具体的例子来阐述这一过程。 首先,JavaScript是一种轻量级的解释型编程语言,主要应用于浏览器端,用于增加网页的交互性和动态性。而Applet是Java的一...

    JAVA调用webservice并解析xml

    这个例子中的"soap2"可能是项目中的一个具体示例,它可能包含了一个完成上述步骤的Java类或测试用例。测试成功并能在多个IDE中运行,意味着代码具有较好的兼容性和可靠性。 总结,调用Java中的Web服务并解析XML涉及...

    VB.NET面向对象CLASS的实现

    在这个例子中,`Person`类有两个属性:`Name`和`Age`,以及一个方法`SayHello`。 2. **对象(Objects)的创建** 创建类的实例称为对象。在VB.NET中,我们使用`New`关键字来创建对象。例如: ```vbnet Dim ...

    REST服务Post创建以及调用小例子

    在本例中,我们将基于.NET Framework中的WCF(Windows Communication Foundation)来构建一个简单的REST服务,并提供一个名为`TestAddData`的方法供客户端调用。 ##### 2.1 服务端接口定义 服务端接口的定义非常...

    一个很简单的hibernate例子

    本示例将深入解析一个基于Hibernate的简单应用,帮助开发者理解其基本概念和工作流程。 首先,我们需要了解Hibernate的核心概念。Hibernate通过XML配置文件或注解来定义Java类和数据库表之间的映射关系,这样我们就...

    类对象和接口优秀文档.ppt

    在这个例子中,`Point`类有两个数据成员`x`和`y`,以及一个构造方法`Point(int x, int y)`,用于初始化点的坐标。 对象是类的实例,它们是程序中实际进行操作的实体。在Java中,我们可以通过调用`new`关键字来创建...

    Java调用Dll一个例子,台半条码打印机

    ### Java调用Dll一个例子:台半条码打印机 #### 一、项目环境搭建 在开始之前,我们需要准备一些基础的开发工具与环境。 ##### 1. 准备开发工具 本例中我们使用Java编辑器NetBeans IDE 6.8来构建这个示例程序。...

    C#顺丰接口实例

    下面是一个简单的下单接口调用示例: ```csharp using System; using System.Net.Http; using System.Text; public class SFExpressService { private readonly HttpClient _httpClient; public ...

    jax-ws的handler做调用权限校验例子

    `Handler`是`JAX-WS`中的一个重要组件,它允许我们在Web服务调用的生命周期中插入自定义逻辑。这包括在消息发送前、接收到消息后、发送响应前以及接收到响应后执行代码。对于权限校验,`Handler`特别有用,因为它...

Global site tag (gtag.js) - Google Analytics