iBatis的基本配置+CRUD操作
首先解释一下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操作的更多相关文章
- mybatis(二)执行CRUD操作的两种方式配置和注解
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...
- hibernate入门-基本配置及简单的crud操作
框架来说主要是需要写大量的配置文件,hibernate相比mybatis来说更强大,移植性更好: 1.类和数据库的映射配置:配置文件命名一般--类名.hbm.xml (user.hbm.xml),与实 ...
- 数据库CRUD操作以及MyBatis的配置使用
• 业务字段设计 • 数据库创建 • CRUD操作 • MyBatis集成 • 注解和XML定义 • ViewObject和DateTool • 首页开发 • 业务字段设计 实体: name: ...
- 使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
上一篇博文MyBatis学习总结(一)——MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...
- MyBatis学习总结_02_使用MyBatis对表执行CRUD操作
一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0&q ...
随机推荐
- Groovy介绍
关于 Groovy 这一节将学习 Groovy 的基础知识:它是什么,它与 Java 语言和 JVM 的关系,以及编写 Groovy 代码的一些要点. 一.什么是 Groovy? Groovy 是 J ...
- [LeetCode] 532. K-diff Pairs in an Array_Easy tag: Hash Table
Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in t ...
- 学习Css补充知识点
1.text-transform: capitalize;UpperCase等 2.border-size:box,边框在定义的宽高范围内画, content默认,在宽高外画.元互的宽高只指内容 3 ...
- mysql重做日志
一.重做日志(redo log) 1.作用 确保事务的持久性. 防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性. 2 ...
- <A Decomposable Attention Model for Natural Language Inference>(自然语言推理)
http://www.xue63.com/toutiaojy/20180327G0DXP000.html 本文提出一种简单的自然语言推理任务下的神经网络结构,利用注意力机制(Attention Mec ...
- yii2 restful api——app接口编程实例
<?php namespace common\components; use common\models\Cart; use common\models\User; use Yii; use y ...
- BabelMap 10.0.0.5 汉化版已经发布
新的 BabelMap 调整了用户体验的一些细节.修正了西夏语表意文字序列.修正了一些文字显示不全的问题. 请点击页面左上角连接,进入下载页面下载.
- 公司里面用的iTextSharp(教程)---关于PDF的属性设置
下面介绍下怎么添加属性,代码如下: protected void Button1_Click(object sender, EventArgs e) { Document doc = new Do ...
- python sys.stdin、sys.stdout和sys.stderr
学习并转载自 https://www.cnblogs.com/guyuyuan/p/6885448.html 标准输入:一般是键盘.stdin对象为解释器提供输入字符流,一般使用raw_input( ...
- python 冒泡排序的总结
冒泡排序: 思路: 3 5 1 6 2 第一次:找到这些书中最大的一个,并把它放到最后 3.5找到大的数放到第二个位置1.5 5.1找到大的数放到第三个位置1.5.1 5.6找到大的数放到第四个位置 ...