java jdbc连接mysql数据库实现增删改查操作

jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate、Mybatis。

但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查的。

回归正题,先来看看我们的开发环境:

Java语言、Eclipse开发工具、Mysql数据库、Navicat数据库可视化工具。

开发环境的安装搭建及使用请自己查阅资料(很简单的),这里不详细阐述。

第一步,创建数据库,利用Navicat数据库可视化工具随便建立一个数据库,在库中建立一张表,表里给几个字段(记得给个id字段,唯一主键,自增序列),再随便给上两条数据便好,用来测试功能,如图:

第二步,打通数据库(这个例子希望大家自己动手敲敲,耽误不了多少时间,熟悉一下jdbc如何和数据库打交道,故以图示之),如图:

第三步,改造DBUtil类,方便在dao层获得数据库的连接,代码如下:

 package com.czgo.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil
{
  private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc";
  private static final String UNAME = "root";
  private static final String PWD = "root";

  private static Connection conn = null;

  static
  {
    try
    {
      // 1.加载驱动程序
      Class.forName("com.mysql.jdbc.Driver");
      // 2.获得数据库的连接
      conn = DriverManager.getConnection(URL, UNAME, PWD);
    }
    catch (ClassNotFoundException e)
    {
      e.printStackTrace();
    }
    catch (SQLException e)
    {
      e.printStackTrace();
    }
  }

  public static Connection getConnection()
  {
    return conn;
  }
}

第四步,创建实体类(如上图,大家观察包的分配,我们将采用MVC思想设计本实例,有关于mvc的设计思想,请大家自行学习,这里不多说)代码如下:

package com.czgo.model;

import java.io.Serializable;

/**
 * 实体类:女神类
 *
 * @author AlanLee
 *
 */
public class Goddess implements Serializable
{
  private static final long serialVersionUID = 1L;

  /**
   * 唯一主键
   */
  private Integer id;
  /**
   * 姓名
   */
  private String name;
  /**
   * 手机号码
   */
  private String mobie;
  /**
   * 电子邮件
   */
  private String email;
  /**
   * 家庭住址
   */
  private String address;

  public Integer getId()
  {
    return id;
  }

  public void setId(Integer id)
  {
    this.id = id;
  }

  public String getName()
  {
    return name;
  }

  public void setName(String name)
  {
    this.name = name;
  }

  public String getMobie()
  {
    return mobie;
  }

  public void setMobie(String mobie)
  {
    this.mobie = mobie;
  }

  public String getEmail()
  {
    return email;
  }

  public void setEmail(String email)
  {
    this.email = email;
  }

  public String getAddress()
  {
    return address;
  }

  public void setAddress(String address)
  {
    this.address = address;
  }
}

第五步,dao层的实现(这里由于是小例子没有写dao接口,实际工作中大型项目应该是要写dao接口的,便于程序的维护和扩展),代码如下:

package com.czgo.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.czgo.db.DBUtil;
import com.czgo.model.Goddess;

/**
 * 数据层处理类
 *
 * @author AlanLee
 *
 */
public class GoddessDao
{
  /**
   * 查询全部女神
   *
   * @return
   * @throws SQLException
   */
  public List<Goddess> query() throws SQLException
  {
    List<Goddess> goddessList = new ArrayList<Goddess>();

    // 获得数据库连接
    Connection conn = DBUtil.getConnection();

    StringBuilder sb = new StringBuilder();
    sb.append("select id,name,mobie,email,address from goddess");

    // 通过数据库的连接操作数据库,实现增删改查
    PreparedStatement ptmt = conn.prepareStatement(sb.toString());

    ResultSet rs = ptmt.executeQuery();

    Goddess goddess = null;

    while (rs.next())
    {
      goddess = new Goddess();
      goddess.setId(rs.getInt("id"));
      goddess.setName(rs.getString("name"));
      goddess.setMobie(rs.getString("mobie"));
      goddess.setEmail(rs.getString("email"));
      goddess.setAddress(rs.getString("address"));

      goddessList.add(goddess);
    }
    return goddessList;
  }

  /**
   * 查询单个女神
   *
   * @return
   * @throws SQLException
   */
  public Goddess queryById(Integer id) throws SQLException
  {
    Goddess g = null;

    Connection conn = DBUtil.getConnection();

    String sql = "" + " select * from imooc_goddess " + " where id=? ";

    PreparedStatement ptmt = conn.prepareStatement(sql);

    ptmt.setInt(1, id);

    ResultSet rs = ptmt.executeQuery();

    while (rs.next())
    {
      g = new Goddess();
      g.setId(rs.getInt("id"));
      g.setName(rs.getString("name"));
      g.setMobie(rs.getString("mobie"));
      g.setEmail(rs.getString("email"));
      g.setAddress(rs.getString("address"));
    }

    return g;
  }

  /**
   * 添加女神
   *
   * @throws SQLException
   */
  public void addGoddess(Goddess goddess) throws SQLException
  {
    // 获得数据库连接
    Connection conn = DBUtil.getConnection();

    String sql = "insert into goddess(name,mobie,email,address) values(?,?,?,?)";

    PreparedStatement ptmt = conn.prepareStatement(sql);

    ptmt.setString(1, goddess.getName());
    ptmt.setString(2, goddess.getMobie());
    ptmt.setString(3, goddess.getEmail());
    ptmt.setString(4, goddess.getAddress());

    ptmt.execute();
  }

  /**
   * 修改女神资料
   *
   * @throws SQLException
   */
  public void updateGoddess(Goddess goddess) throws SQLException
  {
    Connection conn = DBUtil.getConnection();

    String sql = "update goddess set name=?,mobie=?,email=?,address=? where id=?";

    PreparedStatement ptmt = conn.prepareStatement(sql);

    ptmt.setString(1, goddess.getName());
    ptmt.setString(2, goddess.getMobie());
    ptmt.setString(3, goddess.getEmail());
    ptmt.setString(4, goddess.getAddress());

    ptmt.execute();
  }

  /**
   * 删除女神
   *
   * @throws SQLException
   */
  public void deleteGoddess(Integer id) throws SQLException
  {
    Connection conn = DBUtil.getConnection();

    String sql = "delete from goddess where id=?";

    PreparedStatement ptmt = conn.prepareStatement(sql);

    ptmt.setInt(1, id);

    ptmt.execute();
  }
}

第六步,控制层的实现(控制层在此处用来模仿控制层和界面,直接在这里构建数据,如果是界面的数据则通过请求传递接收参数即可,控制层的代码大家可以根据实际情况去更改完善,这里只是给大家抛砖引玉,做个简单的测试,时间比较紧,希望大家理解),代码如下:

package com.czgo.action;

import java.sql.SQLException;
import java.util.List;

import com.czgo.dao.GoddessDao;
import com.czgo.model.Goddess;

/**
 * 控制层,直接在这里构建数据,界面的数据则通过请求传递接收即可,亦是同理
 *
 * @author AlanLee
 *
 */
public class GoddessAction
{
  /**
   * 新增女神
   *
   * @param goddess
   * @throws Exception
   */
  public void add(Goddess goddess) throws Exception
  {
    GoddessDao dao = new GoddessDao();
    goddess.setName("苍井空");
    goddess.setMobie("52220000");
    goddess.setEmail("52220000@qq.com");
    goddess.setAddress("北京红灯区");
    dao.addGoddess(goddess);
  }

  /**
   * 查询单个女神
   *
   * @param id
   * @return
   * @throws SQLException
   */
  public Goddess get(Integer id) throws SQLException
  {
    GoddessDao dao = new GoddessDao();
    return dao.queryById(id);
  }

  /**
   * 修改女神
   *
   * @param goddess
   * @throws Exception
   */
  public void edit(Goddess goddess) throws Exception
  {
    GoddessDao dao = new GoddessDao();
    dao.updateGoddess(goddess);
  }

  /**
   * 删除女神
   *
   * @param id
   * @throws SQLException
   */
  public void del(Integer id) throws SQLException
  {
    GoddessDao dao = new GoddessDao();
    dao.deleteGoddess(id);
  }

  /**
   * 查询全部女神
   *
   * @return
   * @throws Exception
   */
  public List<Goddess> query() throws Exception
  {
    GoddessDao dao = new GoddessDao();
    return dao.query();
  }

  /**
   * 测试是否成功
   *
   * @param args
   * @throws SQLException
   */
  public static void main(String[] args) throws SQLException
  {
    GoddessDao goddessDao = new GoddessDao();

    List<Goddess> goddessList = goddessDao.query();

    for (Goddess goddess : goddessList)
    {
      System.out.println(goddess.getName() + "," + goddess.getMobie() + "," + goddess.getEmail());
    }
  }
}

最后,让我们看一下main方法的运行结果是否成功:

这样,一个简单的java jdbc 连接mysql数据库 实现增删改查便完成了,大家可以在查询的基础上试着去做一个高级查询,也就是多条件查询来巩固jdbc的使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java使用JDBC动态创建数据表及SQL预处理的方法

    本文实例讲述了java使用JDBC动态创建数据表及SQL预处理的方法.分享给大家供大家参考,具体如下: 这两天由于公司的需求,客户需要自定义数据表的字段,导致每张表的字段都不是固定的而且很难有一个通用的模板去维护,所以就使用JDBC动态去创建数据表,然后通过表的字段动态添加数据,数据的来源主要是用户提供的Excel直接导入到数据库中. 如果考虑到字段的类型,可以通过反射的机制去获取,现在主要用户需求就是将数据导入到数据库提供查询功能,不能修改,所以就直接都使用String类型来处理数据更加便捷.

  • java如何创建一个jdbc程序详解

    JDBC简介 Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,它由一组用Java编程语言编写的类和接口组成. JDBC为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序. 使用JDBC编写的程序能够自动地将SQL语句传送给相应的数据库管理系统. JDBC扩展了Java的功能,由于Java语言本身的特点,使得JDBC具有简单.健壮.安全.可移植.获取方便等优势. 我们在没有JD

  • Java加载JDBC驱动程序实例详解

    本文实例说明了Java加载JDBC驱动程序的方法,运行本文实例代码后,如果连接成功就会显示如下一条语句:sun.jdbc.odbc.JdbcOdbcDriver@6ec12,如果连接不成功,则显示加载数据库驱动程序出现异常. Java加载JDBC的实现方法: 通过调用Class.forName()方法可以显式地加载一个驱动程序.该方法的入口参数为要加载的驱动程序.例如:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")语句加载了SUN 公司开发的

  • java的jdbc简单封装方法

    学习了jdbc一段时间后感觉自己写一个简单的封装来试试,于是参考的一些资料就写了一下不是多好,毕竟刚学也不太久 首先写配置文件:直接在src下建立一个db.properties文件然后写上内容 <span style="font-size:18px;">MysqlDriver=com.mysql.jdbc.Driver MysqlURL=jdbc\:mysql\://localhost\:3306/one User=root Pwd=123456 </span>

  • Java使用JDBC连接数据库的实现方法

    本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧.分享给大家供大家参考.具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序要连接数据库时就要使用JDBC.使用JDBC连接数据库一般步骤有: 1.加载驱动程序 Class.forName(driver); 2.创建连接对象 Connection con = DriverManager.getConnection(ur

  • java实现jdbc批量插入数据

    首先介绍三种JDBC批量插入编程方法,进行比较,具体内容如下 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql 5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法一:使用PreparedStatement加批量的方法 try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(o_url, userName, pass

  • Java编程中使用JDBC API连接数据库和创建程序的方法

    JDBC连接数据库 涉及到建立一个JDBC连接的编程是相当简单的.下面是这些简单的四个步骤: 导入JDBC包: 添加import语句到Java程序导入所需的类在Java代码中. 注册JDBC驱动程序:这一步会导致JVM加载所需的驱动程序实现到内存中,因此它可以实现JDBC请求. 数据库URL制定:这是创建格式正确的地址指向到要连接的数据库. 创建连接对象:最后,代码调用DriverManager对象的getConnection()方法来建立实际的数据库连接. 导入JDBC包: import 语句

  • 基于Java回顾之JDBC的使用详解

    尽管在实际开发过程中,我们一般使用ORM框架来代替传统的JDBC,例如Hibernate或者iBatis,但JDBC是Java用来实现数据访问的基础,掌握它对于我们理解Java的数据操作流程很有帮助. JDBC的全称是Java Database Connectivity. JDBC对数据库进行操作的流程:•连接数据库•发送数据请求,即传统的CRUD指令•返回操作结果集JDBC中常用的对象包括:•ConnectionManager•Connection•Statement•CallableStat

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

  • Python实现连接MySql数据库及增删改查操作详解

    本文实例讲述了Python实现连接MySql数据库及增删改查操作.分享给大家供大家参考,具体如下: 在本文中介绍 Python3 使用PyMySQL连接数据库,并实现简单的增删改查.(注意是python3) 1.安装PyMySQL PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb.PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库.在使用 PyMySQ

  • python3.6连接mysql数据库及增删改查操作详解

    折腾好半天的数据库连接,由于之前未安装 pip ,而且自己用的python 版本为3.6. 只能用 pymysql 来连接数据库,下边 简单介绍一下 连接的过程,以及简单的增删改查操作. 1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql   回车等待安装完成: 安装完成后出现如图相关信息,表示安装成功. 2.测试连接 import pymysql #导入 pymysql 如果编译未出错,即表示 pymysql 安装成功 简单的增删改查操作 示

  • python Django连接MySQL数据库做增删改查

    1.下载安装MySQLdb类库http://www.djangoproject.com/r/python-mysql/2.修改settings.py 配置数据属性 复制代码 代码如下: DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.        'NAME': 'djang

  • java连接mongoDB并进行增删改查操作实例详解

    本文实例讲述了java连接mongoDB并进行增删改查操作.分享给大家供大家参考,具体如下: 1.安装 MongoDB JDBC驱动程序 在java中使用mongoDB之前,首先需要拥有java连接mongoDB的第三方驱动包(jar包) 1)maven项目可通过在pom.xml中添加依赖 <dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-ja

  • 教你用springboot连接mysql并实现增删改查

    1.数据库与数据表的创建 创建名为mybatis的数据库: create database mybatis; 创建名为user2的数据表: use mybatis; create table user2( id integer not null primary key, name varchar(20) not null, pwd varchar(10) not null, perms varchar(100) null) 生成如下表结构: (已经插入了两行数据的) 2.数据库的连接 注意点:u

  • Node.js对MySQL数据库的增删改查实战记录

    目录 在项目中操作数据库的三大步骤 操作数据库的具体步骤 一:安装MySQL模块及express模块 二:通过express创建一个服务器 三:配置MySQL模块 四:测试 mysql 模块能否正常工作 SELECT:查询one数据表中所有的数据: INSERT INTO:向数据库中添加数据: UPADTE:修改数据库中的数据: DELETE:删除数据库中的数据: 总结 在项目中操作数据库的三大步骤 安装操作 MySQL 数据库的第三方模块(mysql) 通过 mysql 模块连接到 MySQL

  • python对 MySQL 数据库进行增删改查的脚本

    # -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='test_hvr', charset='utf8') cursor = conn.cursor() # 查询数据库 effect_row = cursor.execute("select *

  • jsp+servlet+jdbc实现对数据库的增删改查

    一.JSP和Servlet的简单介绍 1.Servlet和JSP简介: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序,而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行. 2.Servlet和JSP的区别: Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内

  • nodejs连接mongodb数据库实现增删改查

    准备 1.通过npm命令安装mongodb 2.安装mongodb数据库,这里不详细介绍了,安装网址:http://www.jb51.net/article/82522.htm CRUD操作 在此之前应对MongoDB数据库有所了解,知道它的一些增删查改命令. 1.增加 var MongoClient = require("mongodb").MongoClient; var DB_URL = "mongodb://localhost:27017/chm"; fun

随机推荐