# 一个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();
         }
     } 
 }

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

Java 开发的erp系统有哪些 java开发erp系统难不难_java


数据库数据:

Java 开发的erp系统有哪些 java开发erp系统难不难_mysql_02


正常情况下我们开发,像这种增删改查等都会封装到方法里的,比如获取一条记录等,代码如下:

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链接数据库 一定要加 "?serverTimeznotallow=GMT" 否则会报错
     static String url = "jdbc:mysql://localhost:3306/test?serverTimeznotallow=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菜逼,请大家多多指点,谢谢!