首先解释一下CRUD的含义:CRUD是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete) 基本的数据库操作

创建工程iBatisDemo

1:首先要导入关于iBatis的jar包,以及连接数据库的jar包(我用的是MySQL

2: 创建表t_person, 建立实体类Person

create table t_person(
id int primary key auto_increment,
name varchar(50),
age int
);

  

public class Person {
private int id;
private String name;
private int age; ......
}

  

3:创建总的XML配置文件

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>
<!-- 引入资源 -->
<properties resource="SqlMap.properties"/>
<!-- 配置数据库连接信息 -->
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" />
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${username}" />
<property name="JDBC.Password" value="${password}" />
</dataSource>
</transactionManager> <sqlMap resource="com/gbx/Person.xml"/> </sqlMapConfig>

  

l, SqlMap.properties

SqlMap.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=1

  

  

4: 穿件实体类的XML配置文件 Person.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="Person"> <!-- 实体类路径和类名 -->
<typeAlias type="com.gbx.Person" alias="person"/>
<!-- 数据库实体类的映射 -->
<resultMap id="personsResult" class="person" >
<result property="id" column="id" />
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap> <!-- SQL语句 --> <insert id="insertPerson" parameterClass="person">
insert into t_person(
id,
name,
age
)
values(
#id#,
#name#,
#age#
)
</insert> <select id="queryPersonById" parameterClass="int" resultClass="person">
select id, name, age from t_person where id = #id#
</select> <select id="queryAll" resultMap="personsResult">
select id, name, age from t_person;
</select>
<update id="updatePersonById" parameterClass="person">
update t_person set name = #name#, age = #age# where id = #id#
</update>
<delete id="deletePersonById" parameterClass="int">
delete from t_person where id = #id#
</delete> </sqlMap>

  

5: 写测试类

package com.gbx.dao;

import java.awt.Font;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List; import javax.swing.JOptionPane; import com.gbx.Person;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class PersonDao {
private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//C
public void insertPerson(Person person) throws SQLException {
sqlMapClient.insert("insertPerson", person);
}
//R
public Person queryPersonById(int id) throws SQLException {
return (Person)sqlMapClient.queryForObject("queryPersonById", id);
}
@SuppressWarnings("unchecked")
public List<Person> queryALl() throws SQLException {
return sqlMapClient.queryForList("queryAll");
}
//U
public void updatePersonById(Person person) throws SQLException {
sqlMapClient.update("updatePersonById", person);
}
//D
public void deletePersonById(int id) throws SQLException {
sqlMapClient.delete("deletePersonById", id);
} public static void main(String args[]) {
//C
/*Person person = new Person();
person.setId(3);
person.setName("小米3");
person.setAge(57);
try {
new PersonDao().insertPerson(person);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StringBuilder br = new StringBuilder();
br.append("添加成功!往数据中添加了如下数据:\n");
br.append("编号 " + "姓名 " + "年龄 \t\n ");
br.append(person.getId() + " " + person.getName() + " " + person.getAge() + " \n"); JOptionPane.getRootFrame().setFont(new Font("Arial", Font.BOLD, 20));
JOptionPane.showMessageDialog(null, br.toString());*/ //R
/*Person person;
try {
person = new PersonDao().queryPersonById(1);
StringBuilder br = new StringBuilder();
br.append("查询成功!往数据中添加了如下数据:\n");
br.append("编号 " + "姓名 " + "年龄 \t\n ");
br.append(person.getId() + " " + person.getName() + " " + person.getAge() + " \n"); JOptionPane.getRootFrame().setFont(new Font("Arial", Font.BOLD, 20));
JOptionPane.showMessageDialog(null, br.toString());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
List<Person> persons = new PersonDao().queryALl(); for (Person p : persons) {
System.out.println(p.getId() + " " +p.getName() + " " + p.getAge());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/ //U
/*Person p = new Person();
p.setName("哈哈");
p.setAge(100);
p.setId(1);//表示修改1号
try {
new PersonDao().updatePersonById(p);
System.out.println("修改成功");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/ //D
try {
new PersonDao().deletePersonById(3);
System.out.println("删除成功。。");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}

  

iBatis的基本配置+CRUD操作的更多相关文章

  1. mybatis(二)执行CRUD操作的两种方式配置和注解

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...

  2. hibernate入门-基本配置及简单的crud操作

    框架来说主要是需要写大量的配置文件,hibernate相比mybatis来说更强大,移植性更好: 1.类和数据库的映射配置:配置文件命名一般--类名.hbm.xml (user.hbm.xml),与实 ...

  3. 数据库CRUD操作以及MyBatis的配置使用

    • 业务字段设计 • 数据库创建 • CRUD操作 • MyBatis集成 • 注解和XML定义 • ViewObject和DateTool • 首页开发     • 业务字段设计 实体: name: ...

  4. 使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...

  5. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  6. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

  8. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  9. MyBatis学习总结_02_使用MyBatis对表执行CRUD操作

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...

随机推荐

  1. javascript 获取元素样式的方法

    javascript 获取元素样式常用方法. Javascript获取CSS属性值方法:getComputedStyle和currentStyle  1 .对于元素的内联CSS样式(<div s ...

  2. Ajax学习整理笔记

    AJAX技术的出现使得javascript技术大火.不懂AJAX的同学百度一下,了解AJAX能做什么就可以了. 代码: <!DOCTYPE html> <html> <h ...

  3. [转]C语言四书五经

    我们来说说C语言方面的图书.什么,C语言?有读者奇怪了.没错,这一次的主角就是诞生于1973年如今已经儿孙满堂的C语言.我们之所以要谈及C,不仅仅是因为它的影响深远,这完全可以从C系列语言家族的兴旺发 ...

  4. 002-ubuntu安装

    一.安装了ubuntu desktop版本后: 1.进行桥接联网. 2.运行更新:#sudo apt-get update. 3.安装net-tools网络工具包:#sudo apt install ...

  5. javascript 判断数据类型

    Object.prototype.toString.call(asddfff) //报错asddfff没被定义Object.prototype.toString.call(undefined) //& ...

  6. Learning to Rank算法介绍:RankSVM 和 IR SVM

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  7. Object-C-NSString

    NSString *info=@"Hello world"; NSString *info=[[NSString alloc]initWithFormat:@"my na ...

  8. Devenv 命令行开关

    Devenv 可用来设置集成开发环境 (IDE) 的各个选项,以及从命令行生成.调试和部署项目.使用这些开关从脚本或 .bat 文件(例如每夜生成的脚本)运行 IDE,或以特定配置启动 IDE. 说明 ...

  9. 持续集成之二:搭建SVN服务器(SvnAdmin)

    安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7. ...

  10. python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色

    练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...