zoukankan      html  css  js  c++  java
  • iBatis第二章:搭建一个简单的iBatis开发环境

    使用 iBatis 框架开发的基本步骤如下:
    1、新建项目(iBatis是持久层框架,可以运用到java工程或者web工程都可以)

    这里我们建立一个 web 工程测试。

    2、导入相应的框架 jar 包

    需要导入数据库对应的驱动包:这里是连接 mysql,用mysql-connection-java-3.1.13-bin.jar
    同时需要导入 iBatis 框架包:ibatis-conmmon-2.jar、 ibatis-sqlmap-2.jar

    3、开发项目中的实例模型(假设数据库对应的表已经建好)

    package com.test.bean;

    /**
    * @author Administrator
    * Student 实体类
    */
    public class Student {

    private String name;

    private String sex;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getSex() {
    return sex;
    }

    public void setSex(String sex) {
    this.sex = sex;
    }

    }

    数据库对应建立表如下:


    4、开发 iBatis 数据库配置文件
    在项目中新建一个 iBatis 的核心配置文件,器内容如下:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMapConfig
    PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

    <sqlMapConfig>

    <!-- 配置事务管理 -->
    <transactionManager type="JDBC">
    <!-- 配置数据源 -->
    <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
    <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/ibatis"/>
    <property name="JDBC.Username" value="root"/>
    <property name="JDBC.Password" value="123456"/>
    </dataSource>
    </transactionManager>

    <!-- 引用具体的 sql 配置文件 -->
    <sqlMap resource="config/sqlmap-mapping-student.xml"/>

    </sqlMapConfig>

    5、开发数据库连接工具类
    这个类主要用于从配置文件读取 iBatis 的配置,提供操作数据源的对象。
    package com.test.dbutil;
    import java.io.Reader;
    import com.ibatis.common.resources.Resources;
    import com.ibatis.sqlmap.client.SqlMapClient;
    import com.ibatis.sqlmap.client.SqlMapClientBuilder;

    /**
    * @author Administrator
    * 数据源连接工具类
    */
    public class DBUtils {
    private static SqlMapClient sqlMapClient = null;
    static{
    try {
    //得到数据源配置文件的信息
    Reader reader = Resources.getResourceAsReader("sqlmap-config.xml");
    //SqlMapClient是 iBatis 操作数据库的接口,通常CRUD都是通过它来完成
    sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    //关闭 reader 流
    reader.close();
    } catch (Exception e) {
    System.out.println("获取数据源出错:"+e.getMessage());
    }
    }
    /**
    * 得到操作数据库的实例
    * @return
    */
    public static SqlMapClient getInstance(){
    return sqlMapClient;
    }
    }

    6、编写具体的 sql 配置文件
    iBatis一般将具体的 sql 写在单独的配置文件中,在 iBatis 核心配置文件中进行引入即可。下面是一个简单的示例:
    sqlmap-mapping-student.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "http://www.ibatis.com/dtd/sql-map-2.dtd">

    <sqlMap>
    <select id="my_queryForMap" resultClass="com.test.bean.Student">
    select name,sex from t_stu
    </select>
    </sqlMap>

    7、从工具中得到数据库操作对象,进行测试
    import java.sql.SQLException;
    import java.util.List;

    import com.ibatis.sqlmap.client.SqlMapClient;
    import com.test.bean.Student;
    public class TestIbatis {

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    SqlMapClient sqlMapClient = DBUtils.getInstance();
    try {
    //这里的my_queryForMap对应sqlmap-mapping-student.xml中的<select>标签中的id,后面可以传递一
    //个参数作为查询条件,这里我们由于查询全部,所以没有传递。具体后面介绍。
    List<Student> stuList = sqlMapClient.queryForList("my_queryForMap", null);
    for(Student s:stuList){
    System.out.println(s.getName());
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    这里需要说明一下:在需要使用iBatis与数据库交互的地方,我们只要得到了sqlMapClient对象,就有了与数据库打交道的工具,这个对象提供了一系列操作数据的方法,后面我们着重介绍。


    下面提供一个项目的整体结构图。后期我们开发不同的模型时,值需要将不同的模型分别建立一个 sql 配置文件,将与其相关的sql 配置到里面,并引入到 iBatis 核心配置文件中即可。

  • 相关阅读:
    刷题向》关于一道比较优秀的递推型DP(openjudge9275)(EASY+)
    刷题向》一道简单的思路题BZOJ1800(EASY+)
    算法描述》关于二分的两三事
    值得一做》关于一道暴搜BZOJ1024(EASY+)
    写一个C语言的链表记录一下
    qt 创建第一个工程
    windows好用的便签
    .pro文件部分命令详解
    QT 子文件的建立(pri)
    QTAction Editor的简单使用(简洁明了)
  • 原文地址:https://www.cnblogs.com/funnyboy0128/p/7647338.html
Copyright © 2011-2022 走看看