目录结构:
Test.java
package com.you.me;
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;
/**
* author:you.me 2010-12-22
*
*/
public class Test {
static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader =
Resources.getResourceAsReader("com/you/me/SqlMapConfig.xml");
sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args)
throws IOException, SQLException {
/**查询FIND BY ID*/
// User user = (User) sqlMapClient.queryForObject("getUser",new Integer(2));
// System.out.println(user.getName());
/**查询FIND ALL*/
// List list = sqlMapClient.queryForList("getAllUser");
// System.out.println(list.size());
/**插入INSERT*/
// User user = new User(3,"王五","male",25,"wangwu","123456");
// sqlMapClient.insert("insertUser",user);
/**删除DELETE*/
// sqlMapClient.delete("deleteUser",new Integer(2));
/**修改UPDATE*/
// User user = new User(3,"王老五","male",24,"wanglaowu","123456");
// sqlMapClient.update("updateUser",user);
}
}
User.java
package com.you.me;
public class User {
private int id;
private String name;
private String sex;
private int age;
private String username;
private String password;
public User() {
}
public User(int id, String name, String sex, int age, String username, String password) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
db.properties 用于通过属性文件连接数据库。如果在SqlMapConfig.xml中直接连接数据库则不需要这个。
driver=com.mysql.jdbc.Driver url=jdbc:mysql://192.168.1.74:3306/test user=root password=root
SqlMapConfig.xml 连接是的mysql数据库。需要加入mysq jar包mysql-connector-java-5.1.15-bin.jar 和ibatis核心包ibatis-2.3.4.726.jar
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="com/you/me/db.properties" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}" /><!--通过属性文件连接数据库 -->
<property name="JDBC.ConnectionURL" value="${url}" />
<property name="JDBC.Username" value="${user}" />
<property name="JDBC.Password" value="${password}" />
<!-- <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
<property name="JDBC.ConnectionURL" value="jdbc:mysql://192.168.1.74:3306/test" />
<property name="JDBC.Username" value="root" />
<property name="JDBC.Password" value="root" /> -->
</dataSource>
</transactionManager>
<sqlMap resource="com/you/me/User.xml" />
</sqlMapConfig>
<!-- SqlMapConfig.xml是ibatis连接数据库的配置文件 -->
User.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd" >
<sqlMap namespace="User">
<!--
create table temp_user (
id number primary key ,
name varchar2(30),
sex varchar2(10),
age number ,
username varchar2(30),
password varchar2(30));
insert into temp_user
values(1,'张三','male',23,'zhangsan','123456');
insert into temp_user
values(2,'李四','male',23,'lisi','123456');
commit;
-->
<select id="getUser" parameterClass="int" resultClass="com.you.me.User"><!--parameterClass传值参数类型 resultClass返回值类型-->
select id,name,sex,age,username,password
from temp_user
where id = #id#
</select>
<select id="getAllUser" resultClass="java.util.List">
select id,name,sex,age,username,password
from temp_user
</select>
<insert id="insertUser" parameterClass="com.you.me.User">
insert into temp_user
values(#id#,#name#,#sex#,#age#,#username#,#password#)
</insert>
<delete id="deleteUser" parameterClass="int">
delete from temp_user
where id = #id#
</delete>
<update id="updateUser" parameterClass="com.you.me.User">
update temp_user set
name = #name# ,
age = #age# ,
username = #username# ,
password = #password#
where id =#id#
</update>
</sqlMap>
怎么样,ibatis也不是很难吧,将所有的SQL语句统一管理起来,十分方便,对于写复杂的SQL语句也可以直接来写
顺便介绍下MyBatis
MyBatis来源于iBATIS,iBATIS是一个由Clinton Begin在2001年发起的开放源代码项目,iBATIS一词来源于“internet”和“abatis”的组合。该项目最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),它是著名的ORM开发框架,分为Java和.NET版本,有着众多的追随者。
iBATIS更名为MyBatis并迁移到Google Code,此次项目迁移后,将启用新的网站http://www.mybatis.org/,由于目前只是改了名字,因此仍然可直接浏览iBatis的文档。
MyBatis开发团队希望脱离Apache而独立发展,并保证不会修改授权协议(Apache License)、代码完全兼容、包名不会更改、也不会删除 Apache站上的任何相关资源。
改名后的第一次版本MyBatis 3.0.1已经发布,基于iBatis 3.0版本,该版本非常稳定,已经有很多用户使用了数周时间,修复了一些小bug。欲下载 MyBatis 3.0.1请到它新的网站http://www.mybatis.org/。
来源:https://www.cnblogs.com/Nbge/archive/2012/07/04/2575959.html