教材是JDK8的,家里也可以正规的测试JDK8,

但公司电脑是JDK6的,所以代码要相应的变动一下下,以适应老的TRY语句。

Message.java

  1. package cc.openhome;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Message implements Serializable {
  6. private Long id;
  7. private String name;
  8. private String email;
  9. private String msg;
  10.  
  11. public Message() {}
  12. public Message(String name, String email, String msg) {
  13. this.name = name;
  14. this.email = email;
  15. this.msg = msg;
  16. }
  17.  
  18. public String getEmail(){
  19. return email;
  20. }
  21. public void setEmail(String email) {
  22. this.email = email;
  23. }
  24.  
  25. public Long getId() {
  26. return id;
  27. }
  28. public void setId(Long id) {
  29. this.id = id;
  30. }
  31.  
  32. public String getMsg() {
  33. return msg;
  34. }
  35. public void setMsg(String msg) {
  36. this.msg = msg;
  37. }
  38.  
  39. public String getName() {
  40. return name;
  41. }
  42. public void setName(String name) {
  43. this.name = name;
  44. }
  45. }

MessageDAO.java

  1. package cc.openhome;
  2.  
  3. import java.sql.*;
  4. import java.util.*;
  5.  
  6. public class MessageDAO {
  7. private String url;
  8. private String user;
  9. private String passwd;
  10.  
  11. public MessageDAO(String url, String user, String passwd) {
  12. this.url = url;
  13. this.user = user;
  14. this.passwd = passwd;
  15. }
  16.  
  17. public void add(Message message) {
  18. try {
  19. Connection conn = DriverManager.getConnection(url, user, passwd);
  20. Statement statement = conn.createStatement();
  21. statement.executeUpdate(
  22. "INSERT INTO t_message(name, email, msg) VALUES('"
  23. + message.getName() + "', '"
  24. + message.getEmail() + "', '"
  25. + message.getMsg() + "')");
  26. } catch (SQLException e) {
  27. throw new RuntimeException(e);
  28. }
  29. }
  30.  
  31. public List<Message> get() {
  32. List<Message> messages = null;
  33. try {
  34. Connection conn = DriverManager.getConnection(url, user, passwd);
  35. Statement statement = conn.createStatement();
  36. ResultSet result = statement.executeQuery(
  37. "SELECT * FROM t_message");
  38. messages = new ArrayList<Message>();
  39. while(result.next()) {
  40. Message message = new Message();
  41. message.setId(result.getLong(1));
  42. message.setName(result.getString(2));
  43. message.setEmail(result.getString(3));
  44. message.setMsg(result.getString(4));
  45. messages.add(message);
  46. }
  47. } catch (SQLException e) {
  48. throw new RuntimeException(e);
  49. }
  50. return messages;
  51. }
  52. }

MessageDAODemo.java

  1. package cc.openhome;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class MessageDAODemo {
  6. public static void main(String args[]) throws Exception {
  7. Scanner scanner = new Scanner(System.in);
  8. MessageDAO dao = new MessageDAO(
  9. "jdbc:mysql://1.2.3.4:3306/demo?" +
  10. "useUnicode=true&characterEncoding=UTF8",
  11. "user", "pwd");
  12. while (true) {
  13. System.out.print("(1) Show Message (2) Add Message: ");
  14. switch(Integer.parseInt(scanner.nextLine())) {
  15. case 1:
  16. for (Message message : dao.get()) {
  17. System.out.printf("%d\t%s\t%s\t%s%n",
  18. message.getId(),
  19. message.getName(),
  20. message.getEmail(),
  21. message.getMsg());
  22. }
  23. break;
  24. case 2:
  25. System.out.print("Name: ");
  26. String name = scanner.nextLine();
  27. System.out.print("Email: ");
  28. String email = scanner.nextLine();
  29. System.out.print("Message: ");
  30. String msg = scanner.nextLine();
  31. dao.add(new Message(name, email, msg));
  32. }
  33. }
  34. }
  35. }

注意编译命令的先后顺序(何时带-d. 何时带-cp . 何时需要引用MYSQL的jdbc驱动和自己的类;)

JAVA数据库连接的另一种实现及简单的数据插入及显示的更多相关文章

  1. Java数据库连接池的几种配置方法(以MySQL数据库为例)

    Java数据库连接池的几种配置方法(以MySQL数据库为例) 一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1 ...

  2. JDBC(Java Data Base Connectivity,java数据库连接)

    JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言 ...

  3. JDBC:(java database Connection) java数据库连接。

    JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库. JDBC连接步骤: 1.先导入jar包,把jar放入到工程下并 ...

  4. Java数据库连接池

    转载过来的,最近在做一个小网站,准备使用这种方法.     Java jdbc数据库连接池总结! 1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及, ...

  5. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  6. Java数据库连接代码集合(转)

    Java数据库连接接口(JDBC)是Java里定义的一套用于数据库连接和操作的API的集合.有不同的数据库厂商提供这套接口的实现类,对于 Java程序员来说,程序员不需要关心数据库的底层的实现,统一的 ...

  7. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  8. Java数据库连接--JDBC调用存储过程,事务管理和高级应用

    相关链接:Jdbc调用存储过程 一.JDBC常用的API深入详解及存储过程的调用 1.存储过程的介绍 我们常用的操作数据库语言SQL语句在执行的时候要先进行编译,然后执行,而存储过程是在大型数据库系统 ...

  9. MySQL 和 JDBC(Java数据库连接)

    1.MySQL 1.1   MySQL简介 a)MySQL是一个开源免费的关系型数据库管理系统. b)默认用户:root c)默认端口号: 2.MySQL常用命令 2.1连接MySQL mysql   ...

随机推荐

  1. js返回16位随机数

    public string GetDataRandom()        {            string strData=DateTime.Now.ToString();            ...

  2. selenium3 + python - css定位

    一.css:属性定位 1.css可以通过元素的id.class.标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input id="kw" class ...

  3. JS中对象按属性排序(冒泡排序)

    在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据json中某一项进行数组的排序. 例如返回的数据结构大概是这样: { result:[ {id:,name:'中国银 ...

  4. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'admin' for key 'UK_dgxl7aijrr4hq8314exhw407s'

    严重: Servlet.service() for servlet [spring-mvc] in context with path [/learn] threw exception [Reques ...

  5. spring整合redis客户端及缓存接口设计

    一.写在前面 缓存作为系统性能优化的一大杀手锏,几乎在每个系统或多或少的用到缓存.有的使用本地内存作为缓存,有的使用本地硬盘作为缓存,有的使用缓存服务器.但是无论使用哪种缓存,接口中的方法都是差不多. ...

  6. Laravel5.1学习笔记9 系统架构1 请求生命周期 (待修)

    Request Lifecycle Introduction Lifecycle Overview Focus On Service Providers Introduction When using ...

  7. https 结合使用 对称加密和非对称加密

    (一)对称加密(Symmetric Cryptography) ---共享密钥加密 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥( ...

  8. android黑科技系列——应用市场省流量更新(增量升级)原理解析

    一.前言 最近在看热修复相关的框架,之前我们已经看过了阿里的Dexposed和AndFix这两个框架了,不了解的同学可以点击这里进行查看:Dexposed框架原理解析 和 AndFix热修复框架原理解 ...

  9. 算法之dfs篇

    dfs算法是深度搜索算法.从某一节点开始遍历直至到路径底部,如果不是所寻找的,则回溯到上个节点后,再遍历其他路径.不断重复这个过程.一般此过程消耗很大,需要一些优化才能保持算法的高效. hdu1010 ...

  10. DeltaFish 校园物资共享平台 第二次小组会议

    软工第二周小组会议 会议地点:三教讨论区 会议时间:9:00 ~ 10:00 与会人员:软工小组成员 请假人员:刘鼎乾 整理人:艾寅中 会议记录 一.小组分工 在经过一周的调研后,组长根据调研结果和对 ...