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)