ibatis练习

原创 2012年03月22日 10:36:59

         //1.我们新插入一批数据,要求携带所有的五列(插入操作)

         //2 对我们表中用户ID号,为自己学习号的姓名进行修改,修改的新姓名的值为姓名加学号(修改操作)
        //3.遍历结果集,对表中所有数据进行查看,将每个人的五个信息逐行打在控制台上(查询操作)
        //4.查询所有的结果中的年龄一象,计算我们现在人员的平均年龄(查询操作)

建表:

create table  XXXX(
       id           varchar2(40)  not null,
       no           Integer       not null,
       name         varchar2(40)  not null,
       password     varchar2(40)  not null,
       age          Integer       not null   
)

插入数据:自己提交(我用PLSQL Developer)上有,

 insert into   XXXX  values('2',2,'小红','112',15);
 insert into   XXXX  values('3',3,'小绿','113',16);
 insert into   XXXX  values('4',4,'小黑','114',24);
 insert into   XXXX  values('5',5,'老王','115',34);
 insert into   XXXX  values('6',6,'老刘','116',44);
 insert into   XXXX  values('7',7,'老路','117',54);
 insert into   XXXX  values('8',8,'生说','118',14);
 insert into   XXXX  values('9',9,'是红','119',15);

自己直接commit就行了

2 搭建环境  同ibatis(基本增删改查)这里不具体写了

4

4  加配置文件  在src/resouce下

{1}--------------sql-map-config.xml

<?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>
	<settings 
		cacheModelsEnabled="true" 
		enhancementEnabled="true"
		lazyLoadingEnabled="true" 
		errorTracingEnabled="true" 
		maxRequests="32"
		maxSessions="10" 
		maxTransactions="5" 
		useStatementNamespaces="false" />
		
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver"
				value="oracle.jdbc.driver.OracleDriver" />
			<property name="JDBC.ConnectionURL"
				value="jdbc:oracle:thin:@192.168.137.23:1521:unieap" />
			<property name="JDBC.Username" value="tabuser" />
			<property name="JDBC.Password" value="tabuser" />
			<property name="Pool.MaximumActiveConnections" value="10" />
			<property name="Pool.MaximumIdleConnections" value="5" />
			<property name="Pool.MaximumCheckoutTime" value="120000" />
			<property name="Pool.TimeToWait" value="500" />
			<property name="Pool.PingQuery" value="select 1 from dual" />
			<property name="Pool.PingEnabled" value="false" />
			<property name="Pool.PingConnectionsOlderThan" value="1" />
			<property name="Pool.PingConnectionsNotUsedFor" value="1" />
		</dataSource>
	</transactionManager>
	<sqlMap resource="person.xml" />
</sqlMapConfig>

  { 2}--------------person.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="Person">
	<typeAlias alias="person" type="cm.neusoft.test.ibatis.pojo.Person" />
   
	<insert id="insertPerson" parameterClass="person">
		INSERT INTO XXXX (id,no,name,password,age) VALUES (#id#,#no#, #name#,#password#,#age# )
	</insert>
	

	
	<update id="updatePerson" parameterClass="person">
		<![CDATA[
		UPDATE XXXX SET id=#id#,no=#no#,name=#name#,password=#password#,age=#age# 
		WHERE id = #id#
	]]>
	</update>
	
	<select id="getPerson" parameterClass="java.lang.String" resultClass="person">
		<![CDATA[
			SELECT id,no,name,password,age FROM XXXX 
		]]>
	</select>
	
	<select id="getPersonAge" parameterClass="java.lang.String"  resultClass="int">
		<![CDATA[
			SELECT sum(age) FROM XXXX 
		]]>
	</select>
	<select id="getPersonss" parameterClass="java.lang.String" resultClass="int" >
		<![CDATA[
			SELECT count(*) FROM XXXX 
		]]>
	</select>

</sqlMap>

5  在src/java下新建2个类

   1---pojo

package cm.neusoft.test.ibatis.pojo;
public class Person
{
    
    private String id;
    private Integer no;
    private String name;
    private String password;
    private Integer age;
    public String getId()
    {
        return id;
    }

    public Integer getNo()
    {
        return no;
    }

    public void setNo(Integer no)
    {
        this.no = no;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getPassword()
    {
        return password;
    }

    public void setPassword(String password)
    {
        this.password = password;
    }
    public Integer getAge()
    {
        return age;
    }

    public void setAge(Integer age)
    {
        this.age = age;
    }

}

1---测试类

 

package cm.neusoft.test.ibatis.main;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import cm.neusoft.test.ibatis.pojo.Person;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class Test1
{
 

public static void main(String[] args)
{
    String resource = "sql-map-config.xml";
    SqlMapClient sqlMapClient = null;
    try
    {
        Reader reader = Resources.getResourceAsReader(resource);
        sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
        sqlMapClient.startTransaction();
        Person  person = new Person();
          //增加
        person.setId("1");
        person.setNo(1);
        person.setName("韩超");
        person.setPassword("111");
        person.setAge(25);       
        sqlMapClient.insert("insertPerson", person); 
          //修改
//        person.setId("1");
//        person.setNo(123);
//        person.setName("韩超"+person.getId());
//        person.setPassword("1234");
//        person.setAge(52); 
//        sqlMapClient.update("updatePerson", person);
    
     
        //查找表中所有数据(方法一)

//               //检索结果保存到list中   
//        ArrayList rsList = new ArrayList();  
//        rsList = (ArrayList)sqlMapClient.queryForList("getPerson","");  
//              for(int i = 0; i < rsList.size();i++){  
//                      person = (Person)rsList.get(i);  
//                        //打印对象中的信息   
//                        System.out.print("学生I D :" + person.getId() + " ; ");  
//                        System.out.print("学生编号 :" + person.getNo() + " ; ");  
//                        System.out.print("学生姓名 :" + person.getName() + " ; ");  
//                        System.out.print("学生密码 :" + person.getPassword() + " ; ");  
//                        System.out.print("学生年龄 :" + person.getAge());  
//                        System.out.println();  
//               }  
        //查找表中所有数据(方法二)

//        List studentList = sqlMapClient.queryForList("getPerson", null);
//        Iterator iterator = studentList.iterator();
//        while (iterator.hasNext()) {
//            person = (Person) iterator.next();
//            System.out.println("id=" + person.getId() + " and name="
//                    + person.getName() + " age=" + person.getAge());
//        }
     
              
              
              //查找表年龄平均值
//              int m = (Integer)sqlMapClient.queryForObject("getPersonAge", null);
//              int n = (Integer)sqlMapClient.queryForObject("getPersonss", null);
//              System.out.println(m/n);
         sqlMapClient.commitTransaction();
        System.out.println("Query user success!");
       

    }
    catch (IOException e)
    {
        System.out.println("呜呜,伤不起啊!!!!");
    }
    catch (SQLException e)
    {
        System.out.println("嘻嘻,玩死你啊!!!!");
    }
}
   
    
}

   项目图片

相关文章推荐

ibatis 学习之一 环境搭建,简单小demo练习

最近准备好好学习下ibatis,同时把学习的点滴记录下来,这样子以后可以温故而知新,还可以增加自己的记忆...

Ibatis 练习Demo和笔记

  • 2017年11月03日 12:29
  • 8.91MB
  • 下载

复杂对象ibatis插入,属性为list,怎么一次性插入

转自:http://mzhj.iteye.com/blog/1030359 public class PfStuffInfoVo implements Serializable { ...
  • jubincn
  • jubincn
  • 2012年04月06日 16:47
  • 6354

iBatis Date类型时间丢失有关问题

在此前,遇到过使用Ibatis操作Oracle时时间精度丢失的问题,昨天又遇到JDBC操作MySQL时间字段的问 题 ,从网上看到各种式样的解释这些问题的博文/帖子,但多是雾里看花,不得要领。 ...
  • gyy823
  • gyy823
  • 2014年08月07日 12:33
  • 311

iBatis查询select详解

是iBatis已经映射的语句类型,就是查询了,为了配合说明,这里再介绍两个标记:和,前者用来创建一个文本片段,这些片段可以组合起来创建完整的SQL语句;后者很显然就是包含的意思了。假设我们有如下代码段...

基于Struts2 Spring ibatis Oracle10g架构 多数据源动态切换实例

基于Spring多数据源动态切换、多Oracle实例

Ibatis编程--调用存储过程

1、Ibatis.xml文件代码          PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"          ...
  • Heng_Ji
  • Heng_Ji
  • 2012年11月19日 10:02
  • 823

[项目实战] ibatis +spring+struts2+jquery.autocomplete实现产品自动补全功能(二) 附带源码

这两天忙公司的项目,没有把项目的demo写出来。趁现在空闲,偷偷的写一下。 先上demo结构目录图: 大家看到了吧,项目层次分得很清楚。 config  是 spring和itatis的配置文件。接...

记录项目用到的iBatis中的一句sql的解释

所写 sql的背景:对应一个统计的业务,对应两张表中的数据,需求是:在页面上展示的内容为第一列名称对应行政区划的所有记录并以树的形式展示,其他列的数据则对应杂志征订信息表中的记录,如果杂志征订信息表中...

一个简单的ibatis.net架构(包含项目模板代码下载)

1        基本介绍 iBATISNet Database Layer!这个框架将让你能够更好的在dotnet应用中设计和实现实体层。这个框架有两个主要的组成部分,一个是SQL Maps,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ibatis练习
举报原因:
原因补充:

(最多只允许输入30个字)