zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    matlab中figure 创建图窗窗口
    matlab中imread 从图形文件读取图像
    matlab中imfinfo 有关图形文件的信息
    matlab中bitshift 将位移动指定位数
    matlab中reshape 重构数组
    matlab中find 查找非零元素的索引和值
    比特数
    matlab中fseek 移至文件中的指定位置
    poj 1039 Pipe(几何基础)
    poj 1556 The Doors(线段相交,最短路)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3174626.html
Copyright © 2011-2022 走看看