1创建数据库
create table user
(
id int auto_increment primary key,
username varchar(32),
password varchar(32)
);
select * from user;
2
添加IBATIS的jar包;
3添加配置文件sqlMapConfig.xml
<?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>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="admin"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/wangyu/data/User.xml"/>
</sqlMapConfig>
4实体类User.java
package com.wangyu.domain;
public class User {
private Integer id;
private String username;
private String password;
// Constructors
public User() {
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return this.username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
5对应的.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="User">
<!-- Use type aliases to avoid typing the full classname every time. -->
<typeAlias alias="User" type="com.wangyu.domain.User"/>
<!-- Select with no parameters using the result map for Account class. -->
<select id="selectAllUsers" resultClass="User">
select * from user
</select>
<!-- A simpler select example without the result map. Note the
aliases to match the properties of the target result class. -->
<select id="selectUserById" parameterClass="int" resultClass="User">
select
id as id,username as UserName ,password as Password
from user
where id = #id#
</select>
<!-- Insert example, using the Account parameter class -->
<insert id="insertUser" parameterClass="User">
insert into user (username,password) values (#username#,#password#)
</insert>
<!-- Update example, using the Account parameter class -->
<update id="updateUser" parameterClass="User" >
update user set username = #username#,password=#password# where id = #id#
</update>
<!-- Delete example, using an integer as the parameter class -->
<delete id="deleteUserById" parameterClass="int">
delete from user where id = #id#
</delete>
</sqlMap>
6.DAO类SimpleExample
package com.wangyu.data;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.wangyu.domain.User;
public class SimpleExample {
private static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("com/wangyu/data/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// Fail fast.
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}
public static List<User> selectAllUser () throws SQLException {
return sqlMapper.queryForList("selectAllUsers");
}
public static User selectUserById (int id) throws SQLException {
return (User) sqlMapper.queryForObject("selectUserById", id);
}
public static void insertUser (User user) throws SQLException {
sqlMapper.insert("insertUser", user);
}
public static void updateUser (User user) throws SQLException {
sqlMapper.update("updateUser", user);
}
public static void deleteUser (int id) throws SQLException {
sqlMapper.delete("deleteUserById", id);
}
}
7.测试类
package com.wangyu.data;
import java.util.Iterator;
import java.util.List;
import com.wangyu.domain.User;
public class Test {
public static void main(String[] args)throws Exception {
User u =new User();
//添加用户
// for (int i =1;i<10;i++){
// u.setPassword("password"+i);
// u.setUsername("username"+i);
// SimpleExample.insertUser(u);
// }
//删除用户 -->没有不会抛出异常
SimpleExample.deleteUser(2);
//修改用户
User user =SimpleExample.selectUserById(6) ;
user.setPassword("zhuangsan");
user.setUsername("zhangsan");
SimpleExample.updateUser(user);
//System.out.println(user.getPassword());
//查询所有用户
List<User> list = SimpleExample.selectAllUser();
Iterator<User> rt=list.iterator();
while(rt.hasNext()){
User us = (User)rt.next();
System.out.println(us.getId()+"--->"+us.getPassword()+"--->"+us.getUsername());
}
//按id查询 -->没有数据 -->空指针异常
User us = SimpleExample.selectUserById(6);
System.out.println(us.getUsername());
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
iBATIS声明事事务
public static void insertUser(User user){
try {
sqlMapper.startTransaction();
sqlMapper.insert("insertUser", user);
sqlMapper.commitTransaction();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
sqlMapper.endTransaction();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
iBATIS 是一款轻量级的Java持久层框架,它提供了简单而强大的数据映射功能,使得SQL与Java代码能够紧密结合。以下是对iBATIS简易使用的详细解释: 1. **环境准备**: - **jar文件**:iBATIS框架运行需要依赖一些库...
**Ibatis简介** Ibatis,又称为MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及...通过学习和实践这个简单的CRUD例子,开发者可以快速掌握Ibatis的基本操作,并将其应用到实际项目中,提升开发效率。
这个"ibatis简单例子"旨在帮助初学者理解Ibatis的基本用法,包括配置文件的设置、SQL映射文件的编写以及如何在Java代码中调用这些映射的SQL。通过实践这两个小例子,可以深入理解Ibatis如何将数据库操作与业务逻辑...
在这个“使用的iBatis简单例子”中,我们将深入探讨如何配置和使用iBatis进行数据库交互。 首先,iBatis的核心组件包括XML配置文件、SQL映射文件以及SqlSessionFactory。XML配置文件用于定义数据源、事务管理器等...
本篇文章将详细介绍Ibatis的简单操作,并结合实际的Java测试代码进行解析。 Ibatis是由Clinton Begin创建的开源项目,它并非是一个完整的ORM框架,而是一个SQL映射框架,主要负责SQL语句的编写与执行。Ibatis的主要...
下面我们将详细探讨如何将Maven与iBatis整合,以实现一个简单的例子。 首先,我们需要创建一个新的Maven项目。在Maven的`pom.xml`文件中,我们需要添加iBatis和其依赖的数据库驱动(如MySQL驱动)作为项目的依赖。...
**Ibatis简单实例** 在"IbatisTest"这个简单实例中,我们通常会经历以下步骤: 1. **引入依赖**: 在项目中引入Ibatis的jar包,包括核心库mybatis-x.x.x.jar和相关数据库驱动。 2. **配置SqlMapConfig.xml**: 配置...
总的来说,`IBATISDAO`库类为Java开发者提供了一种简洁、高效的数据库操作方式,它结合了IBATIS的灵活性和DAO模式的封装性,使得数据库操作变得更加简单和可控。在实际项目中,正确理解和运用`IBATISDAO`库类,可以...
在iBatis的简易教程中,我们将通过三个例子来逐步理解如何配置和使用iBatis。首先,我们需要创建数据库和对应的表。在本例中,我们使用MySQL 5.0,并创建了一个名为`contact`的表,包含`contactid`、`firstName`、`...
iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL,同时保持代码的可维护性。本文将通过分析iBatis的源码,深入探讨其设计理念和实现机制。 一、iBatis架构概述 ...
通过以上步骤,你已经掌握了iBatis的基本使用,能够进行简单的增删改查操作。在实际开发中,还可以结合Spring等框架,进一步提高开发效率和代码质量。记住,理解iBatis的核心思想——SQL与Java代码的分离,有助于更...
iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...
SQL Maps是iBATIS的核心,通过XML文件定义了Java对象与SQL语句之间的映射,大大减少了数据库操作的代码量。这种映射方式使得SQL语句的管理更加灵活,也更易于理解和维护。 二、iBATIS与传统JDBC的比较 iBATIS与JDBC...
在本教程中,我们将通过一个简单的Ibatis入门例子,带你逐步了解并掌握这个强大的框架。 首先,我们需要在项目中引入Ibatis的依赖。通常,我们会在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org....
在这个"Ibatis简单案例"中,我们可以预期学习到以下关键知识点: 1. **配置文件**:Ibatis的核心配置文件`mybatis-config.xml`包含了数据源、事务管理器等信息,是整个框架运行的基础。我们需要了解如何编写这个...
这个入门例子通过一步步的指导,帮助初学者理解如何使用iBatis进行简单的数据库操作。通过学习和实践,你可以逐渐掌握更复杂的查询、动态SQL以及事务管理等高级特性,进一步提升你的Java开发能力。
在IT行业中,数据库操作是必不可少的一部分,而Ibatis作为一个轻量级的持久层框架,为开发者提供了方便快捷的SQL映射工具,使得CRUD(创建、读取、更新、删除)操作变得更加简单易行。相较于Hibernate这样的ORM框架...
3. **易于学习和集成**: Ibatis 的 API 设计简单,易于上手,且可以方便地与 Spring 等其他框架集成。 **在实际项目中的应用** 在实际开发中,Ibatis 常常被用于数据访问层,与 Service 层、DAO 层配合使用。例如...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...