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

  • 相关阅读:
    Java 简单算法--打印乘法口诀(只使用一次循环)
    Java简单算法--求100以内素数
    ubuntu 16.04 chrome flash player 过期
    java 网络API访问 web 站点
    java scoket (UDP通信模型)简易聊天室
    leetcode1105 Filling Bookcase Shelves
    leetcode1140 Stone Game II
    leetcode1186 Maximum Subarray Sum with One Deletion
    leetcode31 Next Permutation
    leetcode834 Sum of Distances in Tree
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3174626.html
Copyright © 2011-2022 走看看