ibatis入门示例

     iBatis是一个开源项目,现已更名为Mybatis了。

示例:
文件目录:

数据库脚本[db.sql]
CREATE DATABASE  IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

数据库连接属性配置[SqlMap.properties]
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:// localhost:3306/test
username= root
password= 123456

[SqlMapConfig.xml]文件
<? xml version= "1.0" encoding = "UTF-8" ?>
<! DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd" >
< sqlMapConfig>
<!-- 引用JDBC属性的配置文件 -->
< properties resource= "com/ibatis/SqlMap.properties" />
<!-- 使用JDBC的事务管理 -->
< transactionManager type= "JDBC" >
<!-- 数据源 -->
< dataSource type= "SIMPLE" >
< property name= "JDBC.Driver" value = "${driver}"/>
< property name= "JDBC.ConnectionURL" value = "${url}"/>
< property name= "JDBC.Username" value = "${username}"/>
< property name= "JDBC.Password" value = "${password}"/>
</ dataSource>
</ transactionManager>
<!-- 这里可以写多个实体的映射文件 -->
< sqlMap resource= "com/ibatis/map/Test.xml" />
</ sqlMapConfig>

程序中的sql语句脚本[Test.xml]
<? xml version= "1.0" encoding = "UTF-8"?>
<! DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd" >
< sqlMap>
< typeAlias alias= "Test" type = "com.ibatis.domain.Test"/>
<!-- 增加一项 -->
< insert id= "test_insert" parameterClass = "Test">
INSERT INTO TEST(name)
VALUES
(#name#)
< selectKey resultClass ="java.lang.Integer" keyProperty= "id" >
                     select last_insert_id() as ID from test limit 1
</ selectKey>
</ insert>
<!-- 删除一项 -->
< delete id= "test_delete" parameterClass = "int">
DELETE FROM TEST
WHERE
id = #id#
</ delete>
<!-- 修改一项 -->
< update id= "test_update" parameterClass = "Test">
UPDATE TEST
SET
name = #name#
WHERE
id = #id#
</ update>
<!-- 查询一项 -->
< select id= "test_list" parameterClass = "int" resultClass= "Test" >
SELECT * FROM test
WHERE id = #id#
</ select>
</ sqlMap>

据库字段的java类[Test.java]
package com.ibatis.domain;
public class Test {
      private int id;  
      private String name;
      public String getName() {
            return name;
     }
      public void setName(String name) {
            this. name = name;
     }
      public int getId() {
            return id;
     }
      public void setId( int id) {
            this. id = id;
     }
}

Dao类[TestDao.java]
package com.ibatis.dao;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.domain.Test;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class TestDao {
private static SqlMapClient sqlMapClient = null;
//读取配置文件
static {
    try {
<span style="white-space:pre">	</span>Reader reader = Resources.getResourceAsReader("com/ibatis/SqlMapConfig.xml");
<span style="white-space:pre">	</span>sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
<span style="white-space:pre">	</span>reader.close();
    } catch (IOException e) {
<span style="white-space:pre">	</span>e.printStackTrace();
    }
}
//增加一项
public int insertTest(Test entity) throws SQLException{
<span style="white-space:pre">	</span>return (Integer)sqlMapClient.insert("test_insert",entity);
}
//删除一项
public void deleteTest(int id) throws SQLException{
<span style="white-space:pre">	</span>sqlMapClient.delete("test_delete", id);
}
//修改一项
public void updateTest(Test entity) throws SQLException{
<span style="white-space:pre">	</span>sqlMapClient.update("test_update", entity);
}
//查询一项
public List selectTest(int id) throws SQLException{
<span style="white-space:pre">	</span>return (List) sqlMapClient.queryForList("test_list", id);
}
}

工程测试service类[TestService.java]
package com.ibatis.service;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.dao.TestDao;
import com.ibatis.domain.Test;

public class TestService {
public static void main(String[] args) throws SQLException{
<span style="white-space:pre">	</span>TestDao testDao = new TestDao();
<span style="white-space:pre">	</span>Test entity = new Test();
<span style="white-space:pre">	</span>entity.setName("Davi");
<span style="white-space:pre">	</span>int id = testDao.insertTest(entity);
<span style="white-space:pre">	</span>List list = testDao.selectTest(id);
<span style="white-space:pre">	</span>System.out.println("insert,id = " + ((Test)list.get(0)).getId()
+ ",name = " + ((Test)list.get(0)).getName());
<span style="white-space:pre">	</span>entity.setId(id);
<span style="white-space:pre">	</span>entity.setName("linda");
<span style="white-space:pre">	</span>testDao.updateTest(entity);
<span style="white-space:pre">	</span>list = testDao.selectTest(id);
<span style="white-space:pre">	</span>System.out.println("update,id = " + ((Test)list.get(0)).getId()
+ ",name = " + ((Test)list.get(0)).getName());
<span style="white-space:pre">	</span>testDao.deleteTest(id);
}
}

参考地址:http://www.cnblogs.com/ycxyyzw/archive/2012/10/13/2722567.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值