一、关键四元素

   ①    com.mysql.jdbc.Driver      mysql数据库连接jar包。   获取途径: 链接:https://pan.baidu.com/s/1SFcjuut5BsO-4x3U-SdG6Q        提取码:aafz   

  ②    private static final String URL = "jdbc:mysql://localhost:3306/zhaowejie?" + "useUnicode=true&characterEncoding=UTF8";   这是数据库的连接路径。

“jdbc”是协议开头。

“mysql”是子协议数据库名称,代表数据库是mysql。

//localhost:3306”是服务器的IP地址和端口,“zhaowejie?”代表你要连接得数据库的名字。

               "useUnicode=true&characterEncoding=UTF8" 指定操作数据库使用utf-8字符编码进行操作。

  ③   private static final String USER = "root";    数据库连接名。

  ④   private static final String USER = "root";    数据库连接密码。

二、代码实现

  

package machine;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCTest {

// 数据库连接ip,user,password需要修改
// private static final String
       private static final String URL = "jdbc:mysql://localhost:3306/zhaowejie?"+ "useUnicode=true&characterEncoding=UTF8";
       private static final String USER = "root";
  private static final String PASSWORD = "123456";

public static void main(String[] args) {

  Connection conn = null;
     Integer id = 0;
  String userName = null;
  String userPassWord = null;
try {
  // 1.加载驱动程序
  Class.forName("com.mysql.jdbc.Driver");
  // 2.获得数据库的连接
  conn = DriverManager.getConnection(URL, USER, PASSWORD);
  // 3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
  query(conn, 1);
  insert(conn, 3, "zhaoweijie", "123445");
  update(conn, "ws", "23456", 1);
} catch (ClassNotFoundException e) {
  e.printStackTrace();
} catch (SQLException e) {
  e.printStackTrace();
}
}

// 查询
private static void query(Connection conn, Integer id) throws SQLException {
  String sql = "SELECT id, userName , userPassWord FROM USERS WHERE id = ?";
  PreparedStatement ps = null;
  ResultSet rs = null;
try {
  ps = conn.prepareStatement(sql);
  ps.setInt(1, id);
  rs = ps.executeQuery();
  while (rs.next()) {
  id = rs.getInt(1);
  String userName = rs.getString(2);
  String userPassWord = rs.getString(3);
  System.out.println("id=" + id + "userName=" + userName + "userPassWord=" + userPassWord);
}
} catch (SQLException e) {
  e.printStackTrace();
} finally {
  rs.close();
conn.close();
  ps.close();
}
}

  // insert
  private static void insert(Connection conn, Integer id, String userName, String userPassWord) throws SQLException {

  int i = 0;
  // sql 插入的语句
  String s = "" + "insert into users(id,userName,userPassWord) values(?,?,?)";
  PreparedStatement ps = null;

  // ResultSet rs=null;
try {
  ps = conn.prepareStatement(s);
  ps.setInt(1, id);
  ps.setString(2, userName);
  ps.setString(3, userPassWord);
  i = ps.executeUpdate();
} catch (SQLException e) {
  e.printStackTrace();
} finally {
  // rs.close();
  conn.close();
  ps.close();
}
}

  // update
  private static void update(Connection conn, String userName, String userPassword, Integer id) throws SQLException {
  int i = 0;
  String sql = "update users set userName = " + "'" + userName + "'" + "," + "userPassword = " + "'"+ userPassword + "'" + " " + "where id = " + id;
  Statement ps = null;

  // ResultSet rs=null;
try {
  // ps = conn.prepareStatement(sql);
  ps = conn.createStatement();
  i = ps.executeUpdate(sql);
} catch (SQLException e) {
  e.printStackTrace();
} finally {
  // rs.close();
  conn.close();
  ps.close();
}
}
}

   

jdbc-手写Java方法连接数据库的更多相关文章

  1. 手写JAVA虚拟机(二)——实现java命令行

    查看手写JAVA虚拟机系列可以进我的博客园主页查看. 我们知道,我们编译.java并运行.class文件时,需要一些java命令,如最简单的helloworld程序. 这里的程序最好不要加包名,因为加 ...

  2. 手写JAVA虚拟机(三)——搜索class文件并读出内容

    查看手写JAVA虚拟机系列可以进我的博客园主页查看. 前面我们介绍了准备工作以及命令行的编写.既然我们的任务实现命令行中的java命令,同时我们知道java命令是将class文件(字节码)转换成机器码 ...

  3. 6 手写Java LinkedHashMap 核心源码

    概述 LinkedHashMap是Java中常用的数据结构之一,安卓中的LruCache缓存,底层使用的就是LinkedHashMap,LRU(Least Recently Used)算法,即最近最少 ...

  4. 3 手写Java HashMap核心源码

    手写Java HashMap核心源码 上一章手写LinkedList核心源码,本章我们来手写Java HashMap的核心源码. 我们来先了解一下HashMap的原理.HashMap 字面意思 has ...

  5. 手写redux方法以及数组reduce方法

    reduce能做什么? 1)求和 2)计算价格 3)合并数据 4)redux的compose方法 这篇文章主要内容是什么? 1)介绍reduce的主要作用 2)手写实现reduce方法 0)了解red ...

  6. 2 手写Java LinkedList核心源码

    上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素.在查找需求比较重要的 ...

  7. 1 手写Java ArrayList核心源码

    手写ArrayList核心源码 ArrayList是Java中常用的数据结构,不光有ArrayList,还有LinkedList,HashMap,LinkedHashMap,HashSet,Queue ...

  8. 阿里第二轮面试:手写Java二叉树

    阿里面试 现在很多公司在招聘开发岗位的时候,都会事先在招聘信息中注明面试者应当具备的知识技能,而且在面试的过程中,有部分对于技能掌握程度有严格要求的公司还会要求面试者手写代码,这个环节很考验面试者的基 ...

  9. JavaScript手写new方法

    1.看一下正常使用的new方法 function father(name){ this.name=name; this.sayname=function(){ console.log(this.nam ...

随机推荐

  1. Java程序员必读的9本书

    本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...

  2. 2.用eclipse创建maven Web

    一.其他步骤与上一个博客相同,故不赘述,这里要记得选war→Finish 二.在项目上右键选Properties 三.搜索到Project Facets,把勾取消掉,点Apply 四.重新勾选后出现以 ...

  3. 访问修饰符public,private,protected,以及不写(默认)时的区别?

    private: 1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员. 2.在当前类之外,使用对象(或是类名,针对静态的)打点调用都是被 ...

  4. MATLAB 图像打开保存

    一.图片读取保存 (1)读取 clear all [filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片'); if isequal ...

  5. I、恋爱之子

    链接:https://ac.nowcoder.com/acm/contest/3570/I 来源:牛客网 题目描述 最近ZSC和他的女朋友NULL吵架了.因为ZSC是一个直男,他不知道该怎么办,于是他 ...

  6. 曹工说Redis源码(2)-- redis server 启动过程解析及简单c语言基础知识补充

    文章导航 Redis源码系列的初衷,是帮助我们更好地理解Redis,更懂Redis,而怎么才能懂,光看是不够的,建议跟着下面的这一篇,把环境搭建起来,后续可以自己阅读源码,或者跟着我这边一起阅读.由于 ...

  7. win10无法使用VMwareWorkstation的解决办法

    最近(2019-10)国庆期间,微软更新了一次win10. 此次更新导致很多同学的Workstation pro不能用了. 主要的解决办法有一下几种: 卸载最新的系统更新包 在控制面板>> ...

  8. MTK Android Git提取出两个版本之间的差异文件并打包

    git提取出两个版本之间的差异文件并打包 首先你得知道版本之间的commit id git log –pretty=oneline $ git log --pretty=oneline 1 差异文件并 ...

  9. "文本加粗"组件:<b> —— 快应用组件库H-UI

     <import name="b" src="../Common/ui/h-ui/text/c_tag_b"></import> &l ...

  10. 树状数组模板--Color the ball

    Color the ball HDU - 1556 N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电 ...