JDBC连接数据库详细步骤:

JDBC技术
    JDBC是java连接数据库唯一的技术。JDBC提供了很多接口,不同的数据库处理方式不同。
    mysql实现了JDBC接口,写好的代码封装成了jar包
    问题:如何连接数据库?

        每个步骤都运行一下!!!
        每个步骤都运行一下!!!
        每个步骤都运行一下!!!

前提:新建服务器

点击windows  选择最后一个

java连接服务器 java连接服务器上的mysql_bc

然后搜索server,点击server 

java连接服务器 java连接服务器上的mysql_java_02

点击runtime Environment,在选择点击add

java连接服务器 java连接服务器上的mysql_java连接服务器_03

选择下载的版本网址:http://tomcat.apache.org/

java连接服务器 java连接服务器上的mysql_java_04

Browser选择你下载好的Apache Tomcat 版本的根路径,根路径就是下一文件就是bin文件了,

bin文件的母文件

java连接服务器 java连接服务器上的mysql_bc_05

配置成功

然后windos .选择最后一个

java连接服务器 java连接服务器上的mysql_java连接服务器_06

点击other后搜索server

java连接服务器 java连接服务器上的mysql_mysql_07

点击server服务器右击

java连接服务器 java连接服务器上的mysql_java连接服务器_08

双击左边的

java连接服务器 java连接服务器上的mysql_mysql_09

点击完成

java连接服务器 java连接服务器上的mysql_java连接服务器_10

启动他

    
        重要的事情说三遍!!@每个步骤都运行一下!!!

        步骤一:准备项目,新建一个动态web

java连接服务器 java连接服务器上的mysql_java_11

        步骤二:下载jar包 mysql-connector-java4.5 

java连接服务器 java连接服务器上的mysql_java连接服务器_12

1. Oracle数据库的JDBC驱动包的网址

https://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html

2. MySQL数据库的JDBC驱动包的网址

https://dev.mysql.com/downloads/connector/j/  

        步骤三:把jar包驱动复制到在Webcontent的字文件下的WEB-INF下,并且add path一下。

java连接服务器 java连接服务器上的mysql_bc_13

        步骤四:在java resources 里面新建sevlet后台

注意不要直接点击完成
        一步一步点击next,选择打钩的时候只保留 server。

java连接服务器 java连接服务器上的mysql_mysql_14

java连接服务器 java连接服务器上的mysql_mysql_15

java连接服务器 java连接服务器上的mysql_mysql_16

        步骤五:在java resources里面新建一个Sevlet。
            在Web content复制注册和登录的JSP文件。(register.jsp   logi.jsp)

链接:https://pan.baidu.com/s/11tkwKB-ZPNlQV0FATw-X8A 
提取码:5res 
复制这段内容后打开百度网盘手机App,操作更方便哦

java连接服务器 java连接服务器上的mysql_java连接服务器_17

        步骤六:添加路径

        在register.jsp文件中,对
        <form class="login-form" action="【服务器所在的项目】/【服务器的路径】" method="post">
        添加路径。
        先在服务器的sever方法里面加一句
        request.setCharicterEncoding("utf8")设置字符集的放乱码的命令
        再对服务器进行获取数据(获取账号和密码...),还是用request分别获取账号和密码,最后的是对应的变量
        是注册的的username 和password最后Ctrl键加 1快速补全代码.
        <input name="username" type="text" class="form-control" id="exampleInputEmail1" placeholder="请输入用户名">。

        ★步骤七:注册驱动。

        Class.forName("com.mysql.jdbc.Driver");//一般固定的格式。

        
          ★★★步骤八:@加载连接

        先输入DriverMannger.getConnection
        ("jdbc:mysql://localhost:3306/【数据库名字】");

        先运行一下。
        ★★★@@@注意:如果控制台出现:============================
        
        Loading class `com.mysql.jdbc.Driver'.  
        This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
        @@@@解决方案:
        把新的路径替换到注册驱动的后边旧的包,
        替换成了com.mysql.cj.jdbc.Driver
        @@@===================================================

        最后Ctrl键加 1快速补全代码.
        
        运行一下:

        ★★★@@@@如何出现:
        java.sql.SQLException: The server time zone value '?й???????' ... 
        @@@@解决方案:
        
        把问题复制到百度,最后解决方案是
        在("jdbc:mysql://localhost:3306/【数据库名字】")的后边加入
         ?serverTimezone=UTC&characterEncoding=utf-8
        
        这是因为时区不一致导致的问题还可以直接在表的后边加入   ?serverTimezone=UTC

    
        ★★★步骤九:获取SQL执行的对象

            connection.prepareStatement("insert into datas values (null,?,?)");
            最后Ctrl键加 1快速补全代码.    
            在它的前面会生成     PreparedStatement pst=
            添加问号里面的数值
            pst.setString(1,【接受获取账号的参数】);
            pst.setString(2,【接受获取密码的参数】);
            
            最后别忘了关闭:【先打开的后关,后打开的先关原则】
            pst.close();
            con.close();
            

        ★★步骤十:转发  跳转页面‘


        重定向:request.sendRedirect(【页面加后缀】);
        转发:resquest.getRequestDispatcher(【页面加后缀】).forward(request, response);

步骤十一:新建一个数据库

我建的数据库是login_system

在这里新建一个数据表我的是datas;

用于存储数据

java连接服务器 java连接服务器上的mysql_mysql_18

步骤十二:浏览器输入地址模拟注册

在浏览器上边输入:          localhost:8080/Prictice_01/register.jsp

localhost:8080/项目名/register.jsp

java连接服务器 java连接服务器上的mysql_java_19

java连接服务器 java连接服务器上的mysql_java_20

点击注册数据库就会变化了

java连接服务器 java连接服务器上的mysql_java_21

源码:

这个是我的服务器sevlet 的代码

import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;/**
  * Servlet implementation class Prictice_1
  */
 @WebServlet("/Prictice_1")
 public class Prictice_1 extends HttpServlet {
     private static final long serialVersionUID = 1L;    /**
      * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
      */
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 // http://localhost:8080/Prictice_01/register.jsp
 //设置字符集
         request.setCharacterEncoding("utf8");
     
 //    获取数据
         String username = request.getParameter("username");
         String password = request.getParameter("password");
         System.out.println("账号:"+username+"\n密码:"+password);
         
         try {
 //            注册
             Class.forName("com.mysql.cj.jdbc.Driver");
             
 //            加载驱动:注意:root 和 123456是我的数据库账号和密码
             Connection conn = DriverManager.getConnection
             ("jdbc:mysql://localhost:3306/login_system?serverTimezone=UTC","root","123456");
             
 //            获取sql执行的对象  PreparedStatement:处理命令
             PreparedStatement pre = conn.prepareStatement
             ("insert into datas values(null,?,?)");
 //            设置问号里面的数值
             pre.setString(1, username);
             pre.setString(2, password);
 //            执行命令!
             pre.executeUpdate();
             
 //            关闭
             pre.close();
             conn.close();
             
 //            转发页面
             request.getRequestDispatcher("login.jsp").forward(request, response);
             
             
             
             
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         
         
         
         
     
     
     }}
  import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;/**
  * Servlet implementation class Prictice_1
  */
 @WebServlet("/Prictice_1")
 public class Prictice_1 extends HttpServlet {
     private static final long serialVersionUID = 1L;    /**
      * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
      */
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 // http://localhost:8080/Prictice_01/register.jsp
 //设置字符集
         request.setCharacterEncoding("utf8");
     
 //    获取数据
         String username = request.getParameter("username");
         String password = request.getParameter("password");
         System.out.println("账号:"+username+"\n密码:"+password);
         
         try {
 //            注册
             Class.forName("com.mysql.cj.jdbc.Driver");
             
 //            加载驱动:注意:root 和 123456是我的数据库账号和密码
             Connection conn = DriverManager.getConnection
             ("jdbc:mysql://localhost:3306/login_system?serverTimezone=UTC","root","123456");
             
 //            获取sql执行的对象  PreparedStatement:处理命令
             PreparedStatement pre = conn.prepareStatement
             ("insert into datas values(null,?,?)");
 //            设置问号里面的数值
             pre.setString(1, username);
             pre.setString(2, password);
 //            执行命令!
             pre.executeUpdate();
             
 //            关闭
             pre.close();
             conn.close();
             
 //            转发页面
             request.getRequestDispatcher("login.jsp").forward(request, response);
             
             
             
             
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         
         
         
         
     
     
     }}
  import java.io.IOException;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;/**
  * Servlet implementation class Prictice_1
  */
 @WebServlet("/Prictice_1")
 public class Prictice_1 extends HttpServlet {
     private static final long serialVersionUID = 1L;    /**
      * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
      */
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 // http://localhost:8080/Prictice_01/register.jsp
 //设置字符集
         request.setCharacterEncoding("utf8");
     
 //    获取数据
         String username = request.getParameter("username");
         String password = request.getParameter("password");
         System.out.println("账号:"+username+"\n密码:"+password);
         
         try {
 //            注册
             Class.forName("com.mysql.cj.jdbc.Driver");
             
 //            加载驱动:注意:root 和 123456是我的数据库账号和密码
             Connection conn = DriverManager.getConnection
             ("jdbc:mysql://localhost:3306/login_system?serverTimezone=UTC","root","123456");
             
 //            获取sql执行的对象  PreparedStatement:处理命令
             PreparedStatement pre = conn.prepareStatement
             ("insert into datas values(null,?,?)");
 //            设置问号里面的数值
             pre.setString(1, username);
             pre.setString(2, password);
 //            执行命令!
             pre.executeUpdate();
             
 //            关闭
             pre.close();
             conn.close();
             
 //            转发页面
             request.getRequestDispatcher("login.jsp").forward(request, response);
             
             
             
             
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         
         
         
         
     
     
     }}