JSP,Servlet,JDBC学习

JSP,Servlet,JDBC学习,第1张

JSP,Servlet,JDBC学习

        随着eclipse崩掉了,又开始了配环境之路,在这个过程中,发现以前学过的东西都忘记的差不多了,临近毕业,还想把这些东西再巩固一遍,今天是2022的第一天,不会真的有人在敲代码吧哈哈哈!

        首先就是如果你的eclipse遇到这种情况,从个人经验来看,是JDK的问题,可能是版本问题,我卸载JDK后重新安装了就好了,因为用IDEA的时候安装了好多东西,导致eclipse不能用了。

        第二点是JSP,记住<% %>为脚本片段,用于写java代码,<%! %>叫做声明,可以用作定义函数,<%= %>为脚本表达式。在其中有几种常用的方法:

    String schema=request.getScheme();//获取协议名称
    String servename=request.getServerName();//获取服务器名称
    int port=request.getServerPort();//获取服务器端口号
    String path=request.getContextPath();//获取工程名 
    String username=request.getParameter("username");//获取参数
    request.getRequestDispatcher("/success.jsp").forward(request, response);//转发 
    response.sendRedirect("/demo2/fail.jsp");//重定向

 

第三点是Servlet,首先是配置虚拟访问路径,@WebServlet("/MainServlet")

 其次在Servlet中,要重写doGet方法和doPost方法,另外提一下复选框数据的传入和输出

 

 接下来是JDBC,在JDBC的书写上面我就是按照一定的套路来的,初始的增删改查就是这样。

public class UserDaoImpl {
	   @Test
       public void InsertUser() throws Exception  {  //添加
	   //1导入驱动包
       //2加载驱动
    	 Class.forName("com.mysql.jdbc.Driver");
       //3铺管道,建立Java到MySQL链接
    	 Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
       //4创建车
    	 Statement st= conn.createStatement();
       //5将sql装车发送到mysql数据库中去
    	 String sql="INSERT INTO users SET id=2,username='zhang',psw='123'";
    	 int flag=st.executeUpdate(sql);
    	 if(flag>=1)
    		 System.out.println("插入成功");
    	 else {
    		 System.out.println("插入失败");
		}
       //6释放资源
    	 st.close();
    	 conn.close();
    	   
	}
	   @Test
	   public void DeletetUser() throws Exception  {      //删除
		   //1导入驱动包
	       //2加载驱动
	    	 Class.forName("com.mysql.jdbc.Driver");
	       //3铺管道,建立Java到MySQL链接
	    	 Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
	       //4创建车
	    	 Statement st= conn.createStatement();
	       //5将sql装车发送到mysql数据库中去
	    	 String sql="DELETE FROM users WHERe username='zhang'";
	    	 int flag=st.executeUpdate(sql);
	    	 if(flag>=1)//受影响的行数
	    		 System.out.println("删除成功");
	    	 else {
	    		 System.out.println("删除失败");
			}
	       //6释放资源
	    	 st.close();
	    	 conn.close();
	    	   
		}
	   @Test
	   public void UpdateUser() throws Exception  {      //修改
		   //1导入驱动包
	       //2加载驱动
	    	 Class.forName("com.mysql.jdbc.Driver");
	       //3铺管道,建立Java到MySQL链接
	    	 Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
	       //4创建车
	    	 Statement st= conn.createStatement();
	       //5将sql装车发送到mysql数据库中去
	    	 String sql="UPDATE users SET id=3 WHERe username='zhang'";
	    	 int flag=st.executeUpdate(sql);
	    	 if(flag>=1)//受影响的行数
	    		 System.out.println("删除成功");
	    	 else {
	    		 System.out.println("删除失败");
			}
	       //6释放资源
	    	 st.close();
	    	 conn.close();
	    	   
		}
	   @Test
	   public void SelectAll() throws Exception {
		 //1导入驱动包
	       //2加载驱动
		   Class.forName("com.mysql.jdbc.Driver");
		 //3铺管道,建立Java到MySQL链接
		   Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login", "root", "root");
		 //4创建车
		   Statement st=conn.createStatement();
		 //5将sql装车发送到mysql数据库中去
		   String sql="SELECT * FROM users";
		   ResultSet rs=st.executeQuery(sql);//结果集
		   while(rs.next())
		   {
			   long id=rs.getLong("id");
			   String username=rs.getString("username");
			   String psw=rs.getString("psw");
			   System.out.println(id+" "+username+" "+psw);
		   }
		  //6释放资源
		     rs.close();
	    	 st.close();
	    	 conn.close();
		   
		
	}
}

如果想更规范一些,写成这样更好。

 @Test
	   public void SelectAll2() throws Exception {
		   Connection conn=null;
		   Statement st=null;
		   ResultSet rs=null;
		 //1导入驱动包
		   try {
			 //2加载驱动
			   Class.forName("com.mysql.jdbc.Driver");
			 //3铺管道,建立Java到MySQL链接
			   conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login?useSSL=false", "root", "root");
			 //4创建车
			   st=conn.createStatement();
			 //5将sql装车发送到mysql数据库中去
			   String sql="SELECT * FROM users";
			    rs=st.executeQuery(sql);//结果集
			   while(rs.next())
			   {
				   long id=rs.getLong("id");
				   String username=rs.getString("username");
				   String psw=rs.getString("psw");
				   System.out.println(id+" "+username+" "+psw);
			   }
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("发生错误了");
			e.printStackTrace();
		}
	      finally {
	    	//6释放资源
			     rs.close();
		    	 st.close();
		    	 conn.close();
		}
		 
		   
		
	}

如果你在执行时遇到Sat Jan 01 15:12:22 CST 2022 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.这个大概意思就是加载驱动的时候没有配饰SSL配置项,不会影响输出结果,在创建链接时加上就可以了。

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/login?useSSL=false", "root", "root");

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5692356.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存