java代码对数据库数据的CRUD操作

  • 前言
  • 一、CRUD、JDBC是什么?
  • 二、操作步骤
    • 1.连接mqsql数据库、加载数据库驱动
    • 2.对数据库中的表进行增、删、改、查
  • 总结

前言

对于刚刚学习完JDBC、CRUD之后的我来说,感觉这两个张的好像啊,觉得这两个说的是同样的事情,经过百度对比之后,才发现这两个根本就不是我想的那样,根本就不像啊!!!!哭了哭了。但是这两个用在一起却可以在控制台上实现对数据库表的增、删、改、查操作。


提示:以下是本篇文章正文内容,下面案例可供参考

一、CRUD、JDBC是什么?

CRUD是指在对数据库处理时的增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。crud主要被用在描述软件系统中数据库或者持久层的基本操作功能。
JDBC
:Java数据库连接,提供了诸如查询和更新数据库中数据的方法,是使用JAVA程序操作数据库的工具。
以下就是基于JDBC的CRUD操作

二、操作步骤

1.连接mqsql数据库、加载数据库驱动

代码如下(示例):

public class BaseDao {//数据库的连接字符串private static String url = "jdbc:mysql://localhost:3308/db_ishop?serverTimezone= Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false\r\n" ;//数据用的用户名private static String user="root";//数据库密码private static String password="123456";//创建驱动程序类与数据库建立连接protected Connection conn;public Connection getConnection() {//创建数据库连接对象if(conn != null) {return conn;}//加载数据库驱动try {//加载驱动Class.forName("com.mysql.cj.jdbc.Driver");//于数据库建立连接,(用DriverManager来登记)conn = DriverManager.getConnection(url, user, password);} catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} return conn;}

测试连接是否建立:

public static void main(String[] args) throws SQLException {BaseDao bd = new BaseDao();Connection conn = bd.getConnection();//做一个查询操作String sql = "select * from t_user";//statementPreparedStatement ps = conn.prepareStatement(sql);ResultSet rs = ps.executeQuery();while(rs.next()) {System.out.println(rs.getInt("userid") + "\t");System.out.println(rs.getString("username") + "\t");System.out.println(rs.getDouble("money")+"\t");System.out.println(rs.getInt("age")+ "\t");System.out.println();}}

2.对数据库中的表进行增、删、改、查

因为所有的表的操作都差不多,所以以下只对自己建的商户的表进行操作,在操作之前,要先根据数据库中的表创建一个实体类,代码如下:

实体类:

public class Bussiness {private String id;private String buss_name;private float money;private Timestamp createTime;private String state;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getBuss_name() {return buss_name;}public void setBuss_name(String buss_name) {this.buss_name = buss_name;}public float getMoney() {return money;}public void setMoney(float money) {this.money = money;}public Timestamp getCreateTime() {return createTime;}public void setCreateTime(Timestamp datetime) {this.createTime = datetime;}public String getState() {return state;}public void setState(String state) {this.state = state;}}

接下来,就可以在持久层对表进行操作了(代码如下)
增:

// 添加商户public int createBussiness(Bussiness bussiness) {// 定义sql语句String sql = "insert into t_bussiness(id,buss_name,money,createtime,state) values(?,?,?,?,?)";// 获取数据库连接对象Connection conn = super.getConnection();int result = 0;PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setString(1, bussiness.getId());ps.setString(2, bussiness.getBuss_name());ps.setFloat(3, bussiness.getMoney());ps.setTimestamp(4, bussiness.getCreateTime());ps.setString(5, bussiness.getState());result = ps.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {super.closeConnection(null, ps, conn);}return result;}

改:

// 更新商户public int updateBussiness(Bussiness bussiness) {// 定义sql语句String sql = "update t_bussiness set buss_name=?,money=?,createtime=?,state=? where id=?";// 获取数据库连接对象Connection conn = super.getConnection();int result = 0;PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setString(1, bussiness.getBuss_name());ps.setFloat(2, bussiness.getMoney());ps.setTimestamp(3, bussiness.getCreateTime());ps.setString(4, bussiness.getState());ps.setString(5, bussiness.getId());result = ps.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {super.closeConnection(null, ps, conn);}return result;}

删:

// 删除商户public int removeBussiness(Bussiness bussiness) {// 定义sql语句String sql = "delete from t_bussiness where id=?";// 获取数据库连接对象Connection conn = super.getConnection();int result = 0;PreparedStatement ps = null;try {ps = conn.prepareStatement(sql);ps.setString(1, bussiness.getId());result = ps.executeUpdate();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {super.closeConnection(null, ps, conn);}return result;}

查:

// 查询所有商户public List<Bussiness> getBussinessList() {// 定义sql语句String sql = "select * from t_bussiness";// 获取数据库连接对象Connection conn = super.getConnection();ResultSet rs;int result = 0;PreparedStatement ps = null;List<Bussiness> list = new ArrayList<Bussiness>();try {ps = conn.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {Bussiness bs = new Bussiness();bs.setId(rs.getString("id"));bs.setBuss_name(rs.getString("buss_name"));bs.setMoney(rs.getFloat("money"));bs.setCreateTime(rs.getTimestamp("createtime"));bs.setState(rs.getString("state"));list.add(bs);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {super.closeConnection(null, ps, conn);}return list;}

测试(只测试insert):

// 添加商户public static void createUI() throws ParseException {Scanner sc = new Scanner(System.in);System.out.println("输入商户id");String id = sc.nextLine();System.out.println("输入商户名称");String name = sc.nextLine();System.out.println("输入商户资产");float money = sc.nextFloat();sc.nextLine();System.out.println("输入注册时间");String time = sc.nextLine();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date date = sdf.parse(time);Timestamp timestamp = new Timestamp(date.getTime());System.out.println("输入商户状态");String state = sc.nextLine();Bussiness gt = new Bussiness();gt.setId(id);gt.setBuss_name(name);gt.setMoney(money);gt.setCreateTime(timestamp);gt.setState(state);BussinessDao gs = new BussinessDao();int result = gs.createBussiness(gt);if (result > 0) {System.out.println("添加成功");} else {System.out.println("添加失败");}}
public static void main(String[] args) throws ParseException {createUI();}

总结

这里对文章进行总结:
1.在用java代码对数据库进行操作之前,一定要进行数据库的的连接,和加载驱动,本文为了简化代码,单独创建了一个类用于数据库的连接和加载数据库的驱动,之后持久层在操作时可直接继承该类
2.一定要使用sql语句,如果要对全表插入,表后字段名可省略

java代码对数据库数据的CRUD操作相关推荐

  1. java代码转置sql数据_SQL Server中的数据科学:数据分析和转换–使用SQL透视和转置

    java代码转置sql数据 In data science, understanding and preparing data is critical, such as the use of the ...

  2. java控制台输出图书馆管理系统(只用java代码不用数据库和GUI等)

    java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂) 在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到 ...

  3. MySQL学习笔记03【数据库表的CRUD操作、数据库表中记录的基本操作、客户端图形化界面工具SQLyog】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  4. 用java把excel数据导入oracle日期转换,Java代码兑现excel数据导入到Oracle

    Java代码实现excel数据导入到Oracle 1.首先需要两个jar包jxl.jar,ojdbc.jar(注意版本,版本不合适会报版本错误) 2.代码: import java.io.File; ...

  5. 数据库表的CRUD操作

    数据库表的CRUD操作 1 DDL_操作表_查询 R(Retrieve):查询 查询某个数据库中所有的表名称 show tables; 如图所示: 查询表结构 desc 表名; 如图所示: 2 DDL ...

  6. Java代码读取MySQL数据,遇到‘0000-00-00’报错Value ‘0000-00-00‘ can not be represented as java.sql.Date

    报错 再使用Java代码读取MySQL数据的时候,读取date格式的数据,然后使用DateTimeFormatter格式化的时候突然在控制台发现了报错,Value '0000-00-00' can n ...

  7. Java代码导出数据库百万数据生成sql脚本

    Java代码查询数据生成update更新sql 一.查询数据库数据 /*** 导入查询数据的接口**/@Autowiredprivate DataMapper dataMapper;/*** 编写单元 ...

  8. java如何向数据库中插入数据_如何控制Java代码向数据库中插入数据

    慕哥6287543 Java程序向数据库中插入数据,代码如下:123456789101112131415161718192021222324252627282930313233343536373839 ...

  9. Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作

    正如前面一篇文章的介绍,当使用Servlet提交表单和JSP数据库查询时,总是相互交叉着的处理,要么在JSP中通过<%...%>内嵌Java代码操作数据库,要么 JSP中通过Post方法提 ...

最新文章

  1. html中item属性,项目id(属性) | itemid (attribute)
  2. 人性经不起金钱的考验,何况是黄金 --- 我看电影《黄金兄弟》
  3. jquery一些基本函数
  4. Remoting-1
  5. 电子工程师必上的十大专业网站
  6. C语言 typedef - C语言零基础入门教程
  7. 使用数据模板自定义数据显示
  8. 2015最新Android学习线路图
  9. 327.区间和的个数
  10. keycloak授权流程详解
  11. 免备案去掉端口号访问网站
  12. 基于ZigBee技术的智能家居系统实施方案
  13. 基于蜜蜂算法的函数寻优及TSP搜索算法
  14. 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程方法总结
  15. TP5.1导入Excel表格,支持自动筛选字段,支持验证字段
  16. 京东商城源码_选择源码的经验方法,你get了吗!
  17. 压力测试报告软件,系统压力测试报告.doc
  18. 【2020年牛客暑假第八场】E题 Enigmatic Partition
  19. 业务巡检-系统巡检该怎么做
  20. evplayer2可以多设备登录吗_EVPlayer2最新版下载|EVPlayer2电脑版下载_v4.1.9_9号软件下载...

热门文章

  1. 算法学习 - 快速排序
  2. Vue2.6+VueCli4.3+CubeUI 完成小D课堂移动端
  3. 如何在QNX系统中挂载U盘
  4. [附源码]SSM计算机毕业设计农村留守儿童帮扶系统JAVA
  5. 【闲聊杂谈】深入剖析Java8新特性
  6. 智能机器人与智能系统(大连理工大学庄严教授)——5.仿生机器人
  7. 花粉俱乐部服务器维护,花粉俱乐部打不开是什么原因?花粉俱乐部维护要多久?[多图]...
  8. 天梯赛-练习集L1-006 连续因子 (20分)【orz小辣鸡第一次写题解
  9. 关于我的辣鸡小说(闲扯)
  10. multsim14 计时类应用设计--时钟、计时器、倒计时