使用JDBC对MySql与Java之间进行数据交互并展示在前端页面

目录

1 什么是JDBC

 2 创建数据库

 3 JDBC进行数据库的操作

     3.1 先在IDEA中创建实体类:

     3.2 JDBC的增删改查操作

      1.首先创建JDBC工具包

      2.创建接口方法进行增删改查

      3. JDBC的增删改查操作

     3.3通过Servlet向前端传递数据

      1.   Jdbc全查Servlet

       2.   Jdbc添加Servlet

       3.   Jdbc删除操作Servlet

       4.JDBC通过Servlet修改操作

---------------------------------------声明-----------------------------------------


1 什么是JDBC

       概念:Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序 如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

      各数据库厂商根据JDBC的规范,实现自身数据库操作的功能代码,然后以jar包(数据库厂商提供的驱动 包)的形式提供给开发人员使用,开发人员使用反射的机制创建这些具体实现类,按照JDBC的规范来完 成数据库的操作。

接口和JDBC规范的理解:

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第1张图片

 2 创建数据库

创建商信息表

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第2张图片

 

 3 JDBC进行数据库的操作

     3.1 先在IDEA中创建实体类:

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第3张图片

 

       类的名字对应数据库表的名字、类的属 性对应表的字段

 //IDEA自动构造代码快捷键: alt + insert

3.2 JDBC的增删改查操作

      1.首先创建JDBC工具包

public class JDBC {
	private static String driver="com.mysql.cj.jdbc.Driver";
	private static String url="jdbc:mysql://localhost:3306/mydb";//mysql库名
	private static String name="root";//用户名
	private static String pwd="123";//密码
	  
	
	private static Connection conn=null;
	
	public static Connection getConn() {
		//1.导入链接MySQL的驱动包
		
		try {
		//2.通过反射加载驱动包
			Class.forName(driver);
		//3.通过驱动管理器获取数据库的链接
			conn=DriverManager.getConnection(url, name, pwd);
			
		} catch (ClassNotFoundException e) {
			System.err.println("找不到加载的驱动类");
			
		}catch (SQLException e) {
			System.err.println("连接数据库失败");
		}
		
		
		
		
		return conn;
	}
        
	public static void close(Connection conn,PreparedStatement ps,ResultSet rs) {
		try {
			if (conn!=null) {
				conn.close();
			}
			if (ps!=null) {
				ps.close();
			}
			if (rs!=null) {
				rs.close();
			}
			
		} catch (Exception e) {
			System.out.println("资源关闭失败");
		}
		
	}
	
	
	public static void close(Connection conn,PreparedStatement ps) {
		try {
			if (conn!=null) {
				conn.close();
			}
			if (ps!=null) {
				ps.close();
			}
		} catch (Exception e) {
			System.out.println("资源关闭失败");
		}
		
	}
}

2.创建接口方法进行增删改查

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第4张图片

 

   3. JDBC的增删改查操作

              查询获得的结果集

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第5张图片

 

         结果集的游标默认指向的是数据标题行,需要使用 next() 方法移动游标,指向真正的数据               行。该 方法的返回值是boolean类型,如果向下移动有数据行返回true,否则返回false。


public class GoodsDaoimpl implements GoodsDao{
       Connection conn=null;
       PreparedStatement ps=null;
       ResultSet rs=null;
       Goods good=null;

	   int n;
	@Override
	public List GoodsAll() {
		  List arr=new ArrayList();
		   
		  try {

		       conn=JDBC.getConn();

		       String Sql="select * from goods";

		       ps=conn.prepareStatement(Sql);
		    //
		       rs=ps.executeQuery();
		       
		       //
		       while(rs.next()) {
		    	     good=new Goods();
		    	    good.setGoodsId(rs.getInt("goodsId"));
		    	    good.setGoodsName(rs.getString("goodsName"));
		    	    good.setPrice(rs.getDouble("price"));
		    	    good.setStock(rs.getInt("stock"));
		    	    good.setSupplier(rs.getString("supplier"));
		    	    
		    	    arr.add(good);
		    	    
		    	    
		       }
		       System.out.println("商品查询成功");
		  }catch (SQLException e) {
			System.out.println("商品查询失败");
		}finally {
			JDBC.close(conn, ps, rs);
		}
		  
		return arr;
	}
//删除商品信息操作
	@Override
	public int Goodsdel(int goodsId) {
		try{
			//调用JDBC
			conn=JDBC.getConn();
			//准备SQL
			String sql="delete from goods where goodsId=?";
			//使用
			ps=conn.prepareStatement(sql);

		    ps.setInt(1,goodsId);

			n=ps.executeUpdate();
			System.out.println("删除成功");
		}catch (SQLException e){
			System.out.println("删除失败");
		}finally {
			JDBC.close(conn,ps);
		}
		return n;
	}
//添加商品操作
	@Override
	public int GoodsAdd(Goods goods) {
		try{
			//调用JDBC
			conn=JDBC.getConn();
			//准备SQL
			String sql="insert into goods(goodsName,price,stock,supplier) values(?,?,?,?)";
			//使用
			ps=conn.prepareStatement(sql);
			//获取?值
			ps.setString(1, goods.getGoodsName());
			ps.setDouble(2, goods.getPrice());

			ps.setInt(3, goods.getStock());
			ps.setString(4, goods.getSupplier());

			n=ps.executeUpdate();
			System.out.println("添加成功");
		}catch (SQLException e){
			System.out.println("添加失败");
		}finally {
			JDBC.close(conn,ps);
		}
		return n;
	}
//通过id查询商品
	@Override
	public Goods Goodsbyid(int goodsId) {
		try{
			//调用JDBC
			conn=JDBC.getConn();
			//准备SQL
			String sql="select * from goods WHERE goodsId=?";
			//使用
			ps=conn.prepareStatement(sql);
//
			ps.setInt(1,goodsId);
//
			rs=ps.executeQuery();
			if (rs.next()){
				good=new Goods();
				good.setGoodsId(rs.getInt("goodsId"));
				good.setGoodsName(rs.getString("goodsName"));
				good.setPrice(rs.getDouble("price"));
				good.setStock(rs.getInt("stock"));
				good.setSupplier(rs.getString("supplier"));
			}
			System.out.println("查询商品编号信息成功");
		}catch (SQLException e){
			System.out.println("查询商品编号信息失败");
		}finally {
			JDBC.close(conn,ps);
		}
		return good;
	}
	//
	//修改操作
	@Override
	public int GoodsUpdate(Goods goods) {
		try{
			//调用JDBC
			conn=JDBC.getConn();
			//准备SQL
			String sql="update goods set goodsName=?,price=?,stock=?,supplier=? where goodsId=?";
			//使用
			ps=conn.prepareStatement(sql);
			//获取?值
//
			ps.setString(1, goods.getGoodsName());
			ps.setDouble(2, goods.getPrice());
			ps.setInt(3, goods.getStock());
			ps.setString(4, goods.getSupplier());
			ps.setInt(5,goods.getGoodsId());
//
			n=ps.executeUpdate();
			System.out.println("修改成功");
		}catch (SQLException e){
			System.out.println("修改失败");
		}finally {
			JDBC.close(conn,ps);
		}
		return n;
	}

3.3通过Servlet向前端传递数据

1.   Jdbc全查Servlet

@WebServlet("/GoodsAll")
public class GoodsAll extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//
		//规划局
		request.setCharacterEncoding("utf-8");
//
		//
		 Goodsservice good=new Goodsserviceimpl();
		    List goods=good.GoodsAll();
		//
		    System.out.println(goods);
		//
			request.getSession().setAttribute("goods", goods);
			request.getRequestDispatcher("zhuye.jsp").forward(request, response);
	}
//
}

获取到数据传递到前端主页页面

主页代码

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第6张图片

 主页获取成功页面

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第7张图片

 2.   Jdbc添加Servlet

@WebServlet("/goodsAdd")
public class GoodsAdd extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        //
        request.setCharacterEncoding("utf-8");
        //获取前端数据
        String goodsName=request.getParameter("goodsName");
        System.out.println("中文测试");
        Double price=Double.parseDouble(request.getParameter("price"));
        Integer stock=Integer.parseInt(request.getParameter("stock"));
        String supplier= request.getParameter("supplier");
        //存到实体类
        //
        Goods goods=new Goods();
        goods.setGoodsName(goodsName);
        goods.setPrice(price);
        goods.setStock(stock);
        goods.setSupplier(supplier);

        System.out.println(goods);
//
        //调用
        Goodsservice good=new Goodsserviceimpl();
           int goodsadd= good.GoodsAdd(goods);

           if (goodsadd >0){
               request.getSession().setAttribute("goodsadd",goodsadd);

//
               request.getRequestDispatcher("GoodsAll").forward(request, response);
           }else {
               response.sendRedirect("err.jsp");
           }
    }
}
////

    添加成功会进入全查Servlet,如果全查成功进入主页页面,否则进入错误页面

因为使用了模态框,会出现部分模态框代码

    
        

前端添加页面

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第8张图片

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第9张图片 添加成功如下

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第10张图片 

 3.   Jdbc删除操作Servlet

点击删除按钮

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第11张图片

 自动获取点击删除id

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第12张图片 

 

 点击后进行servlet操作

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第13张图片

 删除成功并进行全查随后刷新主页

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第14张图片

 删除成功

4.JDBC通过Servlet修改操作

修改操作首先需要获取点击某个修改按钮id

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第15张图片

 获取到id为3,并获取相对应信息

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第16张图片

 获取goodsid为3的信息

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第17张图片

 点击修改进入进行修改的Servlet

public class GoodsUpdate extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置编码格式
        request.setCharacterEncoding("utf-8");
        //获取前端数据
        Integer goodsId=Integer.parseInt(request.getParameter("goodsId"));
        String goodsName=request.getParameter("goodsName");
//
        Double price=Double.parseDouble(request.getParameter("price"));
        Integer stock=Integer.parseInt(request.getParameter("stock"));
        String supplier= request.getParameter("supplier");
        //存到实体类
        Goods goods=new Goods();
        goods.setGoodsId(goodsId);
        goods.setGoodsName(goodsName);
        goods.setPrice(price);
        goods.setStock(stock);
        goods.setSupplier(supplier);
//
        System.out.println("获取到修改后信息"+goods);
//
        //调用
        Goodsservice good=new Goodsserviceimpl();
        int goodUp= good.GoodsUpdate(goods);
        System.out.println(goodUp);
        if (goodUp >0){
            request.getSession().setAttribute("goodUp",goodUp);
//

            request.getRequestDispatcher("GoodsAll").forward(request, response);
        }else {
            response.sendRedirect("err.jsp");
        }
    }//
}

修改成功进入全查Servlet 

使用JDBC对MySql与Java之间进行数据交互并展示在前端页面_第18张图片

 修改成功

---------------------------------------声明-----------------------------------------

1.以上内容结合老师所讲及自己理解,进行编辑,有不足请评论或私信

你可能感兴趣的:(java,mysql,数据库)