java mysql dbhelper_java操作数据库:增删改查

不多bb了直接上。

工具:myeclipse 2016,mysql 5.7

目的:java操作数据库增删改查商品信息

test数据库的goods表

46b1c51b5a8119fbd8563a265df9b908.png

gid主键,自增

169e6656bf5f7129dc6ae97664e6a353.png

1、实体类Goods:封装数据库数据(与数据库表中各字段相匹配的类)

// 实体类

public class Goods {

private int gid;

private String gname;

private double gprice;

private String gdate;

//生成get、set方法

public int getGid() {

return gid;

}

public void setGid(int gid) {

this.gid = gid;

}

public String getGname() {

return gname;

}

public void setGname(String gname) {

this.gname = gname;

}

public double getGprice() {

return gprice;

}

public void setGprice(double gprice) {

this.gprice = gprice;

}

public String getGdate() {

return gdate;

}

public void setGdate(String gdate) {

this.gdate = gdate;

}

//生成构造方法

public Goods(int gid, String gname, double gprice, String gdate) {

super();

this.gid = gid;

this.gname = gname;

this.gprice = gprice;

this.gdate = gdate;

}

//生成无参构造方法

public Goods() {

super();

}

}

2、实现类GoodsDao(不带DBHelper):操作数据库实现增删改查

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Scanner;

public class GoodsDao {

public static void main(String[] args) {

GoodsDao dao = new GoodsDao();

// dao.add();

// dao.del();

// dao.upd();

Scanner input = new Scanner(System.in);

System.out.println("请输入商品名称:");

String name = input.next();

System.out.println("请输入商品价格:");

double price = input.nextDouble();

dao.newAdd(name, price);

// System.out.println("请输入最低价格:");

// double price = input.nextDouble();

//

// dao.search(price);

//

System.out.println("已经成功完成操作!");

}

// 增数据

public void add(){

try{

// 1.通过反射,加载驱动类到jvm

Class.forName("com.mysql.jdbc.Driver");

// 2.获取数据库连接对象

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true","root","");

// 3.创建数据库操作对象

Statement stmt = conn.createStatement();

// 4.操作数据库

stmt.execute("insert into goods(gname,gprice,gdate) values('ggg','2.33',now())");

//5.关闭各个资源

stmt.close();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

//删数据

public void del(){

try{

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true","root","");

Statement stmt = conn.createStatement();

stmt.execute("delete from goods where gid=1");

stmt.close();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

//改数据

public void upd(){

try{

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true","root","");

Statement stmt = conn.createStatement();

stmt.execute("update goods set gname='ggg' where gid=1 ");

stmt.close();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

//查数据

public void search(double price){

try{

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true","root","");

Statement stmt = conn.createStatement();

// 结果集对象

ResultSet rs = stmt.executeQuery("select * from goods where gprice>"+price);

while(rs.next()){

System.out.println(rs.getString(1)+"#"+rs.getString("gname")+"#"+rs.getDouble("gprice")+"#"+rs.getString("gdate"));

}

rs.close();

stmt.close();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

//用拼字符串的方法增数据

public void newAdd(String gname, double gprice){

try{

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true","root","");

// Statement stmt = conn.createStatement();

//

// stmt.execute("insert into goods(gname, gprice,gdate) values('"+gname+"','"+gprice+"',now())");

//

// stmt.close();

//拼字符串更简单

String sql = "insert into goods(gname, gprice, gdate) values(?,?,now())";

PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, gname);

pstmt.setDouble(2, gprice);

pstmt.execute();

conn.close();

} catch(Exception e){

e.printStackTrace();

}

}

}

3、DBHelper类:解决上述代码操作数据库的重复工作

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.Statement;

/**

* 获取数据库操作的连接对象

* 关闭数据库操作的各种资源

* @author 晏先政

*

*/

public class DBHelper {

private static final String className = "com.mysql.jdbc.Driver";

private static final String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=true";

private static final String uname = "root";

private static final String upass = "";

/**

* 获取数据库连接对象的方法

*/

public static Connection getConn(){

Connection conn = null;

try{

Class.forName(className);

conn = DriverManager.getConnection(url,uname, upass);

} catch(Exception e){

e.printStackTrace();

}

return conn;

}

/**

* 关闭数据库连接对象

*/

public static void closeConn(Connection conn){

try{

if(conn!=null){

conn.close();

}

} catch(Exception e){

e.printStackTrace();

}

}

/**

* 关闭数据库操作对象

*/

public static void closeStmt(Statement stmt){

try{

if(stmt!=null){

stmt.close();

}

} catch(Exception e){

e.printStackTrace();

}

}

/**

* 关闭数据库操作对象

*/

public static void closePstmt(PreparedStatement pstmt){

try{

if(pstmt!=null){

pstmt.close();

}

} catch(Exception e){

e.printStackTrace();

}

}

/**

* 关闭数据库操作对象

*/

public static void closeRs(ResultSet rs){

try{

if(rs!=null){

rs.close();

}

} catch(Exception e){

e.printStackTrace();

}

}

}

4、实现类NewDao(带DBHelper):操作数据库实现增删改查

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class NewDao {

public static void main(String[] args) {

NewDao nd = new NewDao();

nd.show();

// Scanner input = new Scanner(System.in);

//改数据

// System.out.println("请输入要修改的商品编号:");

// int gid = input.nextInt();

// System.out.println("请输入要修改的商品名称:");

// String gname = input.next();

// System.out.println("请输入要修改的商品价格:");

// double gprice = input.nextDouble();

//

// nd.upd(gid, gname, gprice);

//查数据

// System.out.println("请输入最低价格:");

// double mprice = input.nextDouble();

// System.out.println("请输入最高价格:");

// double xprice = input.nextDouble();

//

// nd.search(mprice, xprice);

}

private Connection conn = null;

private PreparedStatement pstmt = null;

private ResultSet rs = null;

//查数据

public void search(double minprice, double maxprice){

try{

conn = DBHelper.getConn();

String sql = "select * from goods where gprice>=? and gprice<=?";

// 预编译的对象

pstmt = conn.prepareStatement(sql);

pstmt.setDouble(1, minprice);

pstmt.setDouble(2, maxprice);

rs = pstmt.executeQuery();

while(rs.next()){

System.out.println(rs.getString("gid")+"#"+rs.getString("gname")+"#"+rs.getString("gprice"));

}

} catch(Exception e){

e.printStackTrace();

} finally{

DBHelper.closeRs(rs);

DBHelper.closePstmt(pstmt);

DBHelper.closeConn(conn);

}

}

//改数据

public void upd(int gid , String gname, double gprice){

try{

conn = DBHelper.getConn();

String sql = "update goods set gname=?, gprice=? where gid=?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, gname);

pstmt.setDouble(2, gprice);

pstmt.setInt(3, gid);

pstmt.execute();

} catch(Exception e){

e.printStackTrace();

} finally{

DBHelper.closePstmt(pstmt);

DBHelper.closeConn(conn);

}

}

//用集合展示数据

public List getAllGoods(){

List list = new ArrayList();

try{

conn = DBHelper.getConn();

String sql = "select * from goods";

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

while(rs.next()){

Goods goods = new Goods(rs.getInt("gid"),rs.getString("gname"),rs.getDouble("gprice"),rs.getString("gdate"));

list.add(goods);

}

} catch(Exception e){

e.printStackTrace();

} finally{

DBHelper.closeRs(rs);

DBHelper.closePstmt(pstmt);

DBHelper.closeConn(conn);

}

return list;

}

public void show(){

List list = getAllGoods();

for(int i=0;i

System.out.println(list.get(i).getGid()+"#"+list.get(i).getGname()+"#"+list.get(i).getGprice());

}

}

}

java操作数据库增删改查的小工具1--TxQueryRunner

在java程序中,一般使用jdbc连接数据库,比较麻烦,在看传智教程时学了一个工具类,用于简化与数据库之间的操作步骤,就是TxQueryRunner,他是QueryRunner的子类,用起来和他是一样 ...

java操作数据库增删改查的小工具2--TxQueryRunner

当涉及到多表查询时,如数据库中有两张表分别为t_person和t_address,表结构如下: 其中t_person的外键为t-address的主键aid, 新建两个javaBean类,Person ...

2&period; MongoDB基本操作 —— 用Mongo&period;exe操作数据库增删改查

一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

MongoDB(六)java操作mongodb增删改查

java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

Django-Model操作数据库&lpar;增删改查、连表结构)

一.数据库操作 1.创建model表         基本结构 1 2 3 4 5 6 from django.db import models     class userinfo(models.M ...

phpcms 操作数据库 增删改查

数据库的其他类继承的都是libs/class/model.class.php 这里面有写好的操作数据库的常用方法 1.增 insert($data, $return_insert_id = false ...

MongoDB学习day04--NodeJs操作数据库增删改查

一.在Nodejs中使用Mongodb Nodejs需要引入的包 npm install mongodb --save -dev 或者使用镜像 cnpm install mongodb --save ...

Java针对数据库增删改查代码

package com.bank.abc; import java.beans.PropertyVetoException; import java.sql.Connection; import ja ...

JavaWeb学习记录(七)——MVC操作数据库增删改查与分页功能

一.分页工具类 package blank.util;import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; ...

6&period; MongoDB——Java操作(增删改查)

转自:https://blog.csdn.net/kai402458953/article/details/79626148 import java.net.UnknownHostException; ...

随机推荐

android-解决 Android N 上 报错:android&period;os&period;FileUriExposedException

解决 Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appN ...

JVM相关参数配置和问题诊断&lt&semi;转&gt&semi;

原文连接:http://blog.csdn.net/chjttony/article/details/6240457 1.Websphere JVM相关问题诊断: 由JVM引起的Websphere问题 ...

linux&lowbar;shell&lowbar;拆分文件&lowbar;多进程脚本

[需求场景]:一个10000w行的文件处理  ,多进程处理  比如启动100个进程同时处理. [方法]:拆分文件(split) ,制作shell脚本  执行后台进程 [demo]: 假设处理程序为   ...

Mysql limit性能优化(小offset与大offset)

MySQL的优化是非常重要的.其他最常用也最需要优化的就是limit.MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降.   同样是取10条数据 selec ...

topcoder srm 505 div1

problem1 link 设行数为$n$列数为$m$ 对于任意的两行$r_{1},r_{2}$以及任意的两列$c_{1},c_{2}$所确定的四个格子,只要知道其中的三个就能确定第四个,且必须要三个 ...

Here’s just a fraction of what you can do with linear algebra

Here’s just a fraction of what you can do with linear algebra The next time someone wonders what the ...

Linux高频命令精讲(三)

[教程主题]:2.Linux高频命令精讲 [2.1]Linux的运行方式 图形运行方式 - 本地使用KDE/Gnome集成环境 - 运行X Server远程使用图形环境 命令行(字符运行)方式 - 本 ...

&lbrack;转&rsqb;Elasticsearch Java API总汇

http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

gp更新来的太快

意外总是会发生 添加一个判断function的分支,过滤掉function,其实也考虑再进一步去分析它的作用,稍后再议. 更新一下 var gnp = { get: function(url) { r ...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值