zoukankan      html  css  js  c++  java
  • 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("添加成功!往数据中添加了如下数据:
    ");
    		br.append("编号     " + "姓名     " + "年龄   	
     ");
    		br.append(person.getId() + "  " + person.getName() + "  " + person.getAge() + "  
    ");
    		
    		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("查询成功!往数据中添加了如下数据:
    ");
    			br.append("编号     " + "姓名     " + "年龄   	
     ");
    			br.append(person.getId() + "          " + person.getName() + "       " + person.getAge() + "  
    ");
    			
    			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();
    		}
    		
    		
    		
    	}
    }
    

      

  • 相关阅读:
    截取最后一个下划线前面的字符串
    jqgrid加载本地数据功能
    Android、Ios手机端字体根据屏幕分辨率自适应的方法,使用rem和px的区别
    js获取8个月前时间,1天前时间
    手机端/pc端 弹出后,禁止底部页面滚动方法
    列表左右滚动
    jQuery点击隐藏点击显示,计算高度,位置,给当前加上焦点,其他去掉焦点
    工厂模式浅析
    教你看懂UML类图
    Rpc基础篇
  • 原文地址:https://www.cnblogs.com/E-star/p/3392699.html
Copyright © 2011-2022 走看看