欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ibatis的简单运用

程序员文章站 2022-07-15 10:34:59
...

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

 

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

 

ibatis的简单运用

 

首先你需要建一个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());  
        }  
        
    }  

 

相关标签: ibatis