首先解释一下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. python中文件变化监控-watchdog

    在python中文件监控主要有两个库,一个是pyinotify ( https://github.com/seb-m/pyinotify/wiki ),一个是watchdog(http://pytho ...

  2. python3中pymysql模块安装及连接数据库(同‘python安装HTMLTestRunner’)

    https://pypi.org/project/PyMySQL/#files 安装完成之后就是连接数据库了 机器上安装了mysql的数据库,并且已经创建了两张表用于测试 python3连接数据库及删 ...

  3. Pandas之Series+DataFrame

    Series是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,python对象) index查看series索引,values查看series值 series相比于ndarray,是一 ...

  4. 2018-2019-2 网络对抗技术 20165324 Exp1:PC平台逆向破解

    2018-2019-2 网络对抗技术 20165324 Exp1:PC平台逆向破解 实验: 要求: 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 掌握反汇编与十六进制编 ...

  5. pythonon ddt数据驱动二(json, yaml 驱动)

    这一篇主要是关于文件的数据驱动. 一.通过json文件驱动 @ddt class MyTest(unittest.TestCase): @file_data('test_data_list.json' ...

  6. python三步实现人脸识别

    原文地址https://www.toutiao.com/a6475797999176417550 Face Recognition软件包 这是世界上最简单的人脸识别库了.你可以通过Python引用或者 ...

  7. linux命令:压缩解压命令

    压缩解压命令:gzip 命令名称:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项  [文件] 功能描述:压缩文件 压缩后文件格式:g ...

  8. js中sort()方法冒泡排序模拟

    1.sort()方法概述 sort() 方法用于对数组的元素进行排序. 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点, 首 ...

  9. SQL Server报“GUID应包含带4个短划线的32位数”

    转自:http://www.seayee.net/article/info_106.html 最近在配置一台服务器的MS SQL Server 2005的维护计划自动备份数据库,能创建维护计划,但设置 ...

  10. python webdriver api-读取、设置配置文件

    文件结构: db.ini放置db信息的配置文件 文件中[gloryroad]是section信息 下边的dbname等是option信息 UiObjectMap.ini放置访问web的配置信息 配置用 ...