- 浏览: 961771 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
应用结构:
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接口的方法,进行数据操作。
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接口的方法,进行数据操作。
发表评论
-
深入了解MyBatis参数
2017-05-04 21:12 396深入了解MyBatis参数 http://blog.csdn ... -
MyBatis Generator 详解
2015-08-03 14:00 767http://blog.csdn.net/isea533/ar ... -
ibatis的动态sql
2014-10-23 13:33 944位于包 com.ibatis.sqlmap.engine.ma ... -
枚举 enum
2013-12-13 17:28 2597当使用枚举时,需要使用EnumTypeHandler或者Enu ... -
mybatis generator tools配置文件解析
2012-12-20 23:28 25418这是mybatis3 generator 配 ... -
问题解决方案
2011-08-22 00:25 24261.Mapped Statements collection ... -
mybatis的参数
2011-06-16 12:36 6436在类DynamicSqlSource 方法 public Bo ... -
与spring结合
2011-05-20 21:58 1244实体省略 maping文件省略 dao接口省略 mybatis ... -
动态sql
2011-05-05 17:54 1268ibatis支持动态的组合sql。 包括动态元素 if ... -
ibatis缓存
2011-05-05 16:38 4515ibatis的session缓存。做了一个测试 <?xm ... -
ibatis官方推荐目录结构
2011-05-05 13:24 1065src/com.liyixing.application.da ... -
sql映射文件
2011-04-30 22:09 2562<?xml version="1.0" ... -
配置文件
2011-04-30 20:17 1809mybatis的配置文件结构 顶级是configuration ... -
session的getMapper方法解析
2011-04-30 17:22 9648跟踪: DefaultSqlSession类 public & ... -
范围和声明周期(对象声明周期)
2011-04-29 23:19 1353先看mybatis用户手册中的一段代码 DataSource ...
相关推荐
`TeamMgr`可以看作是一个更高级别的抽象,它可能持有一些`Team`对象,并提供接口供外部操作这些团队。 在Lua中,由于没有内置的类系统,所以面向对象的实现相对灵活,可以根据项目需求进行定制。这种灵活性使得Lua...
因此,对象参数调用不会复制整个对象,只是复制了一个指向对象的指针,这在处理大对象时非常有利。 其次,了解对象参数的传递方式。在Delphi中,参数传递有两种方式:传值(by value)和传引用(by reference)。...
在本实例中,我们将关注一个基于Thrift的RPC调用实现,Thrift是由Facebook开发的一种高效的跨语言服务开发框架。 Thrift的核心思想是定义一种中间描述文件(.thrift),该文件包含了服务接口、数据结构以及服务间的...
以下是一个简单的Java调用SAP RFC的示例代码片段: ```java import com.sap.conn.jco.*; public class SapRfcExample { public static void main(String[] args) { try { JCoDestination destination = ...
Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它为开发者提供了一种声明式的方式来处理对象与数据库之间的映射,简化了数据库操作。在这个“基于JPA的CRUD例子”中,...
下面将详细解释这些概念以及如何在一个实际示例中应用它们。 首先,让我们了解一下Java的反射API。反射是Java提供的一种机制,它允许程序在运行时检查类、接口、字段和方法的信息,甚至可以创建和操作对象。`java....
Web服务是一种基于互联网的、可互操作的应用程序接口,它们通过标准协议如SOAP(简单对象访问协议)进行通信,允许不同系统间的数据交换。C++CLI是微软为了使传统C++开发者能够利用.NET平台的特性而设计的语言,它...
而Swagger UI则是一个基于Web的界面,它从OpenAPI规格文件中拉取信息,展示成用户友好的文档,同时提供了一个交互式的测试环境,允许开发者快速验证接口的功能。 在实际开发中,使用Swagger有以下几个显著优点: 1...
通过这个简单的教程,新手将了解如何从头开始创建一个ATL COM组件,包括编写接口、实现接口、注册组件以及测试组件。这个过程中,可能会遇到的问题,如接口实现错误、注册表错误、内存泄漏等,教程也会给出相应的...
以下是一个简单的Axis客户端调用Web服务的代码示例: ```java import org.apache.axis.client.Service; public class WebServiceClient { public static void main(String[] args) { try { // 创建Service实例...
2. 创建服务接口和实现:定义一个Java接口,声明你需要提供的服务方法。然后,创建一个类实现这个接口,实现具体的服务逻辑。 3. 配置CXF:在Web应用的配置文件(如web.xml)中,配置CXF的Servlet,指定服务接口和...
本文将详细探讨如何实现JS与Applet之间的相互调用,并通过一个具体的例子来阐述这一过程。 首先,JavaScript是一种轻量级的解释型编程语言,主要应用于浏览器端,用于增加网页的交互性和动态性。而Applet是Java的一...
这个例子中的"soap2"可能是项目中的一个具体示例,它可能包含了一个完成上述步骤的Java类或测试用例。测试成功并能在多个IDE中运行,意味着代码具有较好的兼容性和可靠性。 总结,调用Java中的Web服务并解析XML涉及...
在这个例子中,`Person`类有两个属性:`Name`和`Age`,以及一个方法`SayHello`。 2. **对象(Objects)的创建** 创建类的实例称为对象。在VB.NET中,我们使用`New`关键字来创建对象。例如: ```vbnet Dim ...
在本例中,我们将基于.NET Framework中的WCF(Windows Communication Foundation)来构建一个简单的REST服务,并提供一个名为`TestAddData`的方法供客户端调用。 ##### 2.1 服务端接口定义 服务端接口的定义非常...
本示例将深入解析一个基于Hibernate的简单应用,帮助开发者理解其基本概念和工作流程。 首先,我们需要了解Hibernate的核心概念。Hibernate通过XML配置文件或注解来定义Java类和数据库表之间的映射关系,这样我们就...
在这个例子中,`Point`类有两个数据成员`x`和`y`,以及一个构造方法`Point(int x, int y)`,用于初始化点的坐标。 对象是类的实例,它们是程序中实际进行操作的实体。在Java中,我们可以通过调用`new`关键字来创建...
### Java调用Dll一个例子:台半条码打印机 #### 一、项目环境搭建 在开始之前,我们需要准备一些基础的开发工具与环境。 ##### 1. 准备开发工具 本例中我们使用Java编辑器NetBeans IDE 6.8来构建这个示例程序。...
下面是一个简单的下单接口调用示例: ```csharp using System; using System.Net.Http; using System.Text; public class SFExpressService { private readonly HttpClient _httpClient; public ...
`Handler`是`JAX-WS`中的一个重要组件,它允许我们在Web服务调用的生命周期中插入自定义逻辑。这包括在消息发送前、接收到消息后、发送响应前以及接收到响应后执行代码。对于权限校验,`Handler`特别有用,因为它...