最近项目要用到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
相关推荐
iBatis和Spring整合 iBatis和Spring整合
### Spring整合ibatis知识点详解 #### 一、Spring与ibatis简介 - **Spring框架**:Spring是一个开源的Java平台框架,它为开发Java应用程序提供了一种全面的基础架构支持。Spring的核心特性包括依赖注入(DI)、...
在本项目中,"springboot+mysql+ibatis完整整合案例"是一个针对初学者的教程,旨在演示如何将Spring Boot、MySQL数据库和MyBatis框架有效地集成在一起,创建一个可运行的应用程序。以下是对这些技术及其整合过程的...
**Spring整合iBatis详解** 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力被广泛应用,而iBatis作为一个轻量级的持久层框架,以其灵活的SQL映射机制受到开发者喜爱。将两者整合,可以充分利用...
整合Spring MVC和iBatis的步骤如下: 1. **引入依赖**:在项目中添加Spring MVC和iBatis的jar包。这些jar包通常包括Spring的核心库、Spring MVC库、iBatis库以及相关的数据库驱动等。确保引入了如`spring-context`,...
4. **MyBatis-Spring库**:这是一个专门用于整合Spring和iBatis的库,它提供了一些便捷的bean,如SqlSessionTemplate和SqlSessionFactoryBean,可以简化整合过程。 5. **事务管理**:Spring的...
Spring 3.2 与 iBatis 的整合是Java企业级开发中常见的一种技术组合,它结合了Spring的依赖注入和事务管理能力以及iBatis的SQL映射框架的灵活性。这种整合允许开发者将业务逻辑与数据访问层解耦,提高了代码的可维护...
《Spring 整合 iBATIS 全面指南》 在Java企业级开发中,Spring框架以其强大的功能和灵活的设计成为了核心组件,而iBATIS作为一款优秀的持久层框架,简化了数据库操作。当Spring与iBATIS整合时,能够实现更高效、更...
### Spring对IBatis的整合 #### 一、Spring与IBatis整合概述 Spring框架与IBatis(现称为MyBatis)的整合为开发者提供了一种更简洁、更强大的数据库访问方式。Spring通过其内置的支持机制极大地简化了原有的IBatis...
3. **整合过程**:整合SpringMVC和iBatis主要是将iBatis的SqlSessionFactory和SqlSessionTemplate注入到Spring的Bean中,然后通过SpringMVC的Controller调用Service层,Service层再通过iBatis执行SQL。 **整合步骤...
下面我们将详细探讨如何将Maven与iBatis整合,以实现一个简单的例子。 首先,我们需要创建一个新的Maven项目。在Maven的`pom.xml`文件中,我们需要添加iBatis和其依赖的数据库驱动(如MySQL驱动)作为项目的依赖。...
### Spring 3.0 整合 iBatis 3 的实践与配置 #### 一、背景介绍 在软件开发过程中,经常会遇到需要整合多种技术框架的情况。本文将详细介绍如何将 Spring 3.0 与 iBatis 3 进行整合。尽管作者提到 iBatis 3 在当时...
Ibatis和Spring整合例子,实现增删改查功能.
"Ibatis 与 Spring3 整合"这一主题,涉及到的是两个知名Java框架——Ibatis(一个轻量级的持久层框架)和Spring(一个全面的企业级应用框架)的协同工作。下面我们将深入探讨这一整合过程中的关键知识点。 Ibatis ...
### ibatis与Spring框架整合详解 #### 一、ibatis简介 ibatis是一个开源的、基于Java的持久层框架,它提供了SQL映射的方式来进行数据库访问。与Hibernate等其他ORM框架相比,ibatis更加轻量级,对于那些只需要简单...
在Android应用开发中,Ibatis框架的整合是一个重要的技术实践,它可以帮助开发者更方便地管理数据库操作,提高代码的可维护性和灵活性。Ibatis最初是为Java Web开发设计的一个持久层框架,但通过适当的修改,也可以...
在整合 Spring 和 iBATIS 进行项目开发时,主要涉及以下几个关键知识点: 1. **依赖注入 (Dependency Injection, DI)**:Spring 的核心特性之一,通过 DI 可以使代码更松耦合,易于测试和维护。在整合 iBATIS 时,...
Spring MVC 和 iBatis 的整合是企业级 Java 开发中常见的技术栈选择,它结合了 Spring 的优秀控制反转(IoC)和面向切面编程(AOP)特性,以及 iBatis 提供的灵活数据库访问层。在这个整合过程中,我们可以实现松散...