Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

在上一篇文章中我们成功得到了重新组织后的数据,接下来需要做的便是将数据插入到数据库中了。在与数据库打交道的过程中有一些方法是普遍的,我们将这些通用方法封装到一个DbUtil类中,以便复用,封装好的DbUtil如下:

package DbUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 封装数据库常用操作
 * @author changshou
 *
 */
public class DbUtil {
        //取得数据库连接
	public static Connection getConnection(){
		Connection conn = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
			String username = "drp1";
			String password = "drp1";
			conn = DriverManager.getConnection(url, username, password);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	//关闭连接
 	public static void close(Connection conn){		
 		if(conn != null){ 
 			try {
				 conn.close();
 			} catch (SQLException e) {
				 // TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
	 }
	
	//关闭PreparedStatement和Statement
	public static void close(PreparedStatement pstmt){
		 if(pstmt != null){
			try {
 				pstmt.close();
			} catch (SQLException e) {
				 // TODO Auto-generated catch block
				e.printStackTrace();
			 }
		}
	}
	
	//关闭Statement
	public static void close(Statement stmt){
		 if(stmt != null){
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	//关闭ResultSet
	public static void close(ResultSet rs){
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				 // TODO Auto-generated catch block
				e.printStackTrace();
 			}
		}
		
 	}
	/**
	  * 手动开启事务,不让事务自动提交
	  * @param conn
	  */
 	public static void beginTransaction(Connection conn){
 		try{
 			if(conn != null){
 				if(conn.getAutoCommit()){
 					conn.setAutoCommit(false);//手动提交
				}
 			}
			
 		}catch(SQLException e){
			
 		}
 	}
	
 	/**
	  * 提交事务
	  * @param conn
	 */
 	public static void commitTransaction(Connection conn){
 		try{
 			if(conn != null){
				if(!conn.getAutoCommit()){
 					conn.commit();
 				}
			}
			
		}catch(SQLException e){
			
		}
	}
	
	/**
	 * 回滚事务
	 * @param conn
	 */
	public static void rollbackTransaction(Connection conn){
		try{
			if(conn != null){
				if(!conn.getAutoCommit()){
					conn.rollback();
				}
			}
			
		}catch(SQLException e){
			
		}
	}
	
	public static void reset(Connection conn){
		try{
			if(conn != null){
				if(conn.getAutoCommit()){
					conn.setAutoCommit(false);
				}else{
					conn.setAutoCommit(true);
				}
			}
			
		}catch(SQLException e){
			
		}
	}
}


下面的代码将真正执行数据的插入操作,注意在执行代码前需引入相关jar包,如jdbc驱动等。否则在执行的过程中会报错。

package UserManager;
import java.sql.Connection;
import java.sql.PreparedStatement;

import com.sun.org.apache.bcel.internal.generic.RETURN;

import DbUtil.*;
public class UserManager {
	
	public void insertUser(String userId,String userName,String userRoot){
		//执行插入的sql语句
		String sql = "INSERT INTO T_TEST1 (USERUD,USERNAME,USERROOT) VALUES (?,?,?)";
		Connection conn = null;
		PreparedStatement pstmt = null;
		try{
			//得到数据库连接
			conn = DbUtil.getConnection();
			pstmt = conn.prepareStatement(sql);
			//给占位符赋值
			pstmt.setString(1,userId);
			pstmt.setString(2, userName);
			pstmt.setString(3, userRoot);
			//执行插入语句
			pstmt.executeUpdate();
		}catch(Exception e){
			e.printStackTrace();
			
		}finally{
			//关闭相关资源
			DbUtil.close(pstmt);
			DbUtil.close(conn);
		}
	}
}

总结:将xml文件中的数据插入到数据库中所涉及到的环节主要有四个。第一是前端xml文件的解析。第二是xml数据的传输。第三是数据的重新组合。第四是数据的插入。贯穿这四个环节所涉及的语言分别是xml,javascript,html,java。从当今编程的趋势看,混合语言的使用已经是一种趋势,而解决类似问题的关键就在于将整个过程分成若干块,将每一块提供一个接口,只要接口的实现没有问题,整个过程也不会有太大问题。

Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库。

Ajax实现xml文件数据插入数据库(二)--- ajax实现与jsp的数据交互。

Ajax

原文地址:https://www.cnblogs.com/jiangu66/p/3174626.html