文章目录

  • 摘要
  • 1. JDBC连接数据库
  • 2. 菜单输出以及查加改删

摘要

今天是来到宁波实习的第二天,主要工作是:使用JDBC连接MySQL数据库、编写控制台程序输出菜单并实现简单的增加、删除、更改、查询的数据库操作,以下是我对每个步骤的详细记录以及每个工作阶段的体会。

1. JDBC连接数据库

  1. 首先新建java工程后,下载要用到的jar包,并导入到工程;
  2. 然后进行数据库连接操作
//TestUser.java
package com.zhongruan;import java.sql.*;public class TestUser {final static String mysqlUrl = "jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8" +"&user=root&password=123";public static void main(String[] args) {Connection conn = null;PreparedStatement pstm = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(mysqlUrl);System.out.println("MySQL connected successfully " + conn);String sql = "SELECT * FROM tb_user;";pstm = conn.prepareStatement(sql);rs = pstm.executeQuery();System.out.println("id\tusername\tpassword");while (rs.next()) {int id = rs.getInt(1);String username = rs.getString(2);String password = rs.getString(3);System.out.println(id + "\t" + username + "\t" + password + "\t");}} catch (Exception e) {} finally {try {if (rs != null){rs.close();}else if (pstm != null) {pstm.close();} else if (conn != null) {conn.close();}} catch (Exception ex) {}}}
}
  1. 然后运行,得出结果

这里由于每次操作都要使用到数据库连接、关闭语句,如果进行其他类型操作也会使用相似语句,因此可以进行代码重用进行改进。

  1. 对代码进行重用改造
/*DBUtil.java*进行操作封装
*/package com.zhongruan;
import java.sql.*;public class DBUtil {private static String driver = "com.mysql.jdbc.Driver";private static String url = "jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8";private static String user = "root";private static String password = "123";static {try {Class.forName(driver);} catch (Exception e) {e.printStackTrace();}}public static Connection getConnection() throws SQLException{Connection conn = null;conn = DriverManager.getConnection(url, user, password);System.out.println("MySQL connected successfully " + conn);return conn;}public static void closeConnection(ResultSet rs, PreparedStatement pstm, Connection conn)throws Exception {if (rs != null) {rs.close();} else if (pstm != null) {pstm.close();} else if (conn != null) {conn.close();}}public static void main(String[] args) {try {getConnection();} catch (Exception e) {e.printStackTrace();}}
}
/*User.java*Entity class*实体类 - 映射数据库字段*/
package com.zhongruan;public class User {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public User(int id, String username, String password) {this.id = id;this.username = username;this.password = password;}public User(String username, String password) {this.username = username;this.password = password;}public User() {}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}
/*TestUser2.java*代码重写后调用函数*/
package com.zhongruan;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class TestUser2 {Connection conn = null;PreparedStatement pstm = null;ResultSet rs = null;public void addUser(User user) {try {conn = DBUtil.getConnection();pstm = conn.prepareStatement("INSERT INTO tb_user(username,password) VALUES (?,?);");pstm.setString(1, user.getUsername());pstm.setString(2, user.getPassword());int executeResult = pstm.executeUpdate();if (executeResult > 0) {System.out.println("Add user successfully!");} else {System.out.println("Add user unsuccessfully!");}} catch (Exception e) {e.printStackTrace();} finally {try {DBUtil.closeConnection(rs, pstm, conn);} catch (Exception e) {e.printStackTrace();}}}public static void main(String[] args) {TestUser2 testUser2 = new TestUser2();User user = new User("张三", "123456");testUser2.addUser(user);}
}
  1. 很明显,代码重用之后,代码的逻辑结构更容易看懂,因此推荐第二种写法。

2. 菜单输出以及查加改删

  1. 代码过多,不易粘贴,直接看结果;
  2. 运行结果打印菜单如下:

  1. 查加改删操作均能进行,因此今日任务完成,然后进行以后内容学习。

——2019.07.11 浙江.宁波

Will Also

实习日志 - 第二天相关推荐

  1. 杰普实习日志 第一天学习内容

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  2. 实习日志_【人医札记】护理实习日志

    实习日志:新起点 01 章莹 (河南鹤壁职业技术学院) 盛夏七月,开始了我的实习生活-- 有幸可以来到兰溪市人民医院,经历了几十年风雨历程,一个花甲的峥嵘岁月,几十年璀璨硕果的积累,也让我对实习充满了 ...

  3. 实习日志_实习律师实习日志第十八篇(连载30篇)

    提供实习律师实习日记相关的文章资讯,希望我的分享能让您感到满意! 这个月接触最多的是人身损害赔偿的一些案件,交通事故.工伤的一些案件最多.起初,以为这些案件就是走走法律流程便可了事,最简单不过,可当完 ...

  4. 前端开发实习生-实习日志

    文章目录 前言 一.工作内容和要求 二.工作情况记录 三.个人体会或收获 总结 前言 前端开发实习生的日常工作实习日志 一.工作内容和要求 初进公司,熟悉环境,了解大概流程,参加了公司的新员工培训大会 ...

  5. 此生不戒多巴胺-冲刺日志(第二天)

    此生不戒多巴胺-冲刺日志(第二天) 这个作业属于哪个课程 fzusdn 这个作业要求在哪里 团队作业-alpha冲刺 团队名称 此生不戒多巴胺 这个作业的目标 第二天冲刺日志 1.冲刺进度 成员 完成 ...

  6. 【实习日志】The last Day总结篇

    实习总结 2020-6-15 → 2020-07-1 hr: 你实习到现在多久了? I: 6-15开始至今,期间有一个周六日和三天端午假期,包含今天累计到您公司:11天 hr: 下午工资转你卡,有机会 ...

  7. 数字测图原理与方法的实习日志_数字测图原理与方法实习与习题.doc

    数字测图原理与方法实习与习题.doc 习题第一章测量的基本知识一.问答题1.什么是水准面它有什么特性2.什么是大地水准面它有什么特性它在测量工作中起什么作用3.测量工作中为什么选取与大地体相近的旋转椭 ...

  8. android实习日志_Android实习的个人总结

    [www.hywsbj.com--热门文章] 导语:日子过得飞快,如同马路上疾驶过的车轮子般,转瞬即逝.眨眼间不看就半月去了,谁曾想这原本是慢得如同蜗牛般在爬的暑假生活呢.以下是小编整理的关于Andr ...

  9. 实习日志Day 10

    总结 通过为期10天的校内实习,我掌握了如何开发一个微信小程序,并且自己也完成了一两个小程序的开发.第一天,我学会了如何运用sublime去编写一个html文件和css文件.对sublime软件的基本 ...

最新文章

  1. 基于SSM+Layui+Bootstrap实现学校教师技能大赛评分系统
  2. Ubuntu 安装 搜狗输入法
  3. window环境apache服务器在本地添加域名
  4. MySQL limit 优化,百万至千万级快速分页:复合索引
  5. hdu 4293 Groups DP
  6. linux 进程通信机制,linux的进程通信机制小结
  7. uniapp图标_uniapp扩展自定义uniIcon组件图标
  8. python flag 参数_flag_flagpython_js开关flag - 云+社区 - 腾讯云
  9. 请求发送者与接收者解耦——命令模式(五)
  10. Spss-kmeans聚类分析操作
  11. 计算机开机只显示桌面不显示图标,电脑开机后只有桌面背景不显示图标怎么办...
  12. 计算机表格两行互换步骤,表格excel数据互换位置-EXcel表格中,怎么把两行互换...
  13. movie计算机英语作文,my favorite movie英语作文100字
  14. “新基建”投资背景下 安防企业如何把握发展机遇?
  15. Win10找不到便签怎么办 Win10找不到便签解决方法
  16. fiddler证书生成ca证书命令及抓包配置
  17. 渗透测试之信息收集 -tryhackme-Content Discovery
  18. Mybatis源码分析--关联表查询及延迟加载原理(二)
  19. 基于神经网络的文本分类算法
  20. 硬件科普系列之显示篇——LCD与OLED知多少

热门文章

  1. 手游代理加盟费贵不贵?
  2. 基于AIE的贵阳市两湖一库水体区域识别
  3. OSChina 周六乱弹 ——女装红薯
  4. Git Pull Failed: CONFLICT (content): Merge conflict in camus-aggregator/camus-admin-web/src/main/web
  5. kpw4换壁纸_kindle 篇五:kindle paperwhite4使用30天总结
  6. Python制作小游戏(一)
  7. 关于一体机外卖单不打印外卖单号FAQ(适用正餐6.0.09,轻餐4.0.6.1,轻餐4.0.6.2)
  8. 《算法设计编程实验:大学程序设计课程与竞赛训练教材》——2.4 相关题库...
  9. 黎曼猜想(二)全体自然数之和等于-1/12和解析延拓
  10. 鸟叔的linux私房菜+大数据(Hardoop/Spark/Hive) 电子书分享