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;

	}
}

  

转载于:https://www.cnblogs.com/PoeticalJustice/p/7816339.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值