免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1091 | 回复: 0
打印 上一主题 下一主题

MyBatis经典入门实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:48 |只看该作者 |倒序浏览

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

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" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <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" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP