ibatis 环境搭建(1)

目录和jar包

创建ibatis 配置文件 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>
    <settings useStatementNamespaces="true" />
    <transactionManager type="JDBC">
        <dataSource type="SIMPLE">
            <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
            <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/sakila" />
            <property name="JDBC.Username" value="root" />
            <property name="JDBC.Password" value="root" />
            
        </dataSource>
    </transactionManager>
    <sqlMap resource="com/liang/ibatis/model/Actor.xml" />
</sqlMapConfig>


注意点,sqlmap的路径写法,是"/ "而不是" ."

 

Actor 的sqlmap文件 Actor.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 namespace="actor">


    <typeAlias alias="Actor" type="com.liang.ibatis.model.Actor" />

    <!-- 获取全部数据 -->
    <select id="getAll" resultClass="Actor">
        SELECT * FROM Actor
    </select>

    <!-- 插入 -->
    <insert id="insert" parameterClass="Actor">

        insert into Actor(first_name, last_name)
        values (#first_name#,
        #last_name#)

        <selectKey resultClass="int" keyProperty="actor_id">
            select
            last_insert_id() as actor_id from Actor limit 1
        </selectKey>

    </insert>

    <!-- 分页 -->
    <select id="pageActor" parameterClass="java.util.HashMap"
        resultClass="Actor">
        select * from Actor
        <dynamic prepend="WHERE">
            <isGreaterThan prepend="AND" property="actor_id"
                compareValue="0">
                actor_id > #actor_id#
            </isGreaterThan>
        </dynamic>
        order by actor_id limit #begin#,#pageSize#
    </select>

    <!-- 模糊查询 like ibatis 的 parameterClass 的string类型可以直接写成string或者java.lang.Strig -->
    <select id="selectStudentByName" parameterClass="string"
        resultClass="Actor">
        SELECT * FROM Actor where first_name like '%$name$%'
    </select>



    <select id="doubleTable" parameterClass="string" resultClass="Actor">
        SELECT a.* FROM Actor a, category c where a.actor_id =c.category_id
        and first_name like '%$name$%'
        group by First_name desc
    </select>


    <!-- <select id="selectStudentByName" parameterClass="String" -->
    <!-- resultClass="Actor"> -->
    <!-- SELECT * FROM Actor where first_name like '%$name$%' -->
    <!-- </select> -->


</sqlMap>

 IbatisRead.java //读取数据

 

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.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.liang.ibatis.model.Actor;

public class IbatisRead {

    public static void main(String[] args) throws IOException, SQLException {
        Reader rd = Resources.getResourceAsReader("com/liang/ibatis/SqlMapConfig.xml");
        SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

        /* This would read all records from the Employee table. */
        System.out.println("Going to read records.....");
        List<Actor> ems = smc.queryForList("actor.getAll", null);
        Actor em = null;
        for (Actor e : ems) {
            System.out.print("  " + e.getActor_id());
            System.out.print("  " + e.getFirst_name());
            System.out.print("  " + e.getFirst_name());
            em = e;
            System.out.println("");
        }

        System.out.println("Records Read Successfully ");

    }
}

 

posted @ 2016-01-03 12:23  devin.ding  阅读(198)  评论(0编辑  收藏  举报