ibatis的简单运用

首先:ibatis跟hibernate一样都是ORM,hibernate是全自动化,而ibatis是半自动化,hibernate的sql语句都是规定好的,你只能调用而不能自己写,很方便,但是有些时候不能按照自己的想法来,而ibatis就是自己书写sql语句。

 

由于我用的maven+ibatis,所以jar包是直接在maven上下的,用的是ibatis2的版本,下面是我的项目样本:

 

 

首先你需要建一个jdbc.properties的jdbc的配置文件,用来连接数据库:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/caoke?characterEncoding=utf8
jdbc.username=root
jdbc.password=sasa

一定记得导连接数据库的jar包,我用的是mysql,所以是com.mysql.jdbc.Driver

第二行是数据库的具体位置,问号后的转换数据的格式,防止中文乱码

第三行是root的数据库账号

第四行是数据库的登录密码

(每一行后面绝对不能留空格,不然会报错,作者在这里栽了一个大坑!!!)

 

接下来 iBatis的配置文件SqlMapConfig.xml,这里面需要声明数据库连接的属性信息,数据源配置信息,映射文件等信息。先看个例子,其中属性含义先不必深究,当然也可以去google

<?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>  
    <properties resource="jdbc.properties" />  
    <transactionManager type="JDBC">  
        <dataSource type="SIMPLE">  
            <property name="JDBC.Driver" value="${jdbc.driverClassName}" />  
            <property name="JDBC.ConnectionURL" value="${jdbc.url}" />  
            <property name="JDBC.Username" value="${jdbc.username}" />  
            <property name="JDBC.Password" value="${jdbc.password}" />  
        </dataSource>  
    </transactionManager>  
    <sqlMap resource="com/entity/User.xml" />  
</sqlMapConfig>  

 

实体类这种细节我就没解释了,配置完上面两个文件就完成了所有的配置文件,我们就要进行数据库操作了,当然iBatis本身的SQL语句也是写在映射文件中的,那么就要看User.xml

<sqlMap>  
    <typeAlias alias="User" type="com.entity.user" />  
    <select id="getAllUsers" resultClass="User">  
        select * from user  
    </select>  
</sqlMap>

 

typeAlias标签是设置别名用的,这里我们使用了一个Bean叫做User,声明别名后,在文件的后续部分可以直接使用别名而不用再给出完整类型了,非常方便,如select标签中的resultClass属性。 


    这个配置我们使用的是Bean作为返回的结果类型,当然也可以使用Map,非常灵活。Selectid是标识该SQL语句的标识符,要在应用程序中使用到,必须唯一。Select标签体内的部分就是SQL语句了,当然这里是最简单的示例。 


    最后就是应用程序,写法也很简单。首先是加载iBatis的配置文件,然后使用SqlMapClient接口提供的方法进行数据操作:

public static void main(String[] args) throws Exception {  
        String config = "com/SqlMapConfig.xml";  
        Reader reader = Resources.getResourceAsReader(config);  
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
        List<user> list = sqlMap.queryForList("getAllUsers");  
        for (user user : list) {  
            System.out.println(user.getName());  
        }  
        
    }  

猜你喜欢

转载自blog.csdn.net/wff900703/article/details/82561316