`

工具类开发应用

阅读更多
   java 有太多的需要整理的工具类,只要整理修整下可就可以完整开发,下面是JDBC,Hibernate,Hibernate Annotation,spring,javascript异步传输,JOIN异步传输工具开发。
JDBCTool
package util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBTools {
	static{
	 	  try{
		    Class.forName("oracle.jdbc.driver.OracleDriver");// mysql : "com.mysql.jdbc.Driver" 驱动名称
		   }catch(ClassNotFoundException e){
		     e.printStackTrace();
		   }
	    }

		public static Connection getConn(){

		String url ="jdbc:oracle:thin:@localhost:1521:XE";  //mysql : "jdbc:mysql://127.0.0.1/xxx" xxx指的是库名称 
		String dbname="hr";
		String dbpwd="hr";
	    Connection conn = null;
		try{
	    conn = DriverManager.getConnection(url,dbname,dbpwd);
		}catch(SQLException e){
		 e.printStackTrace();
		}
	    return conn;
	    }


		public static void close(ResultSet rs,Statement stmt,Connection conn){
		try{
	       if(rs != null){
		    rs.close();
			rs = null;
		   }
	       if(stmt != null){
		    stmt.close();
			stmt = null;
		   }
	       if(conn != null){
		    conn.close();
			conn = null;
		   }
	  
		  }catch(SQLException e){
		   e.printStackTrace();
		  }
		}
}

测试
package test;

import java.util.Date;

public class Emp {
	private int empno;
	private String ename;
	private String job;
	private int mgr;
	private Date hiredate;
	private int sal;
	private int comm;
	private int deptno;
	public int getEmpno() {
		return empno;
	}
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public int getMgr() {
		return mgr;
	}
	public void setMgr(int mgr) {
		this.mgr = mgr;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	public int getSal() {
		return sal;
	}
	public void setSal(int sal) {
		this.sal = sal;
	}
	public int getComm() {
		return comm;
	}
	public void setComm(int comm) {
		this.comm = comm;
	}
	public int getDeptno() {
		return deptno;
	}
	public void setDeptno(int deptno) {
		this.deptno = deptno;
	}
}

package test;

import java.util.List;

/**
 * @author Administrator
 *
 */
public interface EmpDAO {
	public void addEmp(Emp emp);
	 public void delEmp(int empno);
	 public void udpateEmp(Emp emp);
	 public Emp findEmpById(int empno);
	 public List<Emp> findEmps();
}

package test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import util.DBTools;

public class EmpDAOImpl implements EmpDAO {

	public void addEmp(Emp emp) {
		String sql = "insert into emp values(?,?,?,?,?,?,?,?)";
		  Connection conn = null;
		  PreparedStatement stmt = null;
		  
		  try{
		  conn = DBTools.getConn();
		  stmt = conn.prepareStatement(sql);
		  stmt.setInt(1,emp.getEmpno());
		  stmt.setString(2,emp.getEname());
		  stmt.setString(3,emp.getJob());
		  stmt.setInt(4,emp.getMgr());
		  stmt.setDate(5,new java.sql.Date(emp.getHiredate().getTime()));
		  stmt.setInt(6,emp.getSal());
		  stmt.setInt(7,emp.getComm());
		  stmt.setInt(8,emp.getDeptno());
		  int temp = stmt.executeUpdate();
		  if(temp != 0){
		    System.out.println("添加成功!");
		  }
		  }catch(SQLException e){
			 e.printStackTrace();
		  }finally{
		   DBTools.close(null,stmt,conn);
		  }
		 

	}

	public void delEmp(int empno) {
		String sql = "delete emp  where empno=?";
		  Connection conn = null;
		  PreparedStatement stmt = null;
		  
		  try{
		  conn = DBTools.getConn();
		  stmt = conn.prepareStatement(sql);
		  stmt.setInt(1,empno);

		  int temp = stmt.executeUpdate();
		  if(temp != 0){
		    System.out.println("删除成功!");
		  }
		  }catch(SQLException e){
			 e.printStackTrace();
		  }finally{
		   DBTools.close(null,stmt,conn);
		  }
	}

	public Emp findEmpById(int empno) {
		String sql = "select * from emp where empno=?";
		  Connection conn = null;
		  PreparedStatement stmt = null;
		  ResultSet temp=null;
		  Emp emp=new Emp();
		  try{
		  conn = DBTools.getConn();
		  stmt = conn.prepareStatement(sql);
		  stmt.setInt(1,empno);

		  temp = stmt.executeQuery();
		  while(temp.next()){
			emp.setEmpno(temp.getInt(1));
		    emp.setEname(temp.getString(2));
		    emp.setJob(temp.getString(3));
		    emp.setMgr(temp.getInt(4));
		    emp.setHiredate(temp.getDate(5));
		    emp.setSal(temp.getInt(6));
		    emp.setComm(temp.getInt(7));
		    emp.setDeptno(temp.getInt(8));
		  }
		  
		  }catch(SQLException e){
			 e.printStackTrace();
		  }finally{
		   DBTools.close(temp,stmt,conn);
		  }
		return emp;
	}

	public List<Emp> findEmps() {	
		String sql = "select * from emp";
		  Connection conn = null;
		  PreparedStatement stmt = null;
		  ResultSet temp=null;
		  
		  List<Emp> list=new ArrayList<Emp>();
		  try{
		  conn = DBTools.getConn();
		  stmt = conn.prepareStatement(sql);
		  
		   temp = stmt.executeQuery();
		  while(temp.next()){
			Emp emp=new Emp();
		    emp.setEmpno(temp.getInt(1));
		    emp.setEname(temp.getString(2));
		    emp.setJob(temp.getString(3));
		    emp.setMgr(temp.getInt(4));
		    emp.setHiredate(temp.getDate(5));
		    emp.setSal(temp.getInt(6));
		    emp.setComm(temp.getInt(7));
		    emp.setDeptno(temp.getInt(8));
		    list.add(emp);	    
		  }
		  }catch(SQLException e){
			 e.printStackTrace();
		  }finally{
		   DBTools.close(temp,stmt,conn);
		  }
		return list;
	}

	public void udpateEmp(Emp emp) {
		  //String sql = "update emp set ename=?,job=?,mgr=?,hiredate=?,sal=?,comm=?,deptno=? where empno=?";
		  String sql = "update emp set ename=?,job=?,mgr=?,hiredate=?,sal=?,comm=?,deptno=? where empno=?";
		  Connection conn = null;
		  PreparedStatement stmt = null;
		  
		  try{
		  conn = DBTools.getConn();
		  stmt = conn.prepareStatement(sql);
		  stmt.setString(1,emp.getEname());
		  stmt.setString(2,emp.getJob());
		  stmt.setInt(3,emp.getMgr());
		  stmt.setDate(4,new java.sql.Date(emp.getHiredate().getTime()));
		  stmt.setInt(5,emp.getSal());
		  stmt.setInt(6,emp.getComm());
		  stmt.setInt(7,emp.getDeptno());
		  stmt.setInt(8,emp.getEmpno());

		  int temp = stmt.executeUpdate();
		  if(temp != 0){
		    System.out.println("修改成功!");
		  }
		  }catch(SQLException e){
			 e.printStackTrace();
		  }finally{
		   DBTools.close(null,stmt,conn);
		  }
	}
	
	public static void main(String[] args){
		//===========================
		 //Emp emp = new Emp();
		 //emp.setComm(10);
		 //emp.setDeptno(10);
		 //emp.setEmpno(7839);
		 //emp.setEname("kaka");
		 //emp.setHiredate(new Date());
		 //emp.setJob("clark");
		 //emp.setMgr(101);
		 //emp.setSal(1000);
		 //EmpDAOImpl st = new  EmpDAOImpl();
		 //st.addEmp(emp);
		 //==========================
		 //EmpDAOImpl st = new  EmpDAOImpl();
		 //st.delEmp(emp.getEmpno());
		 //===========================
		//EmpDAOImpl st = new  EmpDAOImpl();
		//Emp emp= st.findEmpById(7499);
		 //System.out.println("员工编号:"+emp.getEmpno()+" 员工姓名:"+emp.getEname()
		//		 +" 职位:"+emp.getJob()+" 管理者编号:"+emp.getMgr()+" 入职时间:"+
		//		 emp.getHiredate()+" 工资:"+emp.getSal()+" 奖金"+emp.getComm()+" 部门编号:"+emp.getDeptno());
		//=============================
		//EmpDAOImpl st = new  EmpDAOImpl();
		//List<Emp> list= st.findEmps();
		 //for(Emp e:list){
		 //System.out.println(e.getEmpno()+" "+e.getEname()+" "+e.getJob()
		//		 +" "+e.getMgr()+" "+e.getHiredate()+" "+e.getSal()
		//		 +" "+e.getComm()+" "+e.getDeptno());
		// }
		//==========================
		 Emp emp = new Emp();
		 emp.setEmpno(7839);
		 emp.setEname("kaka");
		 emp.setJob("clark");
		 emp.setMgr(101);
		 emp.setHiredate(new Date());
		 emp.setSal(1000);
		 emp.setComm(100);
		 emp.setDeptno(10);
		 
		 
		 EmpDAOImpl st = new  EmpDAOImpl();
		 st.udpateEmp(emp);
				 
	}
}

HibernateUtil
package cn.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
	private static Configuration config = null;
	private static SessionFactory factory = null;

	static {
		// 由于config加载hibernate.cfg.xml
		// 解析,时间长..
		// static
		try {
			config = new Configuration().configure();
			factory = config.buildSessionFactory();
		} catch (HibernateException e) {
			
			e.printStackTrace();
		}
	}

	public static SessionFactory getFactory() {
		return factory;

	}

	public static Session getSession() {
		return factory.openSession();
	}

	public static void close(Session session) {
		if (session != null) {
			session.close();
		}
	}

	public static void close(SessionFactory sf) {
		if (sf != null) {
			sf.close();
		}
	}
}

package cn.java;

public class User {
	private int id;
	private String name;
	private int age;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

}

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping 
	package="cn.java">
	<class name="User" table="t_user">
 	   <id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<property name="age"/>
	</class>
</hibernate-mapping>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
		<property name="hibernate.connection.url">
			jdbc:mysql://127.0.0.1/test
		</property>
		<property name="hibernate.connection.driver_class">
			com.mysql.jdbc.Driver
		</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="dialect">
			org.hibernate.dialect.MySQLDialect
		</property>
	    <property name="hibernate.hbm2ddl.auto">update</property>
	
	
	   <mapping resource="cn/java/User.hbm.xml" />

</session-factory>
</hibernate-configuration>

package test;

import junit.framework.TestCase;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import cn.java.User;
import cn.util.HibernateUtil;

public class TestUser extends TestCase {

	// 这里多个方法来测试;
	// 必须要示是小test开头
	// 参数必须空
	public void testhibernate() {

		Configuration config = null;
		SessionFactory factory = null;
		Session session = null;
		Transaction tx = null;

		try {
			// 第一步:加载配置文件;
			// 把hibernate.cfg.xml文件加载到内存;
			// 并且解析,,
			// 这个时候hiberante
			// 知道,你的数据库是哪种,pas,name,url
			config = new Configuration().configure();
			// =======
			// 第二步创建一个sessionfactory工厂
			//
			// session 最重对象
			// factory 工厂
			factory = config.buildSessionFactory();
			// 第三步创建session
			// session类似 jdbc 中的 connection
			// save
			// get
			// del
			// update
			// find
			session = factory.openSession();
			// 打开事务
			// 事务:多条不可分隔的sql语句;;
			// 以前jdbc;
			// 默认自动提交...
			// hibernate 必须手动提交
			tx = session.beginTransaction();
			for (int i = 0; i < 5; i++) {
				User user = new User();
				user.setAge(13);
				user.setName("jerry"+i);
				// 这一句就可以将对象保存到数据库
				session.save(user);
			}
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		} finally {
			if (session != null) {
				session.close();
			}
			if (factory != null) {
				factory.close();
			}

		}

	}

	public void testHibernate21() {
		Session session = null;
		//Transaction tx = null;
		try {
			//session = HibernateUtil.getSession();
			//tx = session.beginTransaction();
			session = HibernateUtil.getSession();
				session.beginTransaction();
			User user = new User();
			user.setAge(19);
			user.setName("kaka");
			session.save(user);
			session.getTransaction().commit();
			//tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			tx.rollback();
		} finally {
			HibernateUtil.close(session);

		}

	}
}

hibernate Annotation开发
package cn.Util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernatAannotationUtil {
	private final static SessionFactory sessionFactory;

	static {
		try {
			sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		} catch (Throwable e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	public static Session getSession() {
		return sessionFactory.openSession();
	}

	public static void close(Session session) {
		if (session != null) {
			session.close();
		}
	}

}

spring 工具类
package cn.java;

public class Room {
	private int id;
	private String name;

	public Room() {
	  System.out.println("我是room 构造方法");
	}
	public Room(int id){
		this.id = id;
	}
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

package cn.java;

public class User {
	private int id;
	private String name;
	private Room room;

	public User() {
	}

	public Room getRoom() {
		return room;
	}

	public void setRoom(Room room) {
		this.room = room;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

<?xml version="1.0" encoding="UTF-8"?>

<!--
  - Application context definition for JPetStore's business layer.
  - Contains bean references to the transaction manager and to the DAOs in
  - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
  -->
<beans xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:aop="http://www.springframework.org/schema/aop"
		xmlns:tx="http://www.springframework.org/schema/tx"
		xsi:schemaLocation="
			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-

2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

  <bean id="u1" class="cn.java.User">
     <property name="id" value="1"/>
     <property name="name" value="tom"/>
     <property name="room">
       <ref bean="room"/>
     </property>
  </bean>  
  <bean id="room" class="cn.java.Room" >
    <property name="name" value="011" />
  </bean>
</beans>

package cn.java;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class UserUtil extends TestCase{
  public void test(){
	  
	  //我们以前spring;
	  //手工,创建;;
	  //User u = new User();
	  //u.setId(1);
	  //u.setName("tom");
	  //User u1 = new User();
	  
	  //=========================
	  //spring 帮助创对象../
	  //直接从spring取;
	  //想User 放在spring创建对象;;;
	  //spring 
	  //applicatoinContext.xml
	  
	  //php 1 3 
	  //java 1 3
	  //ClassPathXmlApplicationContext(); class根目
	  //FileSystemXmlApplicationContext("c://applicationContext.xml");
	  //WebApplicationContextUtils;
	  
	  
	  ApplicationContext ctx = null;
	  //ClassPathXmlApplicationContext 
	  //第一加载 xml;
	  //所有配置类,创建对象;;
	  
	   ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

	   User u1 = (User)ctx.getBean("u1");
	   //User u2 = (User)ctx.getBean("u1");
	   
	   //System.out.println(u1 == u2);
	   //System.out.println(u1.getId()+u1.getName());
	   System.out.println(u1.getRoom().getName());	  
  }
}

异步传输
	function createXMLHttpRequest() {
		var objXMLHttp = null;
		//对于Mozilla、Firefox、Opera等浏览器
		try {
			objXMLHttp = new XMLHttpRequest();
		}
		//对于Internet Explorer浏览器
		catch (e) {
			var MSXML = [ 'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0',
					'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0',
					'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP' ];
			for ( var n = 0; n < MSXML.length; n++) {
				try {
					//创建XMLHttpRequest对象
					objXMLHttp = new ActiveXObject(MSXML[n]);
					break;
				} catch (e) {
				}
			}
		}
		return objXMLHttp;
	}
	
	//xml.open("get", "checkUser.jsp?name=" + username,true);
	function checkUser(user) {
		var username = user.value;
		var xml = createXMLHttpRequest();
		xml.open("post", "checkUser.jsp",true);
		xml.setRequestHeader("Content-Type"
				, "application/x-www-form-urlencoded");		
		xml.onreadystatechange = function() {
			//alert("readyState:"+xml.readyState+"\t\r"+"status:"+xml.status);
		if (xml.readyState == 4) {
				if (xml.status == 200 || xml.status == 304) {
					alert(xml.responseText);
				}
			}
		}
		xml.send("name="+username);
	}

//使用literal语法定义一个对象:XMLHttp
var XMLHttp = 
{
	//定义第一个属性,该属性用于缓存XMLHttpRequest对象的数组
	XMLHttpRequestPool: [],
	//对象的第一个方法,该方法用于返回一个XMLHttpRequest对象
	getInstance:function()
	{
		// 从XMLHttpRequest对象池中取出一个空闲的XMLHttpRequest
		for (var i = 0; i < this.XMLHttpRequestPool.length; i ++)
		{
			//如果XMLHttpReuqest的readyState为0,或者为4,
			//都表示当前的XMLHttpRequest对象为闲置的对象
			if (this.XMLHttpRequestPool[i].readyState == 0 || 
				this.XMLHttpRequestPool[i].readyState == 4)
			{
				return this.XMLHttpRequestPool[i];
			}
		}
		//如果没有空闲的,将再次创建一个新的XMLHttpRequest对象
		this.XMLHttpRequestPool[this.XMLHttpRequestPool.length] 
			= this.createXMLHttpRequest();
		//返回刚刚创建的XMLHttpRequest对象
		return this.XMLHttpRequestPool[this.XMLHttpRequestPool.length - 1];
	},
	//创建新的XMLHttpRequest对象
	createXMLHttpRequest:function()
	{
		//对于DOM 2 规范的浏览器
		if (window.XMLHttpRequest)
		{
			var objXMLHttp = new XMLHttpRequest();
		}
		//对于Internet Explorer浏览器
		else
		{
			//将Internet Explorer内置的所有XMLHTTP ActiveX控制设置成数组
			var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 
				'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
			//依次对Internet Explorer内置的XMLHTTP控件初始化,尝试创建XMLHttpRequest对象
			for(var n = 0; n < MSXML.length; n ++)
			{
				try
				{
					//如果可以正常创建XMLHttpRequest对象,使用break跳出循环
					var objXMLHttp = new ActiveXObject(MSXML[n]); 
					break;
				}
				catch(e)
				{
				}
			}
		}
		//Mozilla某些版本没有readyState属性
		if (objXMLHttp.readyState == null)
		{
			//直接设置其readyState为0
			objXMLHttp.readyState = 0;
			//对于哪些没有readyState属性的浏览器,将load动作与下面的函数关联起来
			objXMLHttp.addEventListener("load", function ()
			{
				//当从服务器加载数据完成后,将readyState状态设为4
				objXMLHttp.readyState = 4;
				if (typeof objXMLHttp.onreadystatechange == "function")
				{
					objXMLHttp.onreadystatechange();
				}
			}, false);
		}
		return objXMLHttp;
	},
	//定义对象的第三个方法: 发送请求(方法[POST,GET], 地址, 数据, 回调函数)
	sendRequest: function (method, url, data, callback)
	{
		var objXMLHttp = this.getInstance();
		with(objXMLHttp)
		{
			try
			{
				//增加一个额外的randnum请求参数,用于防止IE缓存服务器响应
				if (url.indexOf("?") > 0)
				{
					url += "&randnum=" + Math.random();
				}
				else
				{
					url += "?randnum=" + Math.random();
				}
				//打开与服务器的连接
				open(method, url, true);
				//对于使用POST请求方式
				if (method == "POST")
				{
					// 设定请求头
					setRequestHeader('Content-Type', 
						'application/x-www-form-urlencoded');
					send(data);
				}
				//对于采用GET请求
				if (method == "GET")
				{
					send(null);
				}
				//设置状态改变的回调函数
				onreadystatechange = function ()
				{
					//当服务器的相应完成时,以及获得了正常的服务器响应
					if (objXMLHttp.readyState == 4 &&
						(objXMLHttp.status == 200 || 
							objXMLHttp.status == 304))
					{
						//当响应时机成熟时,调用回调函数处理响应
						callback(objXMLHttp);
					}
				}
			}
			catch(e)
			{
				alert(e);
			}
		}
	}
};
//相接发送请求
XMLHttp.sendRequest("Post",url,data,callback);
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics