使用 IBATIS 框架开发JAVA GUI

这段时间,公司没有整活都是一些零碎的事情。

所以我才有时间写博客,与大家做技术共享。

今天 要说一下做java GUI变成时持久层如何使用ibatis或者说是mybatis.

这个例子使用的mysql数据库做演示。

1. 新建java Project等等这些问题就不说,主要说一下和ibatis框架相关的内容;

2. 首先要将ibatis.jar包导入到工程中;

3. 将mysql数据库驱动导入到工程;

4. 在src下新建sqlMapConfig.xml文件,文件中的代码如下:

       <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig >
   <settings
      cacheModelsEnabled ="true"      
      enhancementEnabled ="true"      
      lazyLoadingEnabled ="true"      
      errorTracingEnabled ="true"      
      useStatementNamespaces ="false"    
       />  
   <transactionManager  type ="JDBC" > <!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->
    <dataSource  type ="SIMPLE" > <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
        <property  name ="JDBC.Driver"  value ="com.mysql.jdbc.Driver" />
        <property  name ="JDBC.ConnectionURL"  value ="jdbc:mysql://localhost:3306/gui" />
        <property  name ="JDBC.Username"  value ="root" />
        <property  name ="JDBC.Password"  value ="root" />
        <property  name ="Pool.MaximumActiveConnections"  value ="10"/> <!-- 连接池维持的最大容量 -->
        <property  name ="Pool.MaximumIdleConnections"  value ="5" /> <!-- 连接池允许挂起的最大连接 -->
        <property  name ="Pool.MaximumCheckoutTime"  value ="120000" /> <!-- 连接被某个任务所允许占用的最大时间 -->
        <property  name ="TimeToWait"  value ="500" /> <!-- 线程允许等待的最大时间 -->
    </dataSource >
  </transactionManager >
  <sqlMap resource ="dbUtils/userMap.xml" />
</sqlMapConfig >


5. 关于上面的代码我就不一一讲解了,我只挑重点的数一下:

        1) <property  name ="JDBC.Driver"  value ="com.mysql.jdbc.Driver" />这个是指定数据库驱动;

        2)<property  name ="JDBC.ConnectionURL"  value ="jdbc:mysql://localhost:3306/gui" />这个是指定连接地址gui为数据库名称,这个数据库在数据库系统已经创建完成;

       3)<property  name ="JDBC.Username"  value ="root" />这个是连接数据库系统的用户名;

      4)<property  name ="JDBC.Password"  value ="root" />这个是连接数据库系统的密码;


6.新建文件夹dbUtils下面新建类BaseDb代码如下:

       package dbUtils;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import practice.User;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class BaseDb {
    
    private static SqlMapClient sqlMapClient = null;
    public static SqlMapClient getSqlMapClient(){
        InputStream inputStream = null;
        try{

             //这个路径是sqlMapConfig.xml文件所在的绝对路径,你也可以用相对路径。第一次写的时候不确定路径不碍事看程序报的错误,他会说在什么什么路径下找不到该文件,然后你就可以根据提示指引路径。

            inputStream = new FileInputStream("E:\\workspace\\GUI\\src\\sqlMapConfig.xml");
            
            sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(null != inputStream){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return sqlMapClient;
    }
    
    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws Exception {
        List<User> list = BaseDb.getSqlMapClient().queryForList("findUserInfo");
        
        if(list.isEmpty()){
            System.out.println("ERROR");
        } else {
            System.out.println("SUCCESS");
            for(User user : list){
                System.out.println(user.getName());
            }
        }
    }

}

7. 在dbUtils包下面新建userMap.xml文件,文件内容如下:

      <?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="dbUtils.userMap">
    <typeAlias alias="User" type="practice.User" />
<select id="findUserInfo" parameterClass="map" resultClass="User">
    SELECT
        NUM ,
        NAME ,
        PASSWORD ,
        SEX
    FROM
        USER  
    WHERE
        NUM = #num#
        AND PASSWORD = #password#
</select>
    
</sqlMap>

8. 这里是为了写sql语句的地方,看到那个id了吧,我在main方法里面有用到它,他的作用是告诉程序执行那个sql。

9. 看到上面的<sqlMap namespace="dbUtils.userMap">了吧,他是和sqlMapConfig.xml文件中<sqlMap resource ="dbUtils/userMap.xml" />对应着的,程序就跟小孩一样你不告诉他他也找不到。

10. 有上面的内容你应该已经知道如何和GUI程序管理了吧,如果还不清楚的话也不碍事。我会把我程序打包上传的资源里面,你可以下。我会把用到的jar包和源码都放进去。下面是我的工程目录截图,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值