码迷,mamicode.com
首页 > 其他好文 > 详细

初学Ibatis

时间:2014-08-20 22:37:02      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   使用   os   io   

 什么是Ibatis? 

  大家都知道jdbc的话就会知道,有很多操作是与业务和数据无关的真正你需要的就是,一个运行sql语句的功能,还有取回结果的功能但是jdbc要求你处理连接、会话、statement,尤其是还要你注意关闭资源,还要写try catch处理异常.ibatis 就是帮你把这些乱七八糟的东西都做了,不仅如此,还要求你把sql语句写道xml里,这样不会把sql编译到程序中,以增强程序的可移植性,在不重新编译的情况下,可以更换数据库.

 Ibatis需要什么?

  使用ibatis需要需要一个jar包,这个jar包在网上下载就可以了.下载之后倒入到你的工程下面就可以开始使用它了.

 使用Ibatis实现查询

  1.建立SqlMap.properties文件,存放数据库信息.如下:

1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/ibatis
3 username=root
4 password=root

  2.建立SqlMapConfig.xml文件(主配置文件),

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- 文档申明 -->
 3 <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config2.0//EN"
 4         "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
 5 
 6 <sqlMapConfig>
 7     <settings        <!--settings可以暂时不用设置-->
 8         cacheModelsEnabled="true"       <!--是否启用缓存机制-- > 
 9         lazyLoadingEnabled="true"       <!-- 是否启用延迟加载机制 -->  
10         enhancementEnabled="true"       <!-- 是否启用字节码增强机制 --> 
11         errorTracingEnabled="true"      <!-- 是否启用错误处理机制 --> 
12         maxRequests="100"            <!-- 最大并发请求数 -->  
13         maxSessions="20"            <!-- 最大Session -->  
14         maxTransactions="5"          <!-- 最大并发事务数 -->   
15         useStatementNamespaces="true"      <!-- 是否启用名称空间 -->
16     />
17     <properties resource="com/zhouxy/ibatis/SqlMap.properties"/>    <!-- 引入properties文件 -->
18     
19     <transactionManager type="JDBC">    <!-- 定义了ibatis事务管理器,有3种(JDBC,JTA,EXTERNAL) -->
20     
21         <dataSource type="SIMPLE">        <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
22         
23             <property  name="JDBC.Driver" value="${driver}"/>    <!-- 将properties文件中的属性绑定 -->
24             <property  name="JDBC.ConnectionURL" value="${url}"/>
25             <property  name="JDBC.Username" value="${username}"/>
26             <property  name="JDBC.Password" value="${password}"/>
27         </dataSource>
28     </transactionManager>
29     
30     <sqlMap resource="com/zhouxy/ibatis/Student.xml"/>    <!-- 导入Student.xml文件  -->
31 </sqlMapConfig>

  3.建立Student.xml文件.

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!-- 文档申明 -->
 3 <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
 4         "http://ibatis.apache.org/dtd/sql-map-2.dtd">
 5 
 6 <sqlMap>
 7     <typeAlias alias="Student" type="com.zhouxy.ibatis.Student"/>    <!-- 给实体类启用简单别名 -->
 8     
 9     <select id="selectAllStudent" resultClass="Student">    <!-- 编写sql语句.并给该sql语句命名即id,之后根据该id进行操作 -->
10         select * from student
11     </select>
12 </sqlMap>

 4.编写Student实体类(Student.java)

 1 package com.zhouxy.ibatis;
 2 
 3 public class Student {
 4     private int id;
 5     private String name;
 6     private int age;
 7     public int getId() {
 8         return id;
 9     }
10     public void setId(int id) {
11         this.id = id;
12     }
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public int getAge() {
20         return age;
21     }
22     public void setAge(int age) {
23         this.age = age;
24     }
25     public Student() {
26         super();
27     }
28     
29     @Override
30     public String toString() {
31         String string = "id="+id+"\tname="+name+"\tage="+age;
32         
33         return string;
34     }
35 }

 5.写方法解析SqlMapConfig.xml文件.可以自己运用DOMJ或者SAX去解析,但是在ibatis的jar中已经存在相关方法了,直接调用即可.我是将其封装在ReadMethod类中的readConfig方法中,方便多处调用.

 1 package com.zhouxy.ibatis;
 2 
 3 import java.io.IOException;
 4 import java.io.Reader;
 5 
 6 import com.ibatis.sqlmap.client.SqlMapClient;
 7 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
 8 import com.ibatis.common.resources.Resources;
 9 
10 public class ReadMethod {
11     private static SqlMapClient sqlMapClient = null;
12     
13     public static SqlMapClient readConfig(){
14         
15         Reader reader = null;
16         
17         try {
18             reader = Resources.getResourceAsReader("com/zhouxy/ibatis/SqlMapConfig.xml");
19             sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
20             
21             reader.close();
22         } catch (IOException e) {
23             e.printStackTrace();
24         }
25         
26         return sqlMapClient;
27     }
28 }

 6.测试

 1 package com.zhouxy.ibatis;
 2 
 3 import java.sql.SQLException;
 4 import java.util.List;
 5 
 6 public class StudentDaoImp{
 7     public static void main(String[] args) {
 8         List<Student> list = null;
 9         
10         try {
11             list = ReadMethod.readConfig().queryForList("selectAllStudent");    //查API可知queryForList()方法有多种形式,
12                                                                                 //这里使用Student.xml文件中sql语句对应的id
13         } catch (SQLException e) {
14             e.printStackTrace();
15         }
16         
17         for(Student student : list){
18             System.out.println(student.toString());
19         }
20     }    
21 }

 运行main方法,就可以将数据库中student表中的信息查询出来.如下:

 bubuko.com,布布扣

 

初学Ibatis,布布扣,bubuko.com

初学Ibatis

标签:style   blog   http   color   java   使用   os   io   

原文地址:http://www.cnblogs.com/zhouxuanyu/p/3925564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!