• day17 10.jdbc的crud操作


    每次都是注册驱动,获取连接,然后执行。每次都写很累,肯定能抽取出来一些东西。Java里面是这样的,相同的东西可以抽取做成一个方法。用的时候调这方法就OK了。这方法抽取到什么程度呢?

    package cn.itcast.jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import org.junit.Test;
    
    import cn.itcast.utils.JdbcUtils;
    
    //jdbc的crud操作
    public class JdbcDemo6 {
    
    	@Test
    	public void findByIdTest(){
        //1.定义sql
        String sql = "select * from user where id= 1";
        Connection con = null;
    	   Statement st = null;
    	   ResultSet rs = null;
    	   
    	   try {
    		   
    		//1.注册驱动  
    		  
    		   
    		Class.forName("com.mysql.jdbc.Driver");
    		
    		//2.获取连接
    		try {
    			 con = DriverManager.getConnection("jdbc:mysql:///day17", "root", "");
    		    
    			//3.获取操作sql语句对象Statement
    			 st =   con.createStatement();
    		
    		   //4.执行sql
    		     rs = st.executeQuery(sql);
    		   
    		   //5.遍历结果集
    		    while(rs.next()){
    		    	int id = rs.getInt("id");
    		    	//String id = rs.getString("id");//虽然用getString()行,但是用getInt()比较合适
    		    	String username = rs.getString("username");
    		    	String password = rs.getString("password");
    		    	String email = rs.getString("email");
    		    	System.out.println(id+"   "+username+"   "+password+"   "+email);
    		    }
    		
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}finally{
    		  //6.释放资源
    		  try {
    			  if(rs !=null ){
    			rs.close();
    			  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		  try {
    			  if(st!=null){
    			st.close();
    			  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
           try {
         	  if(con!=null){
    			con.close();
         	  }
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}	
    	 }
    }
    	//添加操作
    	@Test
    	public void addTest(){
    		//定义sql
    		String sql = "insert into user values(null,'张三','123','zs@163.com')";
    		Connection con = null;
    		   Statement st = null;
    		   ResultSet rs = null;
    		   
    		   try {
    			   
    			//1.注册驱动  
    			  
    			   
    			Class.forName("com.mysql.jdbc.Driver");
    			
    			//2.获取连接
    			try {
    				 con = DriverManager.getConnection("jdbc:mysql:///day17", "root", "");
    			    
    				//3.获取操作sql语句对象Statement
    				 st =   con.createStatement();
    			
    			   //4.执行sql
    			     int row = st.executeUpdate(sql);
    			     System.out.println(row);
    			     if(row!=0){
    			    	 System.out.println("添加成功");
    			     }
    			
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    			  //6.释放资源
    			  try {
    				  if(rs !=null ){
    				rs.close();
    				  }
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			  try {
    				  if(st!=null){
    				st.close();
    				  }
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	       try {
    	     	  if(con!=null){
    				con.close();
    	     	  }
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}	
    		 }
    	}
    	
    	//update操作
    	@Test
    	public void updateTest(){
    		//将id=3的人的password修改为456
    		String password = "456";
    		String sql = "update user set password='"+password+"' where id=3";
    		
    		//1.得到Connection
    		Connection con = null;
    		Statement st = null;
    		try {
    			con = JdbcUtils.getConnectin();
    			
    			//3.获取操作sql语句对象Statement
    			 st =   con.createStatement();
    		
    		   //4.执行sql
    		     int row = st.executeUpdate(sql);
    		     System.out.println(row);
    		     if(row!=0){
    		    	 System.out.println("添加成功");
    		     }
    			
    			
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
                 //关闭资源
    			  try {
    				  if(st!=null){
    				st.close();
    				  }
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    	       try {
    	     	  if(con!=null){
    				con.close();
    	     	  }
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}	
    		}
    		
    	}
    }
    	
    
    package cn.itcast.utils;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class JdbcUtils {
       
    	
        public static Connection getConnectin() throws ClassNotFoundException, SQLException{
          
        	Class.forName("com.mysql.jdbc.Driver");//在开发中用哪个Statement人家有选择的权利,你不能给它抽取
    		
    		//2.获取连接
    	  Connection		 con = DriverManager.getConnection("jdbc:mysql:///day17", "root", "");
        return con;
    }
    }
    

     

  • 相关阅读:
    绝对均匀图生成算法
    告别S! S! H! 秒杀终端工具——FastLogin快捷登录
    使用Atom打造无懈可击的Markdown编辑器
    程序异常分析指南
    javascript opacity兼容性随笔
    javascript event兼容性随笔
    javascript Xml兼容性随笔
    addEventListener、attachEvent、cancelBubble兼容性随笔
    算法--逆波兰表达式(数学逆波兰表达式和交并集逆波兰表达式)
    算法--区间数据计算
  • 原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6636036.html
Copyright © 2020-2023  润新知