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 ...
随机推荐
- javascript 获取元素样式的方法
javascript 获取元素样式常用方法. Javascript获取CSS属性值方法:getComputedStyle和currentStyle 1 .对于元素的内联CSS样式(<div s ...
- Ajax学习整理笔记
AJAX技术的出现使得javascript技术大火.不懂AJAX的同学百度一下,了解AJAX能做什么就可以了. 代码: <!DOCTYPE html> <html> <h ...
- [转]C语言四书五经
我们来说说C语言方面的图书.什么,C语言?有读者奇怪了.没错,这一次的主角就是诞生于1973年如今已经儿孙满堂的C语言.我们之所以要谈及C,不仅仅是因为它的影响深远,这完全可以从C系列语言家族的兴旺发 ...
- 002-ubuntu安装
一.安装了ubuntu desktop版本后: 1.进行桥接联网. 2.运行更新:#sudo apt-get update. 3.安装net-tools网络工具包:#sudo apt install ...
- javascript 判断数据类型
Object.prototype.toString.call(asddfff) //报错asddfff没被定义Object.prototype.toString.call(undefined) //& ...
- Learning to Rank算法介绍:RankSVM 和 IR SVM
之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...
- Object-C-NSString
NSString *info=@"Hello world"; NSString *info=[[NSString alloc]initWithFormat:@"my na ...
- Devenv 命令行开关
Devenv 可用来设置集成开发环境 (IDE) 的各个选项,以及从命令行生成.调试和部署项目.使用这些开关从脚本或 .bat 文件(例如每夜生成的脚本)运行 IDE,或以特定配置启动 IDE. 说明 ...
- 持续集成之二:搭建SVN服务器(SvnAdmin)
安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7. ...
- python excel操作 练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称。每个sheet有个底色
练习:#生成一个excel文件,生成3个sheet,每个sheet的a1写一下sheet的名称.每个sheet有个底色 #coding=utf-8 from openpyxl import Workb ...