Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2223021
  • 博文数量: 556
  • 博客积分: 11457
  • 博客等级: 上将
  • 技术积分: 5973
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 22:33
文章分类

全部博文(556)

文章存档

2013年(22)

2012年(74)

2011年(460)

分类: 系统运维

2011-03-26 16:39:25

周末学习了MyBatis开源框架,MyBatis是由原来的iBatis改名而来,目前已近发布了3.0.1版本。可以在官方网站。

MyBatis作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,配置在配置文件中,实现sql的灵活配置。这样做的好处是将sql与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改sql。下面给个简单的入门例子。

下面的例子实现从数据库中查询商品表(Goods)中id为1的商品,并打印出商品名称。

数据库建表脚本如下:

DROP TABLE GOODS; CREATE TABLE GOODS( ID INT PRIMARY KEY, CATE_ID INT, NAME VARCHAR(50), PRICE DECIMAL(16,2), DESCRIPTION VARCHAR(100), ORDER_NO INT, UPDATE_TIME TIMESTAMP );

数据库初始化脚本:

INSERT INTO GOODS(ID,CATE_ID,NAME,PRICE,DESCRIPTION,ORDER_NO,UPDATE_TIME) VALUES (1,1,'诺基亚N85',3010,'内置RealPlayer播放器',1,CURRENT_TIMESTAMP); INSERT INTO GOODS(ID,CATE_ID,NAME,PRICE,DESCRIPTION,ORDER_NO,UPDATE_TIME) VALUES (2,1,'金立 A30',2000,'标准锂电池两块',2,CURRENT_TIMESTAMP);

一、configuration.xml配置文件

首先在工程中导入mybatis-3.0.1.jar包。然后编写configuration.xml配置文件。

xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ""> <configuration> <typeAliases> <typeAlias alias="Goods" type="com.oryx.mybatis.Goods"/> typeAliases> <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/test"/> <property name="username" value="root"/> <property name="password" value="root"/> dataSource> environment> environments> <mappers> <mapper resource="com/oryx/mybatis/GoodsMapper.xml"/> mappers> configuration>

二、Mapper.xml配置文件

接着编写GoodsMapper.xml配置文件。Mapper配置文件主要是实现POJO类和sql之间的映射。

xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ""> <mapper namespace="com.oryx.mybatis.GoodsMapper"> <select id="selectGood" parameterType="int" resultType="Goods"> select * from Goods where id = #{id} select> mapper>

其中#{id}是需要传入的参数,parameterType是参数的类型,resultType是查询返回的结果类。这地方的Goods是一个别名,可以在configuration.xml文件中找到它对应的具体类。

由此可知查询结果集将保存在com.oryx.mybatis.Goods中返回。

三、Goods类

在工程中新建com.oryx.mybatis.Goods.java类。

package com.oryx.mybatis; import java.sql.Timestamp; public class Goods { private String id; private String cateId; private String name; private double price; private String description; private int orderNo; private Timestamp updateTime; /** * @return the goodsid */ public String getId() { return id; } /** * @param goodsid the goodsid to set */ public void setId(String id) { this.id = id; } /** * @return the cateId */ public String getCateId() { return cateId; } /** * @param cateId the cateId to set */ public void setCateId(String cateId) { this.cateId = cateId; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the price */ public double getPrice() { return price; } /** * @param price the price to set */ public void setPrice(double price) { this.price = price; } /** * @return the description */ public String getDescription() { return description; } /** * @param description the description to set */ public void setDescription(String description) { this.description = description; } /** * @return the orderNo */ public int getOrderNo() { return orderNo; } /** * @param orderNo the orderNo to set */ public void setOrderNo(int orderNo) { this.orderNo = orderNo; } /** * @return the updateTime */ public Timestamp getUpdateTime() { return updateTime; } /** * @param updateTime the updateTime to set */ public void setUpdateTime(Timestamp updateTime) { this.updateTime = updateTime; } }

四、测试用例

package com.oryx.mybatis; import java.io.IOException; import java.io.Reader; import java.sql.SQLException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class TestMyBatis { public static void main(String[] args) throws SQLException, IOException{ String resource = "com/oryx/mybatis/configuration.xml"; Reader reader = Resources.getResourceAsReader(resource); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); try{ Goods goods = (Goods)session.selectOne("com.oryx.mybatis.GoodsMapper.selectGoods",1); System.out.println("good name:"+goods.getName()); }finally{ session.close(); } } }实例源代码。转自:http://blog.csdn.net/weoln/archive/2010/08/02/5782750.aspx
阅读(4357) | 评论(0) | 转发(1) |
0

上一篇:数据结构课件

下一篇:爱情类

给主人留下些什么吧!~~