JDBC+MYSQL初始学习

JDBC+MYSQL初始学习

一、学习准备

Eclipse 开发工具  + mysql数据库+navicat 数据库连接工具

Mysql的数据库连接驱动jar包  + testing测试集成+maven工具集成

Jar的获取方法:

1、直接下载需要的jar,导入项目中使用。

2、在maven工程中加入依赖:本文使用的maven依赖:

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
</dependency>
<dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.0</version>
</dependency>

二、JDBC简单实用步骤:

Jdbc连接数据库操作,主要分为三个步骤:本文以mysql为例操作说明:

2.1加载驱动程序

Class.forName("com.mysql.jdbc.Driver");

2.2获取数据库连接

conn = DriverManager.getConnection(URL, USER, PASSWORD);

2.3对数据库的表结构进行CURD操作

三、JDBC增、删、改、查

3.1 通过navicat 连接本地mysql 创建user表结构:

3.2 建立相关的类来实现jdbc的crud的操作

3.1.1 模型类User

  User类用于和数据库user表映射,方便CURD的实时操作。

/**
 *
 */
package com.lilin.maven.service.jdbc;

/**
 * @author lilin
 *
 */
public class User {

    private Integer id;

    /**
     * 用户名称
     */
    private String name;

    /**
     * 用户密码
     */
    private String password;

    public String getName() {
        return name;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

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

    public String toString() {
        return "user 的名称是" + name + " user的密码是:" + password;
    }

}

3.1.2 工具类JdbcUtil

  工具类主要定义了数据库连接的相关属性:URL 、USER、PASSWORD

  工具类在静态块中获取了数据库的连接,存放于私有CONN中,同时对外提供了访问连接的公共方法:getConnection

/**
 *
 */
package com.lilin.maven.service.jdbc;

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

/**
 * @author lilin
 *
 */
public class JdbcUtil {
    public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";

    public static final String USER = "root";

    public static final String PASSWORD = "1";

    private static Connection conn = null;

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

    /**
     * 提供获取连接的调用方法
     *
     * @return
     */
    public static Connection getConnection() {
        return conn;
    }
}

3.1.3 逻辑层类UserService

  UserService类,主要是通过调用工具类,获取数据库连接,然后使用连接,配合好编写的sql语句,来对数据库中的user表来进行CURD操作,包含了一系列的常用的处理。

/**
 *
 */
package com.lilin.maven.service.jdbc;

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

/**
 * @author lilin
 *
 */
public class UserService {

    private Connection connection = JdbcUtil.getConnection();

    /**
     * 新增用户信息
     *
     * @param user
     * @throws Exception
     */
    public void addUser(User user) throws Exception {
        String sql = " insert into user(NAME,PASS_WORD)values(?,?)";
        // 预编译sql语句 在excute的时候真正执行
        PreparedStatement ptmt = connection.prepareStatement(sql);
        // 传递参数 补充完整的sql
        ptmt.setString(1, user.getName());
        ptmt.setString(2, user.getPassword());
        ptmt.execute();
    }

    /**
     * 删除用户信息
     *
     * @param user
     * @throws Exception
     */
    public void deleteUser(Integer id) throws Exception {
        String sql = " delete from user where ID=?";
        // 预编译sql语句 在excute的时候真正执行
        PreparedStatement ptmt = connection.prepareStatement(sql);
        // 传递参数 补充完整的sql
        ptmt.setInt(1, id);
        ptmt.execute();
    }

    /**
     * 更新用户信息
     *
     * @param user
     * @throws Exception
     */
    public void updateUser(User user) throws Exception {
        String sql = " update user set NAME=? ,PASS_WORD=? where ID=?";
        // 预编译sql语句 在excute的时候真正执行
        PreparedStatement ptmt = connection.prepareStatement(sql);
        // 传递参数 补充完整的sql
        ptmt.setInt(3, user.getId());
        ptmt.setString(1, user.getName());
        ptmt.setString(2, user.getPassword());
        ptmt.execute();
    }

    /**
     * 查询单个用户信息
     *
     * @param user
     * @throws Exception
     */
    public User getUserByName(String name) throws Exception {
        String sql = " select * from  user where NAME=?";
        // 预编译sql语句 在excute的时候真正执行
        PreparedStatement ptmt = connection.prepareStatement(sql);
        // 传递参数 补充完整的sql
        ptmt.setString(1, name);
        ResultSet resultSet = ptmt.executeQuery();
        User user = null;
        while (resultSet.next()) {
            user = new User();
            user.setId(resultSet.getInt("ID"));
            user.setName(resultSet.getString("NAME"));
            user.setPassword(resultSet.getString("PASS_WORD"));
        }
        return user;
    }

    /**
     * 查询所有的用户信息
     *
     * @return
     * @throws Exception
     */
    public List<User> getUsers() throws Exception {
        // 3.操作数据库 实现增删改查
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from user");
        List<User> list = new ArrayList<User>();
        User user = null;
        while (resultSet.next()) {
            user = new User();
            String name = resultSet.getString("NAME");
            String passWord = resultSet.getString("PASS_WORD");
            user.setName(name);
            user.setPassword(passWord);
            list.add(user);
        }
        return list;
    }

}

3.1.4 testNG测试类 jdbctest

  JdbcTest中,实现了多个测试方法,userserice中的CURD的方法,全部有对应的测试function:通过运行测试方法,以及配合使用navicat实时查询数据库的user表的数据的实时变化,以便于验证JDBC对于mysql的数据库操作的正确性。

/**
 *
 */
package com.lilin.maven.service.jdbc;

import java.util.List;
import java.util.Scanner;

import org.testng.annotations.Test;

/**
 * @author lilin
 *
 */
public class JdbcTest {

    private UserService userService = new UserService();

    @Test
    public void testGetUsers() throws Exception {
        List<User> users = userService.getUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }

    @Test
    public void testAddUser() throws Exception {
        User user = new User();
        user.setName("李林");
        user.setPassword("12345");
        userService.addUser(user);
    }

    @Test
    public void testUpdateUser() throws Exception {
        User user = new User();
        user.setId(1);
        user.setName("bb");
        user.setPassword("12345");
        userService.updateUser(user);
    }

    @Test
    public void testDeleteUser() throws Exception {
        userService.deleteUser(4);
    }

    @Test
    public void testgetUserByName() throws Exception {
        User user = userService.getUserByName("bb");
        System.out.println(user);
    }

}
时间: 2024-10-03 23:18:49

JDBC+MYSQL初始学习的相关文章

MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

首先需要回顾一下上一篇文章中的内容:MySQL数据库学习笔记(九)----JDBC的PreparedStatement接口重构增删改查 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit.Rollback命令进行事务的提交与回滚.实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成. JDBC中事务处理的步骤: 1.要取消掉JDBC的自动提交:void setAutoCommit(boolea

MySQL数据库学习笔记(八)----JDBC入门及简单增删改查数据库的操作

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4050825.html 联系方式:[email protected] [正文]                                                                                                               

JDBC MYSQL 学习笔记(一) JDBC 基本使用

1.JDBC简介 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包:java.sql  javax.sql 开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动). 2.使用JDBC的步骤--第一个JDBC程序 需求:编程从user表中读取数据,并打印在命令行窗口中. (1) 搭建实

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4059514.html 联系方式:[email protected] [正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据

JSP+Servlet+JDBC+Mysql实现的博客系统

本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/nanpingping/jsp-blog 这次分享个人博客系统,界面简洁大气,功能齐全,是不可多得的比较容易的系统,非常适合毕业设计或者课程设计. 本系统基于JSP+Servlet+JDBC+Mysql.涉及技术少,易于理解,适合JavaWeb初学者学习使用. 难度等级:简单 技术栈 编辑器 IntelliJ IDEA 2019.1.1 (Ultimate Edition) 前端技术 基础:html+css+Ja

JSP+Struts2+JDBC+Mysql实现的校园宿舍管理系统

项目简介 项目来源于:https://gitee.com/passenger134/javaweb-sushe 本系统基于JSP+Struts2+JDBC+Mysql的校园宿舍管理系统.该系统没有使用全套的SSH框架,只使用了跳转层Struts2,非常适合学习Struts2时使用. 难度等级:中等 技术栈 编辑器 Eclipse Version: 2019-12 (4.14.0) 前端技术 基础:html+css+JavaScript 框架:无 后端技术 JSP+Struts2+JDBC 数据库

JAVA jdbc(数据库连接池)学习笔记(转)

学习内容: 1.JDBC的含义... JDBC想必学过JAVA的就不会陌生,JDBC到底是什么呢?其实就是由JAVA的一些类和接口构成的API,保存在java.sql和javax.sql..包中的一些API... 2.使用JDBC的原因...   那么为什么要使用,这个想必大家也是更为了解了,一个应用程序如果不和数据库进行连接,那这根本就不算是个应用程序,那么应用程序是不能直接对数据库进行操作的,那么就需要一个辅助工具去连接数据库,从而操作数据库...那这个辅助的工具就是JDBC了,这个仅限于J

JAVA jdbc(数据库连接池)学习笔记(一)

学习内容: 1.JDBC的含义... JDBC想必学过JAVA的就不会陌生,JDBC到底是什么呢?其实就是由JAVA的一些类和接口构成的API,保存在java.sql和javax.sql..包中的一些API... 2.使用JDBC的原因...   那么为什么要使用,这个想必大家也是更为了解了,一个应用程序如果不和数据库进行连接,那这根本就不算是个应用程序,那么应用程序是不能直接对数据库进行操作的,那么就需要一个辅助工具去连接数据库,从而操作数据库...那这个辅助的工具就是JDBC了,这个仅限于J

MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4085684.html 联系方式:[email protected] [正文] 这一周状态不太好,连续打了几天的点滴,所以博客中断了一个星期,现在继续. 我们在之前的几篇文章中学习了JDBC对数据库的增删改查.其实在实际开发中,一般都是使用第三方工具类,但是只有将之前的基础学习好了,在使用开源工具的