首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用iBatis

如何使用iBatis
EN

Stack Overflow用户
提问于 2014-07-07 06:33:00
回答 2查看 2.8K关注 0票数 0

我是新来的。我在上面读过一些特写,并试着工作,但这对我来说并没有发生。可能是我在这里面临xml文件的放置问题。这里是我的工作流程>>>,我在netbeans中使用了一个项目,并将ibati-2.3.4.726.jar与Mysql驱动程序一起保存在库包中。然后,我创建了Employee.xml和SqlMapConfig.xml文件,并将它们保存在网页/ Web包下。然后我创建了Employee.java和IbatisInsert.java文件,并将它们保存在源代码包/默认包文件夹下。现在,当我运行IbatisInsert.java文件时,它显示了以下消息>>>

线程"main“中的异常:无法在com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:110) at com.ibatis.common.resources.Resources.getResourceAsStream(Resources.java:95) at com.ibatis.common.resources.Resources.getResourceAsReader(Resources.java:161) at IbatisInsert.main(IbatisInsert.java:20)找到资源SqlMapConfig.xml

我不知道在哪里保存文件,以及如何配置ibatis。我搜索过谷歌,但没有理解。有人能帮帮我吗?!!下面是我的xml文件和java文件:

employee.xml >>>

代码语言:javascript
复制
 <?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="Employee"> 
<insert id="insert" parameterClass="Employee">

   insert into EMPLOYEE(first_name, last_name, salary)
   values (#first_name#, #last_name#, #salary#)

   <selectKey resultClass="int" keyProperty="id">
      select last_insert_id() as id
   </selectKey>

</insert> 

</sqlMap>

SqlMapConfig.xml >>>

代码语言:javascript
复制
    <!--<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/ibatisExample"/>-->

<?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/ibatisexample"/>
          <property name="JDBC.Username" value="root"/>
          <property name="JDBC.Password" value="123"/>
        </dataSource>
      </transactionManager>
     <sqlMap resource="Employee.xml"/> 
</sqlMapConfig>

<property name="JDBC.AutoCommit" value="true"/>

<property name="Pool.MaximumActiveConnections" value="10"/>

<property name="Pool.MaximumIdleConnections" value="5"/>

<property name="Pool.MaximumCheckoutTime" value="150000"/> 

<property name="Pool.MaximumTimeToWait" value="500"/> 

<property name="Pool.PingQuery" value="select 1 from Employee"/> 

<property name="Pool.PingEnabled" value="false"/>

employee.java >>>

代码语言:javascript
复制
 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author sumon.bappi
 */
public class Employee {
  private int id;
  private String first_name; 
  private String last_name;   
  private int salary;  

  /* Define constructors for the Employee class. */
  public Employee() {}

  public Employee(String fname, String lname, int salary) {
    this.first_name = fname;
    this.last_name = lname;
    this.salary = salary;
  }
} /* End of Employee */

IbatisInsert.java >>>

代码语言:javascript
复制
    /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author sumon.bappi
 */
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

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

   /* This would insert one record in Employee table. */
   System.out.println("Going to insert record.....");
   Employee em = new Employee("Zara", "Ali", 5000);

   smc.insert("Employee.insert", em);

   System.out.println("Record Inserted Successfully ");

  }
} 

我的文件位置类似于下面的图像>>>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-07 07:58:34

为了允许读取SqlMapConfig.xml文件,只需将其放在默认包路径中源文件夹旁边的一个配置目录下,并将该目录添加到类路径中。

我注意到你在你的SqlMapConfig.xml中缺少的另一件事是地图绘制者。这个配置文件的主要作用是映射xml资源的位置以及定义数据源参数。

因此,您可能需要在文件末尾添加类似的内容:

代码语言:javascript
复制
<mappers>
      <mapper resource="PATH_TO_YOUR_DIR/Employee.xml />
</mappers>
票数 1
EN

Stack Overflow用户

发布于 2015-01-21 11:35:44

将所有xml文件放在java文件所在的src文件夹中。看起来不错

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24604286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档