AJAX与JSON验值

    近段时间在学习hibernate,示例项目就使用hibernate框架。本文展示了添加部门信息的校验,因只是示例,部分bug就此忽略,不足之处还望指教。

一、项目路径

二、用到的JAR包


三、表现层ajax的code

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
	 $("#dname").blur(function(){
		 var name=$("#dname").val();//获取输入值
		$.ajax({
			url:"GetDepartment",
			type:'post', 
			data:{username:name},
			dataType:'JSON',
			success:function(result){
				$.each(result,function(idx,department){
					if(name==department.dname){
						$("#yanzheng").html("部门名称已存在,请重新输入!");
						return false;
					}else{
						$("#yanzheng").html("部门名称可用!");
					}
				
				})
			}
	 	})
	})
})
</script>

四、表现层Html的Code

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title></head>
<body>
<form action="${pageContext.request.contextPath }/Insert" method="post">
username:<input type="text" name="dname" id="dname"/><span id="yanzheng"></span><br/>
password:<input type="text" name="loc" id="loc"/>
<input type="submit" value="提交" >
</form>
</body>
</html>

五、Servlet与JSON的Code

package cn.sunshine.servlet;

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

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

import cn.sunshine.pojo.Department;
import cn.sunshine.service.DepartmentService;
import cn.sunshine.service.impl.DepartmentServiceImpl;
import net.sf.json.JSONArray;
/**
 * 
 * GetDepartmentServlet.java
 * 说明:获取后端传过来的数据,并封装给JSNO
 * @author cn.sunshine.lxy
 * 2018年6月29日
 */
public class GetDepartmentServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static DepartmentService departmentService = new DepartmentServiceImpl();
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		String dname = request.getParameter("dname");
		String loc = request.getParameter("loc");
		List<Department> list = departmentService.getAllDepartment();
		JSONArray array = JSONArray.fromObject(list);
		response.getWriter().write(array.toString());
		
		
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

六、业务层Code

package cn.sunshine.service.impl;

import java.util.List;

import cn.sunshine.dao.DepartmentDao;
import cn.sunshine.dao.impl.DepartmentDaoImpl;
import cn.sunshine.pojo.Department;
import cn.sunshine.service.DepartmentService;
/**
 * 
 * DepartmentServiceImpl.java
 * @author cn.sunshine.lxy
 * 2018年6月29日
 */
public class DepartmentServiceImpl implements DepartmentService {
	private static DepartmentDao departmentDao= new DepartmentDaoImpl(); 
	public List<Department> getAllDepartment() {
		List<Department> department = departmentDao.getAllDepartment();
		return department;
	}

	public void insertDepartment(Department department) {
		departmentDao.insertDepartment(department);
	}

}

七、持久层code

package cn.sunshine.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import cn.sunshine.dao.DepartmentDao;
import cn.sunshine.pojo.Department;
import cn.sunshine.utils.HibernateUtil;
/**
 * 
 * DepartmentDaoImpl.java
 * @author cn.sunshine.lxy
 * 2018年6月29日
 */
public class DepartmentDaoImpl implements DepartmentDao {

	public List<Department> getAllDepartment() {
		Session session = HibernateUtil.openSession();
		Transaction transaction = session.beginTransaction();
		Criteria criteria = session.createCriteria(Department.class);
		List<Department> list = criteria.list();
		transaction.commit();
		session.close();
		System.out.println(list);
		return list;
	}
	
	public void insertDepartment(Department department) {
		Session session = HibernateUtil.openSession();
		Transaction transaction = session.beginTransaction();
		session.save(department);
		transaction.commit();
		session.close();

	}

}

八、Hibernate工具类

package cn.sunshine.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * 
 * HibernateUtil.java
 * 说明:Hibernate工具类
 * @author cn.sunshine.lxy
 * 2018年6月28日
 */
public class HibernateUtil {
	
	private static SessionFactory sessionFactory;
	//加载配置文件,创建会话工厂
	static {
		Configuration config = new Configuration().configure();
		sessionFactory = config.buildSessionFactory();
	}
	
	/**
	 * 
	 * 方法说明:通过会话工厂打开会话
	 * @return session
	 */
	public static Session openSession() {
		return sessionFactory.openSession();
	}
	
	
	public static Session currentSession() {
		return sessionFactory.getCurrentSession();
	}
}
九、Hibernate全局配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory >
	 	   <!-- 数据库配置信息 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///db_sunshine?characterEncoding=UTF-8</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		  
		<mapping resource="cn/sunshine/mapper/Department.hbm.xml"/>
		
	</session-factory>

</hibernate-configurat
十、Department实体类映射配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 配置的是类与表之间的映射 
	package:指定包名。在配置class标签的时候就可以直接写类名即可
-->
<hibernate-mapping package="cn.sunshine.pojo">

	<class name="Department" table="department">
		
		<id name="deptno" column="deptno" >
			<generator class="native"></generator>
		</id>
		<property name="dname" column="dname" ></property>
		<property name="loc" column="loc"></property>
	</class>
</hibernate-mapping>

    示例中省略了Dao层和Service层接口,相信根据展示聪明的你就能读懂!

    写到这里本文也就结束了,一起加油,爱生活,爱编程!


猜你喜欢

转载自blog.csdn.net/sadness_lxy/article/details/80855925