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. .NET开源工作流RoadFlow-表单设计-日期时间选择

    在表单中添加一个日期时间选择框: 选择范围:指定一个日期选择范围. 时间:是否允许选择时间.

  2. 解决Tensorflow源码安装的之后TensorBoard 无法使用的问题

    作者  cnblog 修雨轩陈 我是按照 Tensorflow 下 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3 ...

  3. C#多线程和异步(二)——Task和async/await详解(转载)

    一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...

  4. C# 生成随机数重复问题

    今天做测试,在一个循环里面给实体属性赋随机值,然后生成一个实体集合,突然发现生成的实体集合中的所有实体相应属性值都是一样的,调试时却又发现值并不是重复的,度娘以后发现了问题——Random类是一个产生 ...

  5. Python 调度算法 死锁 静动态链接(七)

    1 select poll epoll的区别 基本上select有3个缺点: 连接数受限 查找配对速度慢 数据由内核拷贝到用户态 poll改善了第一个缺点 epoll改了三个缺点. (1)select ...

  6. May 24th 2017 Week 21th Wednesday

    Always remember that you are absolutely unique. 永远记住,你是独一无二的. I am unique, in the way that all I do ...

  7. OC 成员变量 ( -> 使用 )

    @interface Student : NSObject { // @public // @protected // @private // 默认的作用域是@protected int age; @ ...

  8. django使用orm方式查询mogodb的某段时间的值

    在使用djgango时,需要在数据表中过滤出在某段时间的内容,网上很多或者说Django的orm是针对mysql,且字段类型是datetime或者其他时间类型,使用__rang这个函数就可以查询某个时 ...

  9. 20165322 预备作业3 Linux安装及学习

    Linux安装及学习 安装部分 由于是第一次接触虚拟机知识,之前也没什么了解,我选择完全按照老师教程里的安装vbox虚拟机. 虚拟机安装的过程很顺利,不做详细讲解. 出现的问题 在启动我新建的虚拟电脑 ...

  10. BZOJ3680:吊打XXX(模拟退火)

    Description gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将 n个gty吊在n根绳子上,每根绳子穿过天台的一个 ...