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

# 一个7,8年的phper学习java之路
在https://www.iteye.com/blog/user/chenhaibo0806999上写了6,7年的博客(共96篇文章,访问量近80000),最近准备开始在这个上写博客了,这个是处女作品,希望以后的编程之路顺利!之前用python写过图形报表,爬虫,后台搭建觉得python和PHP很像至少很简洁但速度没PHP快。3,4个月前做了一个决定努力学习java给自己10个月的时间然后转行做java,因为精通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();
        }
    } 
}

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


数据库数据:

正常情况下我们开发,像这种增删改查等都会封装到方法里的,比如获取一条记录等,代码如下:
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菜逼,请大家多多指点,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值