一个7,8年的phper学习java之路

阅读更多

# 一个7,8年的phper学习java之路

之前用python写过图形报表,爬虫,后台搭建觉得python和PHP很像至少很简洁但速度没PHP快。因为精通mysql/前端(HTML/CSS/javascript/jquery/vue)/linux所以只需要把java的东西学好,这对于工作7,8年的老司机来说应该问题不大;

6,7月份开始学习java的基础(比如语法,程序包,泛型等)并总结文档,最近在看JDBC/serlet/JSP,就将就和spring mvc一起搞,因为有8年工作经验就没有看网上的视频但看了两遍文档并记录记忆,直接开搞,一路的摸索尝试解决各种坑和bug,那是相当的累,今天的主题很简单:JDBC来写个增删改查,并简单的封装(OOP思想不能丢,对吧),第一次在这上面写可能写的不好请大家多多包涵和指点!

JDBC的增删改查并封装

软件及工具:

JDK 1.8;

mysql驱动:8.0.11

IDEA编辑器

tomcat :7.0.9

maven:3.6.1

直接上代码吧,封装前的,调试通过了,差不多每行都有注释吧-----------------------------

package com.example.chen.demo.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import java.sql.*;

 

public class HandleSql {

    static Connection con; //声明 Connection 对象

    static PreparedStatement pStmt;//声明预处理 PreparedStatement 对象

    static ResultSet res;//声明结果 ResultSet 对象

    //IDEA右边Database链接数据库 一定要加 "?serverTimezone=GMT" 否则会报错

    static String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT&characterEncoding=utf-8";

    static String user = "root";

    static String password = "root";

    public Connection getConnection() {//建立返回值为 Connection 的方法

        try { //代码块(1):加载数据库驱动类

            //在IDEA右边Database安装驱动(下载mysql-connector-java-8.0.11.jar 然后在右侧导入进去)

            Class.forName("com.mysql.cj.jdbc.Driver"); //没有安装mysql驱动 Class.forName会报错

            System.out.println("数据库驱动加载成功");

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

        //代码块(2):通过访问数据库的URL获取数据库连接对象

        try {

            con = DriverManager.getConnection(url,user,password);

            System.out.println("数据库连接成功");

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return con;

    }

    public static void main(String[] args) {//主方法

        HandleSql h = new HandleSql();//创建本类对象

        con = h.getConnection();//与数据库建立连接

        try {

            //查询所有记录

            String sql = "select * from user";

            pStmt = con.prepareStatement(sql);

            res = pStmt.executeQuery();

            while (res.next()) {//如果当前语句不是最后一条,则进入循环

                int id = res.getInt("id");

                String name = res.getString("username");

                String phone = res.getString("password");

                System.out.println("id:" + id + "  " + "姓名:" + name + "  " + "电话:" + phone);

            }

            //新增一条数据

            pStmt = con.prepareStatement("insert into user (username,password) values (?,?)");

            pStmt.setString(1, "陈波波"); //JDBC的url需要带参数&characterEncoding=utf-8 否则中文存进去乱码

            pStmt.setString(2, "7654321"); // 数字1是 第一个参数   2代表第二个参数

            pStmt.executeUpdate();

            //修改更新数据

            pStmt = con.prepareStatement("update user set username = ? where id = 4");

            pStmt.setString(1,"皮皮虾1");

            pStmt.executeUpdate();

            System.out.println("更新完毕");

            //删除数据

            Statement stmt = con.createStatement();//创建Statement对象

            stmt.executeUpdate("delete from user where id = 3");

            System.out.println("删除完毕");

        } catch (Exception e) {

            e.printStackTrace();

        }

    } 

}

比如从数据库获取一条记录的 运行结果如下:

一个7,8年的phper学习java之路_第1张图片

 数据库数据:

一个7,8年的phper学习java之路_第2张图片
 正常情况下我们开发,像这种增删改查等都会封装到方法里的,比如获取一条记录等,代码如下:

package com.example.chen.demo.controller;

import java.sql.*;

//本类是对HandleSql的封装优化(如获取,更新,删除分别封装方法)

package com.example.chen.demo.controller;

import java.sql.*;

//本类是对HandleSql的封装优化(如获取,更新,删除分别封装方法)

public class HandleSqlNew {

    static Connection con; //声明 Connection 对象

    static PreparedStatement pStmt;//声明预处理 PreparedStatement 对象

    static ResultSet res;//声明结果 ResultSet 对象

    //IDEA右边Database链接数据库 一定要加 "?serverTimezone=GMT" 否则会报错

    static String url = "jdbc:mysql://localhost:3306/test?serverTimezone=GMT&characterEncoding=utf-8";

    static String user = "root";

    static String password = "root";

    static String DataStr;

    public Connection getConnection() {//建立返回值为 Connection 的方法

        try { //代码块(1):加载数据库驱动类

            //在IDEA右边Database安装驱动(下载mysql-connector-java-8.0.11.jar 然后在右侧导入进去)

            Class.forName("com.mysql.cj.jdbc.Driver"); //没有安装mysql驱动 Class.forName会报错

            System.out.println("数据库驱动加载成功");

        } catch (ClassNotFoundException e) {

            e.printStackTrace();

        }

        //代码块(2):通过访问数据库的URL获取数据库连接对象

        try {

            con = DriverManager.getConnection(url,user,password);

            System.out.println("数据库连接成功");

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return con;

    }

    //获取数据  封装

    public String getAll(){

        HandleSqlNew h = new HandleSqlNew();//创建本类对象

        con = h.getConnection();//与数据库建立连接

        try { //这里要加try catch否则下面con和pStmt会报错

            String sql = "select * from user limit 1";

            pStmt = con.prepareStatement(sql);

            res = pStmt.executeQuery();

            while (res.next()) {//如果当前语句不是最后一条,则进入循环

                int id = res.getInt("id");

                String name = res.getString("username");

                String phone = res.getString("password");

                return "id:" + id + "  " + "姓名:" + name + "  " + "电话:" + phone;

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return "error";

    }

    public static void main(String[] args) {//主方法

        HandleSqlNew h = new HandleSqlNew();//创建本类对象

        DataStr = (String) h.getAll(); //获取记录的封装方法  强制类型转换String

        System.out.println(DataStr);

    }

}

//运行结果如上图所示,代码是从网上找的,我也是java菜逼,请大家多多指点,谢谢!

 

  • 一个7,8年的phper学习java之路_第3张图片
  • 大小: 11.7 KB
  • 一个7,8年的phper学习java之路_第4张图片
  • 大小: 13 KB
  • 查看图片附件

你可能感兴趣的:(java编程)