`
aslijiasheng
  • 浏览: 57942 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

swing整合ibatis

阅读更多

最近项目要用到JAVA开发一款桌面程序,不想自己去写ORM,直接用IBATIS,所以研究了一下把log4j、ibtatis、swing三者整合在了一起,做了一个DEMO;

开发所需:myeclipse、ibatis.jar、log4j.jar、mysql.jar;

所使用的数据库为mysql的,大家可以自己去更改数据库连接符;

项目结构如下:


代码如下:

package com.edw.bean;

/**
 * @Title: Contoh.java
 * @Description:
 * @author: lijiasheng
 * @date: 2014-5-16 上午8:31:01
 * @see
 * @Copyright: 2012 www.odbpo.com Inc. All rights reserved
 * @version: V1.0
 */

public class Contoh
{
    private String nama;

    private String alamat;

    public String getNama()
    {
        return nama;
    }

    public void setNama(String nama)
    {
        this.nama = nama;
    }

    public String getAlamat()
    {
        return alamat;
    }

    public void setAlamat(String alamat)
    {
        this.alamat = alamat;
    }
}

 

package com.edw.config;
 
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
 
import java.io.IOException;
import java.io.Reader;
 
public class SqlMapConfig {
 
    protected static final SqlMapClient sqlMap;
 
    static {
        try {
            Reader reader = Resources.getResourceAsReader("com/edw/sqlmap/sqlmapconfig.xml");
            sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
        } catch (IOException e) {
            throw new RuntimeException("Fatal Error, ga dapet sqlmapconfignya.  Cause: " + e, e);
        } catch (Exception e){
            throw new RuntimeException("Fatal Error.  Cause: " + e, e);
        }
    }
 
    public static SqlMapClient getSqlMap() {
        return 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 namespace="contoh">

	<insert id="insertContoh" parameterClass="com.edw.bean.Contoh">
		insert into contoh (nama, alamat)
		values (#nama:VARCHAR#, #alamat:VARCHAR#)
	</insert>
	
	<select id="selectCheck" parameterClass="com.edw.bean.Contoh" resultClass="com.edw.bean.Contoh">
		select * from contoh where nama=#nama:VARCHAR#
	</select>
</sqlMap>

 

<?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>
	<settings useStatementNamespaces="true" lazyLoadingEnabled="true"
		enhancementEnabled="true" maxSessions="20" />

	<transactionManager type="JDBC" commitRequired="false">
		<dataSource type="SIMPLE">

			<property name="SetAutoCommitAllowed" value="false" />
			<property name="DefaultAutoCommit" value="false" />

			<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/test" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="820913" />

		</dataSource>
	</transactionManager>

	<!-- dont forget to register your sql map configs -->
	<sqlMap resource="com/edw/sqlmap/contoh.xml" />
	
</sqlMapConfig>

 

package com.edw.ui;

import com.edw.bean.Contoh;
import com.edw.config.SqlMapConfig;
import com.ibatis.sqlmap.client.SqlMapClient;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class FrameUtama extends JFrame implements ActionListener
{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private JTextField txtNama = new JTextField();

    private JTextField txtAlamat = new JTextField();

    private JButton cmdButton = new JButton("Save");

    public FrameUtama()
    {
        setLayout(new GridLayout(3, 3));
        Container con = this.getContentPane();
        con.add(new JLabel("nama : "));
        con.add(txtNama);
        con.add(new JLabel("Alamat : "));
        con.add(txtAlamat);
        con.add(cmdButton);

        cmdButton.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == cmdButton)
        {
            SqlMapClient sqlMapClient = SqlMapConfig.getSqlMap();
            
            Contoh c=new Contoh();
            c.setNama("ddd");
            
            try
            {
                @SuppressWarnings("unchecked")
                List<Contoh> list=sqlMapClient.queryForList("contoh.selectCheck", c);
                for (Contoh contoh : list)
                {
                    System.out.println(contoh.getNama());
                }
                System.out.println(list.size());
            }
            catch (SQLException e1)
            {
                e1.printStackTrace();
            }
            
            Contoh contoh = new Contoh();
            contoh.setNama(txtNama.getText());
            contoh.setAlamat(txtAlamat.getText());

            
            try
            {
                sqlMapClient.insert("contoh.insertContoh", contoh);
                System.out.println("Success");
            }
            catch (SQLException ex)
            {
                ex.printStackTrace();
            }
        }
    }

    public static void main(String[] edw)
    {
        FrameUtama frameUtama = new FrameUtama();
        frameUtama.setVisible(true);
        frameUtama.setSize(300, 150);
        frameUtama.setLocationRelativeTo(null);
    }

}

 

log4j.rootCategory=DEBUG, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p (%c:%L) - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/d\:/logs/CheckTool.log
log4j.appender.R.MaxFileSize=500000KB
log4j.appender.R.MaxBackupIndex=20
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p (%c:%L) - %m%n

log4j.logger.com.odbpo=DEBUG
log4j.logger.com.odbpo.common=DEBUG
log4j.logger.org.mybatis=DEBUG
log4j.logger.com.opensymphony=DEBUG
log4j.logger.com.opensymphony.xwork2=DEBUG
log4j.logger.org.springframework=DEBUG
log4j.logger.org.apache.struts2  = DEBUG
log4j.logger.org.apache.commons  = DEBUG
log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG

以上是项目的全部代码;附件为源码,经测试可以使用,正式生产环境的时候请把log4j配置文件里的debug替换成info

  • 大小: 98.1 KB
1
0
分享到:
评论

相关推荐

    iBatis和Spring整合

    iBatis和Spring整合 iBatis和Spring整合

    Spring整合ibatis

    ### Spring整合ibatis知识点详解 #### 一、Spring与ibatis简介 - **Spring框架**:Spring是一个开源的Java平台框架,它为开发Java应用程序提供了一种全面的基础架构支持。Spring的核心特性包括依赖注入(DI)、...

    springboot+mysql+ibatis完整整合案例

    在本项目中,"springboot+mysql+ibatis完整整合案例"是一个针对初学者的教程,旨在演示如何将Spring Boot、MySQL数据库和MyBatis框架有效地集成在一起,创建一个可运行的应用程序。以下是对这些技术及其整合过程的...

    Spring整合iBatis

    **Spring整合iBatis详解** 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力被广泛应用,而iBatis作为一个轻量级的持久层框架,以其灵活的SQL映射机制受到开发者喜爱。将两者整合,可以充分利用...

    springMVC 整合ibatis

    整合Spring MVC和iBatis的步骤如下: 1. **引入依赖**:在项目中添加Spring MVC和iBatis的jar包。这些jar包通常包括Spring的核心库、Spring MVC库、iBatis库以及相关的数据库驱动等。确保引入了如`spring-context`,...

    spring和ibatis整合

    4. **MyBatis-Spring库**:这是一个专门用于整合Spring和iBatis的库,它提供了一些便捷的bean,如SqlSessionTemplate和SqlSessionFactoryBean,可以简化整合过程。 5. **事务管理**:Spring的...

    spring3.2与Ibatis整合

    Spring 3.2 与 iBatis 的整合是Java企业级开发中常见的一种技术组合,它结合了Spring的依赖注入和事务管理能力以及iBatis的SQL映射框架的灵活性。这种整合允许开发者将业务逻辑与数据访问层解耦,提高了代码的可维护...

    Spring 整合 iBATIS 文档 详解 加 源代码

    《Spring 整合 iBATIS 全面指南》 在Java企业级开发中,Spring框架以其强大的功能和灵活的设计成为了核心组件,而iBATIS作为一款优秀的持久层框架,简化了数据库操作。当Spring与iBATIS整合时,能够实现更高效、更...

    Spring对IBatis的整合

    ### Spring对IBatis的整合 #### 一、Spring与IBatis整合概述 Spring框架与IBatis(现称为MyBatis)的整合为开发者提供了一种更简洁、更强大的数据库访问方式。Spring通过其内置的支持机制极大地简化了原有的IBatis...

    springMVC整合ibatis 配置详细

    3. **整合过程**:整合SpringMVC和iBatis主要是将iBatis的SqlSessionFactory和SqlSessionTemplate注入到Spring的Bean中,然后通过SpringMVC的Controller调用Service层,Service层再通过iBatis执行SQL。 **整合步骤...

    maven整合ibatis的简单例子

    下面我们将详细探讨如何将Maven与iBatis整合,以实现一个简单的例子。 首先,我们需要创建一个新的Maven项目。在Maven的`pom.xml`文件中,我们需要添加iBatis和其依赖的数据库驱动(如MySQL驱动)作为项目的依赖。...

    Spring 3.0 整合Ibatis 3

    ### Spring 3.0 整合 iBatis 3 的实践与配置 #### 一、背景介绍 在软件开发过程中,经常会遇到需要整合多种技术框架的情况。本文将详细介绍如何将 Spring 3.0 与 iBatis 3 进行整合。尽管作者提到 iBatis 3 在当时...

    Ibatis和Spring整合例子,实现增删改查功能

    Ibatis和Spring整合例子,实现增删改查功能.

    ibatis 与spring3整合

    "Ibatis 与 Spring3 整合"这一主题,涉及到的是两个知名Java框架——Ibatis(一个轻量级的持久层框架)和Spring(一个全面的企业级应用框架)的协同工作。下面我们将深入探讨这一整合过程中的关键知识点。 Ibatis ...

    ibatis与spring整合

    ### ibatis与Spring框架整合详解 #### 一、ibatis简介 ibatis是一个开源的、基于Java的持久层框架,它提供了SQL映射的方式来进行数据库访问。与Hibernate等其他ORM框架相比,ibatis更加轻量级,对于那些只需要简单...

    android应用整合Ibatis框架

    在Android应用开发中,Ibatis框架的整合是一个重要的技术实践,它可以帮助开发者更方便地管理数据库操作,提高代码的可维护性和灵活性。Ibatis最初是为Java Web开发设计的一个持久层框架,但通过适当的修改,也可以...

    spring与ibatis整合集成实例

    在整合 Spring 和 iBATIS 进行项目开发时,主要涉及以下几个关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring 的核心特性之一,通过 DI 可以使代码更松耦合,易于测试和维护。在整合 iBATIS 时,...

    springMVC整合Ibatis

    Spring MVC 和 iBatis 的整合是企业级 Java 开发中常见的技术栈选择,它结合了 Spring 的优秀控制反转(IoC)和面向切面编程(AOP)特性,以及 iBatis 提供的灵活数据库访问层。在这个整合过程中,我们可以实现松散...

Global site tag (gtag.js) - Google Analytics