ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java配置IBatis

2019-08-20 13:00:34  阅读:310  来源: 互联网

标签:xml map Java 配置 sqlMap dtd IBatis user SqlMapClient


原文链接:http://www.cnblogs.com/ChenLeo/archive/2011/05/30/2062976.html

前提:把数据库、commons-logging.jar,IBatis.jar和jdbc.jar等放入ClassPath中

1.创建sqlMapConfig.xml和map.xml等文件。

对于这些文件的格式必须参照(sql-map-config.dtd和sql-map.dtd--他们最好要对应相对版本的JAR)

2.sqlMapConfig.xml的写法

例子:

注:下文中的“model.user”为在项目的model包中创建的user类,包含account和password两个属性。

<!--encoding是指这个xml存储时的编码方式-->

<?xml version="1.0" encoding="windows-1252" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<!-- Always ensure to use the correct XML header as above! -->
<sqlMapConfig>
<!-- The properties (name=value) in the file specified here can be used placeholders in this
config file (e.g. “${driver}”. The file is relative to the classpath and is completely optional. -->
 <!--    <properties resource="examples/sqlmap/maps/SqlMapConfigExample.properties" /> -->

<!-- Type aliases allow you to use a shorter name for long fully qualified class names. -->
    <typeAlias alias="User" type="model.user"/>

<!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
Notice the use of the properties from the above resource -->
    <transactionManager type="JDBC" >
        <dataSource type="SIMPLE">

   <!--设置IBatis要使用的jdbc-->
            <property name="JDBC.Driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>

    <!--设置数据库的连接串。其中是服务器名,端口号,数据库名字-->
            <property name="JDBC.ConnectionURL" value="jdbc:sqlserver://localhost:1433; DatabaseName=MyShop"/>

    <!--设置登录数据库用的用户名和密码-->
            <property name="JDBC.Username" value="sa"/>
            <property name="JDBC.Password" value="123"/>
            <property name="JDBC.DefaultAutoCommit" value="true" />
            <property name="Pool.MaximumActiveConnections" value="10"/>
            <property name="Pool.MaximumIdleConnections" value="5"/>
            <property name="Pool.MaximumCheckoutTime" value="120000"/>
            <property name="Pool.TimeToWait" value="500"/>
            <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
            <property name="Pool.PingEnabled" value="false"/>
            <property name="Pool.PingConnectionsOlderThan" value="1"/>
            <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
        </dataSource>
    </transactionManager>

<!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
are relative to the classpath. For now, we only have one… -->

 <!--这个map.xml在项目一个jar的map包下-->   
    <sqlMap resource="map/userMap.xml" />
</sqlMapConfig>

3.map.xml的写法

例子:

<!--encoding是指这个xml存储时的编码方式-->

<?xml version="1.0" encoding="windows-1252"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap  namespace="User">
   
    <resultMap id="userResult" class="model.user">
        <result property="account" column="Account"/>
        <result property="password" column="Password"/>
    </resultMap>
   
    <select id="getUserByAccount" resultMap="userResult">
        select * from Users where Account = #Value#
    </select>

    <select id="getUsers" resultMap="userResult">
        select * from Users
    </select>
</sqlMap>
3.把相应的commons-logging.jdk,IBatis.jdk,jdbc.jdk等添加到项目的库中

4.在main函数中创建利用Ibatis来访问数据库显示数据的过程

       -创建相应的SqlMapClient对象

       -用SqlMapClient调用getUserByAccount的SQL语句

       -显示查询的结果

例子:

public static void main(String[] args) {

   //创建相应的SqlMapClient对象

    //IBatis在项目中的配置方案,即前面的SqlMapConfig.xml 

            String resource = "config/SqlMapConfig.xml";
            Reader reader = null;

            SqlMapClient sqlMap = null;
            try {

    //读取配置文件
                reader = Resources.getResourceAsReader(resource);

    //创建这个SqlMapClient对象。即按照配置方案去整理数据库连接方式和相应的map.xml文件
                XmlSqlMapClientBuilder xmlBuilder = new XmlSqlMapClientBuilder();
                sqlMap = xmlBuilder.buildSqlMap(reader);
            } catch (Exception e) {
                e.printStackTrace();
            }
       

   //用sqlMap去读取user信息 

        user user = (user)sqlMap.queryForObject("getUserByAccount", "ChenLeo");
        System.out.println(user);

//用sqlMap去读取大量用户的信息  
        List<user> list = sqlMap.queryForList("getUsers", null);
        for (user item : list) {
            System.out.println(item);
        }

转载于:https://www.cnblogs.com/ChenLeo/archive/2011/05/30/2062976.html

标签:xml,map,Java,配置,sqlMap,dtd,IBatis,user,SqlMapClient
来源: https://blog.csdn.net/weixin_30905133/article/details/99836076

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有