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

posted @ 2012-11-09 18:00  温诗袀  阅读(199)  评论(0编辑  收藏  举报