1.基本的数据库操作

这里连接数据库可以做成一个单独的utils类,我这里因为程序少就没有封装。

虽然现在jdbc被其他框架取代了,但这是框架的基础

如下:第一个是插入数据操作

package Databases;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class test0812 { public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
results();
}
public static void results() throws Exception {
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/my";
String user="root";
String pwt="";
Connection con=null; Class.forName(driver);
con=DriverManager.getConnection(url, user, pwt);
Statement sta=con.createStatement();
// String sql="select * from user";
// ResultSet re=sta.executeQuery(sql);
// while(re.next()) {
// String username=re.getString("username");
// String password=re.getString("password");
// System.out.println(username+password);
// }
// 这是插入自增的处理指明对应的值,不然会报错
// String sql="insert into user(username,password) values('admin','123456')";
String sql="insert into user values('6','admins','1212')";
int n=sta.executeUpdate(sql);
System.out.println(n);
sta.close();
con.close();
}
}

2.查询的操作:

这里也附带一个查询package Databases;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; public class TestMain { public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
insert();
}
public static void selects() throws Exception{
//要使用数据库先要连接数据库(jdbk),1.注册数据库
Class.forName("com.mysql.jdbc.Driver");
//us是自己建立的数据库名
String url="jdbc:mysql://localhost:3306/us"; String username="root"; String password=""; //连接数据库Connection中有一个方法 Connection con=DriverManager.getConnection(url,username,password); /** * 建立执行数据语句的平台 * Statement */

        Statement sta=con.createStatement();
/**
* 执行SQL查找
* executeQuery
*/
String sql="select * from us";
ResultSet rs=sta.executeQuery(sql);
/**
* ResultSet遍历用迭代器的
* 这里不需要直接用迭代器的,可以
* 直接用rs,next()实现
*/
while(rs.next()){
String user=rs.getString("username");
String pwd=rs.getString("password"); System.out.println(user+pwd);
} sta.close();
con.close();
}
public static void insert()throws Exception{
/**
* 连接数据库
*/
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/us";
String names="root";
String price="";
Connection con=DriverManager.getConnection(url,names,price);
/**
* 建立执行数据语句的平台
* 双引号里再添加引号的时候用单引号或者用\隔开
*/
Statement sta=con.createStatement();
/**
* 执行添加sql语句 us是
*/
String sql="insert into us(?,?) values('durian','ds')";
int n=sta.executeUpdate(sql);
// 插入数据用的是executeUpdate()方法
/**
* 数据库的查询 * @throws Exception
*/
public static void select() throws Exception{
//要使用数据库先要连接数据库(jdbk),1.注册数据库
Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/us";
String names="root";
String price="";
//连接数据库Connection中有一个方法
Connection con=DriverManager.getConnection(url,names,price);
/**
* 建立执行数据语句的平台
* Statement
*/
Statement sta=con.createStatement();
/**
* 执行SQL查找
* executeQuery user是表名
*/
String sql="select * from user";
ResultSet rs=sta.executeQuery(sql);
// 查找用的是executeQuery()
/**
* ResultSet遍历用迭代器的
* 这里不需要直接用迭代器的,可以
* 直接用rs,next()实现
*/
while(rs.next()){
// 这里的names要和数据库中的名字要相对应,否则报错
System.out.println(rs.getString("names")+" "+rs.getString("price")+" "+rs.getString("number"));
}
sta.close();
con.close();
}
}
3.用动态方法添加数值得用法:这是和上面的程序是分开的没有任何联系
这是添加类
3.1
package Databases_1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner; public class FatherClass {
/**
* 添加3个商品的信息
*/
private String names;
private String price;
private String num; public String getNames() {
return names;
}
public void setNames(String names) {
this.names = names;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
private Statement sta;
private Connection con; public Statement getSta() {
return sta;
}
public void setSta(Statement sta) {
this.sta = sta;
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
/**
* 设置了3个常量
*/
private static final String URI = "jdbc:mysql://localhost:3306/us";
private static final String USER = "root";
private static final String PASS = ""; public static String getUri() {
return URI;
}
public static String getUser() {
return USER;
}
public static String getPass() {
return PASS;
} /**
* 数据库常用方法
* @throws Exception
*/
Scanner in=new Scanner(System.in);
public void numbers() throws Exception {
//要使用数据库先要连接数据库(jdbk),1.注册数据库
Class.forName("com.mysql.jdbc.Driver");
//连接数据库Connection中有一个方法
setCon(DriverManager.getConnection(URI,USER,PASS));
/*con=DriverManager.getConnection(URI,USER,PASS);*/
/**
* 建立执行数据语句的平台
* Statement
*/
setSta(getCon().createStatement());
/*sta=con.createStatement();*/
}
/**
* 添加的方法
*/
public void inserts() throws Exception{
System.out.println("请输入你要添加的商品名称");
names=in.next();
System.out.println("请输入商品的价格");
price=in.next();
/*setPrice(in.next());*/
System.out.println("请输入商品数量");
num=in.next();
/*setNum(in.next());*/
numbers();
/**
* 执行添加sql语句
*/
String sql="insert into user values('"+names+"','"+price+"','"+num+"')";
int n=sta.executeUpdate(sql);
System.out.println("添加成功");
sta.close();
con.close();
}
/**
* 删除的方法
*/
public void delete() throws Exception{ numbers();
System.out.println("请输入你要删除的商品名称");
names=in.next();
String sql="delete into user where names='"+names+"'";
System.out.println("删除成功");
select();
} /**
* 修改的方法
*/
// public void updata() throws Exception {
// numbers();
// System.out.println("请输入你要修改的商品信息(1.修改商品名称 2.修改商品价格 3.修改商品数量)");
// int n=in.hashCode();
// switch (n) {
// case 1:
// System.out.println("你要修改成的");
// break;
// case 2:
//
// break;
// case 3:
//
// break;
//
// }
// }
/**
* 查找的方法
*/
public void select() throws Exception{ numbers();
/**
* 执行SQL查找
* executeQuery
*/
String sql="select * from user";
ResultSet rs=sta.executeQuery(sql);
/**
* ResultSet遍历用迭代器的
* 这里不需要直接用迭代器的,可以
* 直接用rs,next()实现
*/
while(rs.next()){
System.out.println(rs.getString("names")+" "+rs.getString("price")+" "+rs.getString("number"));
}
sta.close();
con.close();
} }

3.2我这里设置了一个验证的效果:

package Databases_1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
/**
* 登陆系统
* @author xixu
*
*/
public class Login {
private String us;
private String pw; public void Scanners() {
Scanner in=new Scanner(System.in);
System.out.println("请输入登陆的超市账号");
us=in.next();
System.out.println("请输入登陆的密码");
pw=in.next();
} public boolean selects() throws Exception{
Scanners(); //要使用数据库先要连接数据库(jdbk),1.注册数据库
Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/us";
String username="root";
String password="";
//连接数据库Connection中有一个方法
Connection con=DriverManager.getConnection(url,username,password);
/**
* 建立执行数据语句的平台
* Statement
*/
Statement sta=con.createStatement();
/**
* 执行SQL查找
* executeQuery
*/
String sql="select * from us";
ResultSet rs=sta.executeQuery(sql);
/**
* ResultSet遍历用迭代器的
* 这里不需要直接用迭代器的,可以
* 直接用rs,next()实现
*/
while(rs.next()){
String user=rs.getString("username");
String pwd=rs.getString("password");
if(us.equals(user)&&pw.equals(pwd)) {
return true;
}
} sta.close();
con.close();
return false;
}
}
3.3测试类

package Databases_1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; public class Mains { public static void main(String[] args) throws Exception{
Login lo=new Login();
boolean s=lo.selects();
if(s) { System.out.println("登陆成功");
FatherClass fa=new FatherClass();
fa.inserts();
/*fa.select();
fa.delete();*/ }
else {
System.out.println("你的账号输入有误,请核对好账号密码");
} }
}



 

 

jdbc最基础的mysql操作的更多相关文章

  1. jdbc基础 (一) MySQL的简单使用

    前段时间学习了jdbc,正好利用这几篇文章总结一下. JDBC 可做三件事:与数据库建立连接.发送操作数据库的语句并处理结果. 而程序首先要做的就是加载数据库驱动,这里我使用的是mysql: Stri ...

  2. 着重基础之—MySql 不能遗忘的索引操作

    着重基础之—MySql 不能遗忘的索引操作 关于MySql索引的基础知识我就不在这里写了,我不太想当信息的搬运工. 技巧分享:Workbench 作为一款专为MySQL设计的ER/数据库建模工具.除了 ...

  3. (2.7)Mysql之SQL基础——表的操作与查看

    (2.7)Mysql之SQL基础——表的操作与查看 搜索关键字:mysql表操作,comment注释操作,mysql临时表 0.临时表 create temporary table 1.创建表(在in ...

  4. Java JDBC的基础知识(三)

    在前面的Java JDBC的基础知识(二)和(三)中,主要介绍JDBC的原理和简单的应用过程.尤其在(二)中,可以发现代码进行多次try/catch,还有在前面创建连接等过程中好多参数我都给写定了. ...

  5. Java JDBC的基础知识(二)

    在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...

  6. Java JDBC的基础知识(一)

    一.为什么引入JDBC 在学习JDBC之前,抛开它的概念,我先按照我的理解解释一下,为什么要引入JDBC.在我看来,引入JDBC跟我之前学过的引入JVM(Java虚拟机)有些相似之处.当然,关于JVM ...

  7. 使用JDBC进行数据库的事务操作(1)

    本篇讲述数据库中非常重要的事务概念和如何使用MySQL命令行窗口来进行数据库的事务操作.下一篇会讲述如何使用JDBC进行数据库的事务操作. 事务是指数据库中的一组逻辑操作,这个操作的特点就是在该组逻辑 ...

  8. 使用JDBC对数据库实现批处理操作

    本篇讲述如何使用JDBC对数据库实现批处理操作.很多时候单条SQL命令不能满足我们的需求,我们需要对数据库一次实现很多操作,需要发送一批SQL命令给数据库执行. 而JDBC也提供了相应的方法给我们实现 ...

  9. JDBC增删改数据库的操作

    JDBC入门及简单增删改数据库的操作 一.JDBC的引入 1.JDBC的概念 JDBC:Java Database Connection,表示数据库连接(任何数据库都支持JDBC的连接),是一个独立于 ...

随机推荐

  1. centos的nginx支持ssl

    首先看centos是否支持ssl 输入:openssl version 如无 则去 http://slproweb.com/products/Win32OpenSSL.html  寻找 生成私钥后面的 ...

  2. 基于ArcGIS Runtime 100.x 的移动应用程序开发框架 开源

    ArcGIS Runtime作为新一代的轻量GIS应用开发产品,它提供多种API,可以使用Android,iOS,Java,Mac OS X(Objective-C/Swift)..NET,Qt(C+ ...

  3. hibernate基础配置

    数据库表名和类名 一致 注解:可写可不写: XML:可写可不写: <class name="Student"> 不一致 注解:  public class Teache ...

  4. table是可语义化

    为了使我们的网站更好的被搜索引擎抓取收录,更自然的获得更高的流量,网站标签的语义化就显得尤为重要.所谓标签语义化,就是指标签的含义. 为了更好的理解标签的语义化,先看下面这个例子: <table ...

  5. #学习笔记#e2e学习使用(二)

    前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...

  6. 【java开发系列】—— 嵌套类与内部类

    嵌套类与内部类在java中使用的很广泛,为了避免难以理解,这里用了几个小例子,说明它的用法. 嵌套类与内部类的结构如下图 静态嵌套类 静态嵌套类,是一种在类之外声明的嵌套类,由于是静态的,所以不经过初 ...

  7. 716. Max Stack (follow up questions for min stack)

    Design a max stack that supports push, pop, top, peekMax and popMax. push(x) -- Push element x onto ...

  8. *Amazon problem: 234. Palindrome Linked List (reverse the linked list with n time)

    Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false ...

  9. LA 4731 蜂窝网络

    题目链接:https://vjudge.net/problem/UVALive-4731 题意: n 个 数,分成 w 组,求整个区间的数学期望的最小值: 一个区间的数学期望公式给出:一个区间的和 * ...

  10. 一个简单示例看懂.Net 并行编程

    此示例尽量以最简洁的代码演示并行处理的功能,此示例代码中分别用单线程和多线程分别执行5次耗时1秒的操作.打印出执行过程及耗时. 以下为示例代码,.net framework要求4.0以上. using ...