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();
		}
		
		
		
	}
}

  

 

 

 

posted @ 2013-10-28 16:32  E_star  阅读(285)  评论(0编辑  收藏  举报