zoukankan      html  css  js  c++  java
  • JAVAWEB 一一ibatis(框架)

    ,升级版是mybatis,在配置文件里写sql语句对字段进行CURD)

    jar包

     sqlMapConfig

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
    <sqlMapConfig>
    
     <!--给较长的类取个别名-->
    <!--是否启用缓存机制-->
    <!-- 是否启用延迟加载机制 -->
    <!-- 是否启用字节码增强机制 -->
    <!-- 是否启用错误处理机制 -->
    <!-- 最大并发请求数 -->
    <!-- 最大Session数 -->
    <!-- 最大并发事务数 -->
    <!-- 是否启用名称空间 -->
       <settings 
        cacheModelsEnabled ="true"  
       lazyLoadingEnabled="true"  
       enhancementEnabled="true"  
       errorTracingEnabled="true" 
       maxRequests="32"  
       maxSessions="10" 
       maxTransactions="5"
       useStatementNamespaces="true"/>  
      <!-- 定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->
       <!-- type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
       <!-- 连接池维持的最大容量 -->
        <!-- 连接池允许挂起的最大连接 -->
        <!-- 连接被某个任务所允许占用的最大时间 -->
        <!-- 线程允许等待的最大时间 -->
      <transactionManager  type ="JDBC" >    
        <dataSource  type ="SIMPLE" >  
            <property  name ="JDBC.Driver"  value ="oracle.jdbc.OracleDriver" />
            <property  name ="JDBC.ConnectionURL"  value ="jdbc:oracle:thin:@localhost:1521:orcl" />
            <property  name ="JDBC.Username"  value ="scott" />
            <property  name ="JDBC.Password"  value ="orcl" />
            <property  name ="Pool.MaximumActiveConnections"  value ="10"   />   
            <property  name ="Pool.MaximumIdleConnections"  value ="5" />  
            <property  name ="Pool.MaximumCheckoutTime"  value ="120000" />   
            <property  name ="TimeToWait"  value ="500" />   
        </dataSource >
      </transactionManager >
    
       <!--  
      <transactionManager type ="JDBC">
      	<dataSource type ="JNDI">
      		<property  name ="dataSource"  value ="java:comp/env/jdbc/emp" />  
      	</dataSource>
      </transactionManager>
      -->
      <sqlMap  resource ="com/ibatis/entity/userMap.xml" />
    </sqlMapConfig >
    

      userMap .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">   
    
      <typeAlias alias="User" type="com.ibatis.entity.User"/>   
      <parameterMap id="userParameterMap" class="User" >
      		<parameter property="username" />
      		<parameter property="userpassword" />
      		<parameter property="role" />
      		<parameter property="state" />
      		<parameter property="email" />
      		<parameter property="createdate" />
      		<parameter property="userid" />
      </parameterMap>
      
      <resultMap id="userResultMap" class="User">   
        <result property="userid" column="USERID"/>   
        <result property="username" column="USERNAME"/>   
        <result property="userpassword" column="PASSWORD"/>   
        <result property="role" column="ROLE"/>   
        <result property="state" column="STATE"/> 
        <result property="email" column="EMAIL"/> 
        <result property="createdate" column="CREATEDATE"/> 
      </resultMap> 
          
      <select id="getUserByName" resultClass="User" >   
        select * from USER_NEW where username =#username#   
      </select>   
      <insert id="insertUserInfo" parameterClass="User">
      	insert into USER_NEW values(#userid#,#username#,#userpassword#,#role#,#state#,#email#,#createdate#)
      </insert>
      <update id="updateUserInfo" parameterMap="userParameterMap">
      	update USER_NEW set
      	 username=?,userpassword=?,role =? ,state =?,email=?,createdate=?
      	 where userid =?
      </update>
      <delete id="deleteUserInfo" parameterClass="java.lang.Integer">
      	delete from USER_NEW WHERE userid=#userid#
      </delete>
      <select id="getUserList" resultClass="User">
      select
      USERID as userid,
      USERNAME as username,
      USERPASSWORD as userpassword,
      ROLE as role,
      STATE as state,
      EMAIL as email,
      CREATEDATE as createdate
      FROM USER_NEW
      
      </select>
       <select id="getUserMap" resultClass="java.util.HashMap">
      select * from USER_NEW
      </select>
      
      <select id="getUser" parameterClass="User" resultMap="userResultMap">
      	select*from USER_NEW
      	<dynamic prepend=" where ">
      	<isNotNull property="username" prepend="and"> username=#username#</isNotNull>
      	<isNotNull property="userpassword" prepend="and"> userpassword=#userpassword#</isNotNull>
      	</dynamic>
      </select>
      
       <select id="getUser2" parameterClass="User" resultMap="userResultMap">
      	select*from USER_NEW where 1=1
      	<isNotNull property="username" prepend="and"> username=#username#</isNotNull>
      	<isNotNull property="userpassword" prepend="and"> userpassword=#userpassword#</isNotNull>
      </select>
    </sqlMap>
    

     User.java

      

    package com.ibatis.entity;
    
    import java.util.Date;
    
    public class User {
    	private int userid;
    	private String username;
    	private String userpassword;
    	private int role;
    	private int state;
    	private String email;
    	private Date createdate;
    
    	public User(String username, String userpassword, int role, int state,
    			String email, Date createdate) {
    		super();
    		this.username = username;
    		this.userpassword = userpassword;
    		this.role = role;
    		this.state = state;
    		this.email = email;
    		this.createdate = createdate;
    	}
    	public User() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public int getUserid() {
    		return userid;
    	}
    	public void setUserid(int userid) {
    		this.userid = userid;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public String getUserpassword() {
    		return userpassword;
    	}
    	public void setUserpassword(String userpassword) {
    		this.userpassword = userpassword;
    	}
    	public int getRole() {
    		return role;
    	}
    	public void setRole(int role) {
    		this.role = role;
    	}
    	public int getState() {
    		return state;
    	}
    	public void setState(int state) {
    		this.state = state;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public Date getCreatedate() {
    		return createdate;
    	}
    	public void setCreatedate(Date createdate) {
    		this.createdate = createdate;
    	}
    	
    	
    }
    

      

     UserDao.java

    package com.ibatis.dao;
    
    import java.util.List;
    import java.util.Map;
    
    import com.ibatis.entity.User;
    
    public interface UserDao {
    	public User getUserByName(String username);
    	public boolean addUser(User user);
    	public boolean updateUser(User user);
    	public boolean delUser(int userid);
    	public List<User> exploreIbatis();
    	public Map<String,Object> exploreIbatis2();
    	
    	public User getUser(User user);
    }
    

      UserDaoImpl.java

    package com.ibatis.dao.impl;
    
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    
    import com.ibatis.dao.UserDao;
    import com.ibatis.entity.User;
    import com.ibatis.sqlmap.client.SqlMapClient;
    
    import com.ibatis.util.SqlMapClientUtil;
    
    public class UserDaoImpl implements UserDao {
    
    	
    	SqlMapClient sqlMapClient = SqlMapClientUtil.getSqlMapClient();
    	User user=null;
    	public User getUserByName(String username){
    		try {
    			//("user.getUserByName")命名空间  id username
    		user = (User)sqlMapClient.queryForObject("user.getUserByName", username);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return user;
    	}
    
    	public boolean addUser(User user) {
    		try {
    			int count=sqlMapClient.update("user.insertUserInfo", user);
    			System.out.println(count);
    			if(count>0){
    				return true;
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return false;
    	}
    
    	public boolean updateUser(User user) {
    		try {
    			int count=sqlMapClient.update("user.updateUserInfo", user);
    			System.out.println(count);
    			if(count>0){
    				return true;
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return false;
    	}
    
    	public boolean delUser(int userid) {
    		try {
    			int count =sqlMapClient.delete("user.deleteUserInfo", userid);
    			System.out.println(count);
    			if(count>0){
    				return true;
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return false;
    	} 
    	public List<User> exploreIbatis(){
    		List<User> list= new ArrayList<User>();
    		try {
    			list = sqlMapClient.queryForList("user.getUserList");
    
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return list;
    	}
    	public Map<String,Object> exploreIbatis2(){
    		Map <String,Object>map = new HashMap<String, Object>();
    		try {
    			
    			map = sqlMapClient.queryForMap("user.getUserMap", null, "userid");
    
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return map;
    	}
    
    	public User getUser(User user) {
    		User userTemp=null;
    		try {
    			userTemp=(User)sqlMapClient.queryForObject("user.getUser", user);
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    }
    

      SqlMapClientUtil

    package com.ibatis.util;
    
    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 SqlMapClientUtil {
    	public static SqlMapClient getSqlMapClient() {
    		SqlMapClient sqlMapClient = null;
    		Reader reader = null;
    
    		try {
    			reader = Resources.getResourceAsReader("sqlMapConfig.xml");
    			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    			reader.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    			if (reader != null) {
    				try {
    					reader.close();
    				} catch (Exception e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    		return sqlMapClient;
    
    	}
    }
    

      SqlMapClientTest

    package com.ibatis.util;
    
    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 SqlMapClientUtil {
    	public static SqlMapClient getSqlMapClient() {
    		SqlMapClient sqlMapClient = null;
    		Reader reader = null;
    
    		try {
    			reader = Resources.getResourceAsReader("sqlMapConfig.xml");
    			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    			reader.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} finally {
    			if (reader != null) {
    				try {
    					reader.close();
    				} catch (Exception e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    		return sqlMapClient;
    
    	}
    }
    

      

  • 相关阅读:
    文件I/O(二)
    linux学习之文件I/O篇(一)
    静态库和共享库
    vim-ide
    CentOS6 vsftpd 安装及优化方法
    Redmine2.5+CentOS6+Apache2
    分享一个TP5实现Create()方法的心得
    Windows证书的生成导出以及使用证书验证文件是否被修改
    如何设置程序UAC控制
    关于C#的可变长参数
  • 原文地址:https://www.cnblogs.com/PoeticalJustice/p/7816339.html
Copyright © 2011-2022 走看看