ibatis

ibatis应用

首先,我们需要配置一下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>  
    <properties resource="jdbc.properties" />  
    <transactionManager type="JDBC">  
        <dataSource type="SIMPLE">  
            <property name="JDBC.Driver" value="${driver}" />  
            <property name="JDBC.ConnectionURL" value="${url}" />  
            <property name="JDBC.Username" value="${username}" />  
            <property name="JDBC.Password" value="${password}" />  
        </dataSource>  
    </transactionManager>  
    <sqlMap resource="resource/User.xml" />  
</sqlMapConfig>

接下来需要配置我们数据库的配置信息jdbc.properties


driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db1
username=root
password=root


接下来需要配置数据库sql语句的映射User.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>  
    <typeAlias alias="User" type="com.ebiz.entity.User"/>  
    <select id="findAll" resultClass="User">  
        SELECT 
        	id,name,real_name,email,address,create_time
        From 
        	user	
    </select>
  	
  	<select id="findByName" parameterClass="java.lang.String"  resultClass="User">  
   		SELECT 
   			id,name,real_name,email,address,create_time
   		FROM 
   			user
   		WHERE
   			name=#name#
	</select>
	
	<delete id="deleteById" parameterClass="java.lang.Integer">
		DELETE FROM user WHERE id=#id#
	</delete>
  
</sqlMap> 

接下来需要自定义entity实体类层,对应的就是数据库里的内容,需要给他们添加set/get方法,最好加上toString,方便自己对代码的检查


接下来需要写对应的UserDAO接口

package com.ebiz.dao;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import com.ebiz.entity.User;

public interface UserDAO {
	/**
	 * 查询所有用户信息
	 * @return user集合
	 * @throws SQLException
	 * @throws IOException
	 */
	List<User> findAll() throws SQLException, IOException;
	
	
	/**
	 * 通过用户名查询用户信息
	 * @param Name
	 * @return	user集合
	 * @throws SQLException
	 * @throws IOException
	 */
	List<User> findByName(String Name) throws SQLException, IOException;
	
	
	/**
	 * 通过页面中多选框的id删除用户
	 * @param id
	 * @throws SQLException
	 * @throws IOException
	 */
	void deleteById(int id)throws SQLException, IOException;
}

以及接下来与dao层对应的实现类
String config=“SqlMapConfig.xml”;
Reader reader = Resources.getResourceAsReader(config);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
查询时用queryForList方法
List users = sqlMap.queryForList(“findAll”);
做单独的方法时
直接做对应的增删改查的方法
例如:sqlMap.delete(“deleteById”, id);

package com.ebiz.dao.impl;

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

import com.ebiz.dao.UserDAO;
import com.ebiz.entity.User;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class UserDAOimpl implements UserDAO{
	public List<User> findAll() throws SQLException, IOException {
		String config = "SqlMapConfig.xml";  
        Reader reader = Resources.getResourceAsReader(config);  
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
        List<User> users = sqlMap.queryForList("findAll");  
		return users;
	}
	
	public List<User> findByName(String name) throws SQLException, IOException {
		String config = "SqlMapConfig.xml";  
        Reader reader = Resources.getResourceAsReader(config);  
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
        List<User> users =  sqlMap.queryForList("findByName",name); 
       
		return users;
	}
	
	public void deleteById(int id) throws SQLException, IOException {
		String config = "SqlMapConfig.xml";  
        Reader reader = Resources.getResourceAsReader(config);  
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
        sqlMap.delete("deleteById", id);

	}
}


最后需要码servlet

package com.ebiz.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ebiz.dao.UserDAO;
import com.ebiz.dao.impl.UserDAOimpl;
import com.ebiz.entity.User;

/**
 * 查询所有用户信息
 * @author Administrator
 *
 */
public class ListUserServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		UserDAO dao = new UserDAOimpl();
		try {
			List<User> users = dao.findAll();
			request.setAttribute("users", users);
			request.getRequestDispatcher("list.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

最后,我们需要画前端页面
在这里用jsp技术来实现

<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="com.ebiz.entity.User,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>listUsers</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="css/style.css"/>
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){ 
    $("#delete").click(function() {
        text = $("input:checkbox[name='message']:checked").map(function(index,elem) {
            return $(elem).val();
        }).get().join(',');
    });
    
    $("#delete").click(function(){
    	var url = "http://localhost:8080/ibatis/batchdelete";
    	var data = text;
    	$.ajax({
    		url:url,
    		data:{"aaa":data},
    		type:"GET",
    		dataType:"json",
    		success:function(json){
    		}
    	})
    });
    
    
    
});



</script>
</head>	
<body>
	<div id="wrap">
			<div id="content">
				<h1>用户名</h1>
				<form action="select" method="post">
					<input type="text" name="username" />
					<input type="submit" value="查询" />
				</form>
				<table class="table">
				<div>
					<input id="delete" type="button" value="批量删除" onclick="return confirm('确定删除选择项?')" />	
				</div>
					<tr class="table_header">
						<td>选择</td>
						<td>ID</td>
						<td>Name</td>
						<td>Real_Name</td>
						<td>Email</td>
						<td>Address</td>
						<td>Create_Time</td>
						<td>操作</td>
					</tr>
					<%
						List<User> users = (List<User>) request.getAttribute("users");
						for (int i = 0; i < users.size(); i++) {
							User user = users.get(i);
					%>
					
					<tr class="row<%=i % 2 + 1%>">
						<td align="center" class="tc">
							<input id="${user.id}" name="message" value="<%=user.getId() %>" on-click="selected(user.id)" type="checkbox">
						</td>
						<td><%=user.getId()%></td>
						<td><%=user.getName()%></td>
						<td><%=user.getRealName()%></td>
						<td><%=user.getEmail()%></td>
						<td><%=user.getAddress()%></td>
						<td><%=user.getCreateTime()%></td>
						<td><a href="delete?id=<%=user.getId()%>"
							onclick="return confirm('确定删除<%=user.getName()%>吗?');">删除</a>&nbsp;
						</td>
					</tr>
					
					<%
						}
					%>
				</table>

			</div>
	</div>
	
	
	
</body>
</html>

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值