获取数据库连接后,可进行增删改查操作

  • 语句生成:

    Statement s = con.createStatement(sql); //生成语句

    PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql); //预准备,可以填充参数

    ps.setXXX(n,value); //可以通过set来填充参数值,位置,值

  • 参数查询:

    s.executeUpdate(); //执行非查询操作,增删改

    s.executeQuery(); //执行查询

Demo:

  1. public class JDBCDAO {
  2. public static int addJDBC(JDBCModel m) throws SQLException {
  3. Connection c = DBUtil.GetConnection();
  4. // current_time() mysql内置函数,当前时间
  5. String sql = "insert jdbc (id,name,createtime) "
  6. + "values(?,?,current_time())";
  7. PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql);
  8. ps.setLong(1, 0);// 主键自增
  9. ps.setString(2, m.name);
  10. int re = 0;
  11. try {
  12. // 此处若使用execute,会返回false,但插入成功
  13. // false代表第一个执行结果的返回值不是resultset
  14. re = ps.executeUpdate();
  15. System.out.println(re);
  16. } catch (SQLException e) {
  17. // TODO Auto-generated catch block
  18. e.printStackTrace();
  19. }
  20. return re;
  21. }
  22. public static int deleteJDBC(int i) throws SQLException {
  23. Connection c = DBUtil.GetConnection();
  24. String sql = "delete from jdbc where id=?";
  25. PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql);
  26. ps.setLong(1, i);
  27. int re = 0;
  28. try {
  29. // 此处若使用execute,会返回false,但插入成功
  30. // false代表第一个执行结果的返回值不是resultset
  31. re = ps.executeUpdate();
  32. System.out.println(re);
  33. } catch (SQLException e) {
  34. // TODO Auto-generated catch block
  35. e.printStackTrace();
  36. }
  37. return re;
  38. }
  39. public static int updateJDBC(JDBCModel m) throws SQLException {
  40. Connection c = DBUtil.GetConnection();
  41. String sql = "update jdbc set name=? where id=?";
  42. PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql);
  43. ps.setString(1, m.name);
  44. ps.setLong(2, m.id);
  45. int re = 0;
  46. try {
  47. re = ps.executeUpdate();
  48. System.out.println(re);
  49. } catch (SQLException e) {
  50. e.printStackTrace();
  51. }
  52. return re;
  53. }
  54. public static List<JDBCModel> queryJDBC() throws SQLException {
  55. List<JDBCModel> ml = new ArrayList<JDBCModel>();
  56. Connection c = DBUtil.GetConnection();
  57. String sql = "select * from jdbc ";
  58. PreparedStatement ps = (PreparedStatement) c.prepareStatement(sql);
  59. ResultSet re = null;
  60. try {
  61. re = ps.executeQuery();
  62. } catch (SQLException e) {
  63. e.printStackTrace();
  64. }
  65. if (re != null) {
  66. while (re.next()) {
  67. JDBCModel m = new JDBCModel();
  68. m.setId(re.getInt("id"));
  69. m.setName(re.getString("name"));
  70. m.setCreatetime(re.getDate("createtime"));
  71. ml.add(m);
  72. }
  73. }
  74. return ml;
  75. }
  76. }

JavaJDBC【三、增删改查】的更多相关文章

  1. 三分钟小课堂-----------------docker(三)增删改查命令

    主要为docker容器的增删改查命令 1  创建容器: docker run   -it   --name 别名  image_name   /bin/bash --name 别名 -d 后台 -t ...

  2. HBase命令(三) -- 增删改查

    新增 //语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp> //新增或 ...

  3. MongoDB --- 02. 基本操作,增删改查,数据类型,比较符,高级用法,pymongo

    一.基本操作 . mongod 启动服务端 2. mongo 启动客户端 3. show databses 查看本地磁盘的数据库 4. use 库名 切换到要使用的数据库 5. db 查看当前使用的数 ...

  4. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  5. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  6. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  7. SQL Server学习之路(三):“增删改查”之“增”

    0.目录 1.前言 2.通过SSMS添加数据 3.通过SQL语句添加数据 3.1 添加单条数据 3.2 添加多条数据 4.通过其他表导入数据 4.1 通过数据库中的其他表导入数据 4.2 通过exce ...

  8. Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查

    前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...

  9. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)

    python全栈开发中级班全程笔记 第三章:员工信息增删改查作业代码 作业要求: 员工增删改查表用代码实现一个简单的员工信息增删改查表需求: 1.支持模糊查询,(1.find name ,age fo ...

随机推荐

  1. 010-数据结构-树形结构-B树[B-树]

    一.概述 B 树就是常说的“B 减树(B- 树)”,又名平衡多路(即不止两个子树)查找树. 在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序.这种数据结构能够让查找数据.顺 ...

  2. Qt编写数据可视化大屏界面电子看板2-配色方案

    一.前言 做完整个数据可视化大屏界面电子看板系统后,为了提升点逼格,需要提供好几套默认的风格样式以供选择,这样用户可以选择自己喜欢的配色方案来作为整个系统的颜色方案,去看了下市面上大部分的大屏电子看板 ...

  3. JAVA 基础编程练习题10 【程序 10 自由落体】

    10 [程序 10 自由落体] 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第 10 次落地时, 共经过多少米?第 10 次反弹多高? package cska ...

  4. window server2012R2激活

    slmgr /ipk D2N9P-3P6X9-2R39C-7RTCD-MDVJXslmgr /skms kms.03k.orgslmgr /ato

  5. Python 网络通信协议(互联网协议)

    一. 操作系统基础 操作系统(Operatin System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在 ...

  6. 【AMAD】django-social-auth -- 让django使用社交网络oauth鉴权变得极为轻松!

    简介 个人评分 简介 django-social-auth1集成的Oauth API包括: Google OpenID Google Oauth Google Oauth2 Yahoo OpenID ...

  7. 在vue中让某个组件重新渲染的笨方法

    在vue中,推崇的是数据驱动也就是数据更新进而使组件得以重新渲染:在某些情况下,我们想要在数据不改变的情况下,重新渲染组件:我遇到的一个情况是:同一个页面,两个tab页分别为tab1和tab2,公用了 ...

  8. java8函数式接口(Functional Interface)

    介绍 函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口. 函数式接口可以被隐式转换为 lambda 表达式(箭头函数). 函数式接口代 ...

  9. nginx 增加认证

    1.检查工具是否安装,如果未安装则使用yum安装 #htpasswd 有以上输出表示已经安装,如果没有按装,使用如下命令安装: #yum -y install httpd-tools 2.htpass ...

  10. 2019icpc银川网络赛

    外面吵得风生水起,我校平静地在打比赛,丝毫不知道这次比赛的题目就是把2018银川邀请赛的题照搬过来了QAQ,主办方真牛逼.. A Maximum(思维) 题意:维护一个栈,支持入栈和出栈操作,并计算每 ...