ibatis例子(一)

基于ibatis-2.3.0.677版本。
1、创建新的项目,并引入jar包
a) ibatis-2.3.0.677.jar
b) mysql驱动

2、在类路径中提供ibatis的配置文件:sqlMapConfig.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>   
  2.   
  3. <!DOCTYPE sqlMapConfig         
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"         
  5.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">   
  6.   
  7. <sqlMapConfig>   
  8.   
  9.   <transactionManager type="JDBC" commitRequired="false">   
  10.     <dataSource type="SIMPLE">   
  11.       <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>   
  12.       <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/crm"/>   
  13.       <property name="JDBC.Username" value="root"/>   
  14.       <property name="JDBC.Password" value="mysql"/>   
  15.     </dataSource>   
  16.   </transactionManager>   
  17.   <sqlMap resource="com/bjsxt/crm/model/User.xml"/>   
  18.   
  19. </sqlMapConfig>  



3、创建实体类:User.java

Java代码 复制代码
  1. package com.app.model;   
  2.   
  3. public class User {   
  4.     private int id;   
  5.     private String username;   
  6.     private String password;   
  7.        
  8.     public int getId() {   
  9.         return id;   
  10.     }   
  11.     public void setId(int id) {   
  12.         this.id = id;   
  13.     }   
  14.     public String getPassword() {   
  15.         return password;   
  16.     }   
  17.     public void setPassword(String password) {   
  18.         this.password = password;   
  19.     }   
  20.     public String getUsername() {   
  21.         return username;   
  22.     }   
  23.     public void setUsername(String username) {   
  24.         this.username = username;   
  25.     }   
  26. }  
package com.app.model;

public class User {
	private int id;
	private String username;
	private String password;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
}



4、创建针对User对象的CRUD的xml映射配置:User.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8" ?>   
  2.   
  3. <!DOCTYPE sqlMap         
  4.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"         
  5.     "http://ibatis.apache.org/dtd/sql-map-2.dtd">   
  6.   
  7. <sqlMap>   
  8.   
  9.   <!-- Use type aliases to avoid typing the full classname every time. -->   
  10.   <typeAlias alias="User" type="com.app.model.User"/>   
  11.   
  12.   <!-- Select with no parameters using the result map for Account class. -->   
  13.   <select id="selectAllUsers" resultClass="User">   
  14.     select * from t_user   
  15.   </select>   
  16.      
  17.   <select id="selectUser" resultClass="User" parameterClass="int">   
  18.     select * from t_user where id=#id#   
  19.   </select>   
  20.      
  21.   <insert id="insertUser" parameterClass="User">   
  22.     insert into t_user values (   
  23.         null,#username#,#password#   
  24.     )   
  25.   </insert>   
  26.      
  27.   <update id="updateUser" parameterClass="User">   
  28.     update t_user set username = #username#,password=#password#   
  29.     where id=#id#   
  30.   </update>   
  31.      
  32.   <delete id="deleteUser" parameterClass="int">   
  33.     delete from t_user where id=#id#   
  34.   </delete>   
  35. </sqlMap>  
<?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>

  <!-- Use type aliases to avoid typing the full classname every time. -->
  <typeAlias alias="User" type="com.app.model.User"/>

  <!-- Select with no parameters using the result map for Account class. -->
  <select id="selectAllUsers" resultClass="User">
    select * from t_user
  </select>
  
  <select id="selectUser" resultClass="User" parameterClass="int">
  	select * from t_user where id=#id#
  </select>
  
  <insert id="insertUser" parameterClass="User">
  	insert into t_user values (
  		null,#username#,#password#
  	)
  </insert>
  
  <update id="updateUser" parameterClass="User">
  	update t_user set username = #username#,password=#password#
  	where id=#id#
  </update>
  
  <delete id="deleteUser" parameterClass="int">
  	delete from t_user where id=#id#
  </delete>
</sqlMap>



5、创建测试程序测试:

Java代码 复制代码
  1. package com.app.model;   
  2.   
  3. import java.io.Reader;   
  4. import java.util.Iterator;   
  5. import java.util.List;   
  6.   
  7. import com.ibatis.common.resources.Resources;   
  8. import com.ibatis.sqlmap.client.SqlMapClient;   
  9. import com.ibatis.sqlmap.client.SqlMapClientBuilder;   
  10.   
  11. /**  
  12.  * 最简单的形式!  
  13.  * @author Lee  
  14.  *  
  15.  */  
  16. public class UserTest {   
  17.   
  18.     /**  
  19.      * @param args  
  20.      */  
  21.     public static void main(String[] args) throws Exception{   
  22.   
  23.         //从配置文件中得到SqlMapClient对象   
  24.         Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");   
  25.         SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);   
  26.         reader.close();   
  27.            
  28.         //创建用户数据  
  29.         for(int i=0; i<10; i++){   
  30.             User user = new User();   
  31.             user.setUsername("用户"+i);   
  32.             user.setPassword("密码"+i);   
  33.             sqlMapper.insert("insertUser", user);   
  34.         }   
  35.            
  36.         //查询用户数据  
  37.         List users = sqlMapper.queryForList("selectAllUsers");   
  38.         for (Iterator iter = users.iterator(); iter.hasNext();) {   
  39.             User user = (User) iter.next();   
  40.             System.out.println(user.getUsername());   
  41.         }   
  42.            
  43.         //查询特定用户的数据  
  44.         User user = (User)sqlMapper.queryForObject("selectUser"1);   
  45.         System.out.println("用户【id="+1+"】的名称是:"+user.getUsername());   
  46.            
  47.         //更新用户的信息  
  48.         user = new User();   
  49.         user.setId(3);   
  50.         user.setUsername("更改之后的用户名称");   
  51.         user.setPassword("密码被更改");   
  52.         sqlMapper.update("updateUser", user);   
  53.            
  54.         //删除用户的信息  
  55.         sqlMapper.delete("deleteUser"6);   
  56.     }   
  57.   


这是一个用iBator生成iBatis有关代码的例子。 特别说明: Eclipse应该是3.4.1以上版本, 并且安装了iBator插件。否则可用iBator的命令行版本或ant工具。 测试用数据是: CREATE TABLE PERSON( id INTEGER NOT NULL, firstName VARCHAR (40) NOT NULL, lastName VARCHAR (40) NOT NULL, PRIMARY KEY (ID) ); insert into PERSON values (1,'ng','Huang'); insert into PERSON values (2,'zh','Ni'); insert into PERSON values (3,'zy','Huang'); src下有三个目录: ibator/config:配置文件,其中: ibatorConfig.xml:iBaotr的配置文件,指示iBator如何生成代码,其中classPathEntry要指向一个 jdbc 驱动程序。 sqlMapConfig.properties:数据库配置,配置数据库密码等 AppSqlConfig.java:应用程序配置,如果目录结构相同,不必修改 SqlMapConfig.xml:SqlMap配置,在最后应该加上每个表的Map文件,特别注意useStatementNamespaces="true"不能为false org:生成的代码,分为三个目录,目录名在ibatorConfig.xml中指定 注意:其中生成的person_SqlMap.xml中的: <select id="ibatorgenerated_selectByPrimaryKey" resultMap="ibatorgenerated_BaseResultMap" > 经过修改了, 删除了parameterClass="org....的内容 test:一个测试主程序。运行它能得到数据库中的数据。 如何使用这个例子: 1、下载后解压缩 2、导入到Eclipse中 3、运行test/Test.java,看看结果 4、删除org及其下的三个目录及文件 5、在ibator/config/ibatorConfig.xml中的右键菜单,选择Generate iBATIS Artifacts 5、将自动生成org中的所有代码,研究一下这些代码 6、修改中的person_SqlMap.xml中的: <select id="ibatorgenerated_selectByPrimaryKey" resultMap="ibatorgenerated_BaseResultMap" > 7、再次执行test/Test.java,看看结果 8、研究ibator/config中的各个文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值