第一个Ibatis增删改查例子(sqlserver2005)

1.导入jar包,ibatis-2.3.0.677.jar,sqljdbc.jar

2.定义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>

 <settings
    cacheModelsEnabled="true"     
    enhancementEnabled="true"     
    lazyLoadingEnabled="true"     
    errorTracingEnabled="true"     
    maxRequests="32"         
    maxSessions="10"         
    maxTransactions="5"         
    useStatementNamespaces="true"  
    />
 
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <property name="JDBC.ConnectionURL" value="jdbc:sqlserver://localhost:1433; DatabaseName=DfcpMes"/>
      <property name="JDBC.Username" value="sa"/>
      <property name="JDBC.Password" value="sa"/>
       <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
ACCOUNT"/>
      <property name="Pool.PingEnabled" value="false"/>
      <property name="Pool.PingConnectionsOlderThan"
value="1"/>
      <property name="Pool.PingConnectionsNotUsedFor"
value="1"/>
    </dataSource>
  </transactionManager>

  <!-- List the SQL Map XML files. They can be loaded from the
       classpath, as they are here (com.domain.data...) -->
  <sqlMap resource="com/ibatis/bean/config/Users.xml"/>
  <sqlMap resource="com/ibatis/bean/config/Factory.xml"/>
 

</sqlMapConfig>

3.创建表Users,字段有loginid,username,loginpassword,roleid

4.创建Users表对应的JavaBean,

5.创建Users.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="user_space">

<typeAlias alias="user" type="com.ibatis.bean.Users"/>


  <resultMap id="userResult" class="user">
    <result property="username" column="username"/>
    <result property="loginid" column="loginid"/>
    <result property="loginpassword" column="loginpassword"/>
  
  </resultMap>

  <!-- 返回结果为List -->
  <select id="selectAllUsers" resultMap="userResult" cacheModel="userCache">
    select * from Users
  </select>
 
  <!-- 返回结果为List<HashMap<String,Object>>
  String表示字段名,Object为字段值,即每一行为一个HashMap
   -->
  <select id="selectAllUsersMap" resultClass="java.util.HashMap" >

    select * from Users
  </select>

 <select id="selectUsersByLoginId" parameterClass="String" resultClass="user">
   <![CDATA[
    select
     loginid,
     username,
     loginpassword
    from users
    where loginId = #loginid#
    ]]>
  </select>


  <insert id="insertUsers" parameterClass="user">
  <!-- 生成主键的方式(post表示添加后生成,pre表示添加前生成如Oracle) -->
  <selectKey resultClass="int" type="post" keyProperty="id" >  
        select @@IDENTITY as id
    </selectKey>  
   
    <!--  oracle用序列生成主键的配置
   <selectKey resultClass="int" type="pre" keyProperty="id" >  
        SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL  
    </selectKey>  
  -->
  <![CDATA[
    insert into users(
      username,
      loginid,
      loginpassword,
      roleid )
    values(
      #username#,#loginid#,#loginpassword#,#roleid#
    )
    ]]>
  </insert>

 
  <update id="updateUsers" parameterClass="user">
  <![CDATA[
    update users set
      username=#username#,
      loginid=#loginid#,
      loginpassword=#loginpassword#
    where
      loginId = #loginid#
      ]]>
  </update>

 
  <delete id="deleteUsersByLoginId" parameterClass="String">
    delete from users where loginId = #loginId#
  </delete>

6.定义工厂类,用来生成SqlMapClient

package com.ibatis.dao;

import java.io.IOException;
import java.io.Reader;

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

public class SqlClientFactory {

 public static SqlMapClient getClientMap() throws IOException
 {
  
  String resource ="SqlMapConfig.xml";
  Reader reader = Resources.getResourceAsReader(resource);
  
  
  
  SqlMapClient sqlMap =  SqlMapClientBuilder.buildSqlMapClient(reader);

  return sqlMap;
 }
}

7.创建测试类,运行

/**
  * 获取resultClass="java.util.HashMap"的结果
  * @return
  * @throws IOException
  * @throws SQLException
  */
 List<HashMap<String,Object>> GetAllUserMapList() throws IOException, SQLException
 {
  SqlMapClient client=SqlClientFactory.getClientMap();
  client.startTransaction();
  List<HashMap<String,Object>> mpList=(List<HashMap<String,Object>>)client.queryForList("user_space.selectAllUsersMap");
  client.commitTransaction();
  return mpList;
 }
 
 /**
  * 获取全部用户
  * @return
  * @throws IOException
  * @throws SQLException
  */
 List<Users> GetAllUserList() throws IOException, SQLException
 {
  SqlMapClient client=SqlClientFactory.getClientMap();
  client.startTransaction();
  List<Users> list=(List<Users>)client.queryForList("user_space.selectAllUsers");
  client.commitTransaction();
  return list;
 }
 
 /**
  *  根据登陆账号查询一个用户
  * @param loginId
  * @return
  * @throws IOException
  * @throws SQLException
  */
 Users GetUserByLoginId(String loginId) throws IOException, SQLException
 {
  SqlMapClient client = client=SqlClientFactory.getClientMap();
  client.startTransaction();
  Users user=(Users) client.queryForObject("user_space.selectUsersByLoginId", loginId);
  client.commitTransaction();
  return user;
 }
 
 
 /**
  * 更新一条记录
  * @param user
  * @throws IOException
  * @throws SQLException
  */
 private void UpdateUsers(Users user) throws IOException, SQLException
 {
  SqlMapClient client = client=SqlClientFactory.getClientMap();
  try
  {
   client.startTransaction();
   client.update("user_space.updateUsers", user);
   client.commitTransaction();
  }
  finally
  {
   if(client!=null)
   {
    client.endTransaction();
   }
  }
 }
 
 /**
  * 删除一条记录
  * @param loginId
  * @throws IOException
  * @throws SQLException
  */
 private void deleteUser(String loginId) throws IOException, SQLException
 {
  SqlMapClient client = client=SqlClientFactory.getClientMap();
  try
  {
   client.startTransaction();
   client.delete("user_space.deleteUsersByLoginId", loginId);
   client.commitTransaction();
  }
  finally
  {
   if(client!=null)
   {
    client.endTransaction();
   }
  }
 }
 
 
 /**
  * 添加一个用户insertUsers
  * @param user
  * @throws IOException
  * @throws SQLException
  */
 private void addUser(Users user) throws IOException, SQLException
 {
  SqlMapClient client = client=SqlClientFactory.getClientMap();
  try
  {
   client.startTransaction();
   client.insert("user_space.insertUsers", user);
   client.commitTransaction();
  }
  finally
  {
   if(client!=null)
   {
    client.endTransaction();
   }
  }
 }
 
 private void Show(List<Users> list)
 {
  for(Users user:list)
  {
   System.out.println("loginId:"+user.getLoginid()+" username:"+user.getUsername()+" pwd:"+user.getLoginpassword());
  }
 }
 
 private void ShowMapList(List<HashMap<String,Object>> maplist)
 {
  for(HashMap<String,Object> mp:maplist)
  {
   String loginId=(String) mp.get("LoginId");
   String username=(String) mp.get("UserName");
   String loginpasswords=(String) mp.get("LoginPassword");

   System.out.println("loginId:"+loginId+" username:"+username+" pwd:"+loginpasswords);
  }
 }
 
 private void Show(Users user)
 {
  if(user!=null)
  {
   System.out.println("loginId:"+user.getLoginid()+" username:"+user.getUsername()+" pwd:"+user.getLoginpassword());
  }
 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值