使用软件:mysql、eclipse

链接步骤:

1.注册驱动

2.创建一个连接对象

3.写sql语句

4.执行sql语句并返回一个结果或者结果集

5.关闭链接(一般就是connection、statement、setresult)这三个连接对象,关闭顺序一般是(setresult    --->  statement  -->  setresult  )

一、直接连接方法:(这种方法就是讲sql语句和结果所有的步骤写在一起) 不建议使用该方法

1 public static voidmain(String[] args) {2 String url = "jdbc:mysql://localhost:3306/students";3 String user = "root";4 String password = "admin";5 Connection conn = null;6 Statement st = null;7

8 try{9 //1. 注册驱动

10 Class.forName("com.mysql.jdbc.Driver");11 //2. 创建一个链接对象

12 conn =DriverManager.getConnection(url,user,password);13 //3. 创建一个sql语句的发送命令对象

14 String sql = "insert into student values('2001','Tom','20','7000')";15 st=conn.createStatement();16 //4. 执行sql语句,拿到查询的结果集对象

17 st.executeQuery(sql);20 } catch(Exception e) {21 e.printStackTrace();22 }finally{23 //5. 关闭链接 ,命令对象 ,结果集

24 if(st != null) {25 try{26 st.close();27 } catch(Exception e) {28 e.printStackTrace();29 }30 }31 if(conn != null) {32 try{33 conn.close();34 } catch(Exception e) {35 e.printStackTrace();36 }37 }38 }

二、建立工具类方法,将必要的几步写一个类,使用的时候直接调用(建议使用)

1.注册驱动、创建连接对象、关闭资源    这三部一般可以写一个类,由于写sql语句和执行sql语句的结果不一致,所以可以将其在用到的时候在写

2.一般写工具类都是写成静态方法,以方便调用

//这是工具类:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class JdbcUtils {

private static String driverName = "com.mysql.jdbc.Driver";

private static String url = "jdbc:mysql://localhost:3306/student_achievement_system";

private static String user = "root";

private static String password = "admin";

/**

* 链接数据库

*/

static {

try {

Class.forName(JdbcUtils.driverName);

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 获取链接对象connection

* @return

*/

public static Connection getConnection() {

try {

return DriverManager.getConnection(JdbcUtils.url, JdbcUtils.user, JdbcUtils.password);

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 关闭资源

* @param conn

* @param st

* @param rs

*/

public static void close(Connection conn,Statement st,ResultSet rs) {

if(rs != null) {

try {

rs.close();

} catch (Exception e) {

e.printStackTrace();

}

}

if(st != null) {

try {

st.close();

} catch (Exception e) {

e.printStackTrace();

}

}

if(conn != null) {

try {

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

//这是对数据库的基本操作类

// 增加、删除、更新、查找一条、查找所有的方法

public class StudentsDaoImpl implements IStudentsDao {

//增加

@Override

public int save(Students student) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn = JdbcUtils.getConnection();

String sql = "insert into students values(?,?,?,?,?,?)";

ps = conn.prepareStatement(sql);

ps.setInt(1, student.getStudentId());

ps.setString(2, student.getStudentName());

ps.setString(3, student.getSex());

ps.setString(4, student.getPhoneNo());

ps.setString(5, student.getAddress());

ps.setDate(6, (Date) student.getBirthday());

int row = ps.executeUpdate();

return row;

} catch (Exception e) {

e.printStackTrace();

}finally {

JdbcUtils.close(conn, ps, null);

}

return 0;

}

//删除

@Override

public int delete(int studentId) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn = JdbcUtils.getConnection();

String sql = "delete from students where studentId=?";

ps = conn.prepareStatement(sql);

ps.setInt(1, studentId);

int row = ps.executeUpdate();

return row;

} catch (Exception e) {

e.printStackTrace();

}finally {

JdbcUtils.close(conn, ps, null);

}

return 0;

}

//更新

@Override

public int update(int studentId, Students student) {

Connection conn = null;

PreparedStatement ps = null;

try {

conn = JdbcUtils.getConnection();

String sql = "update students set studentName=?,sex=?,phoneNo=?,address=?,birthday=? where studentId=?";

ps = conn.prepareStatement(sql);

ps.setString(1, student.getStudentName());

ps.setString(2, student.getSex());

ps.setString(3, student.getPhoneNo());

ps.setString(4, student.getAddress());

ps.setDate(5, ((Date) student.getBirthday()));

ps.setInt(6, studentId);

int row = ps.executeUpdate();

return row;

} catch (Exception e) {

e.printStackTrace();

}finally {

JdbcUtils.close(conn, ps, null);

}

return 0;

}

//查找一条数据

@Override

public Students getByStudentId(int studentId) {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

conn = JdbcUtils.getConnection();

String sql = "select * from students where studentId=?";

ps = conn.prepareStatement(sql);

ps.setInt(1, studentId);

rs = ps.executeQuery();

if(rs.next()) {

Students student = new Students();

student.setStudentId(rs.getInt("studentId"));

student.setStudentName(rs.getString("studentName"));

student.setSex(rs.getString("sex"));

student.setPhoneNo(rs.getString("phoneNo"));

student.setAddress(rs.getString("address"));

student.setBirthday(rs.getDate("birthday"));

return student;

}

} catch (Exception e) {

e.printStackTrace();

}finally {

JdbcUtils.close(conn, ps, rs);

}

return null;

}

//查找所有数据

@Override

public List getAll() {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

conn = JdbcUtils.getConnection();

String sql = "select * from students";

ps = conn.prepareStatement(sql);

rs = ps.executeQuery();

List studentsList = new ArrayList<>();

while(rs.next()) {

Students student = new Students();

student.setStudentId(rs.getInt("studentId"));

student.setStudentName(rs.getString("studentName"));

student.setSex(rs.getString("sex"));

student.setPhoneNo(rs.getString("phoneNo"));

student.setAddress(rs.getString("address"));

student.setBirthday(rs.getDate("birthday"));

studentsList.add(student);

}

return studentsList;

} catch (Exception e) {

e.printStackTrace();

}finally {

JdbcUtils.close(conn, ps, rs);

}

return null;

}

}

java连接mysql实现增删改查_JDBC之Java连接mysql实现增删改查相关推荐

  1. java 对增删该查进行测试_java连接mysql增删改查测试通过

    把数据库连接作为一种方法调用实现增删改查 源码参考: import java.sql.*; public class JDBC_Test { // 创建静态全局变量 static Connection ...

  2. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WZY 一.JDBC是什么? Java Data Base Connectivity,java数据库连接, ...

  3. linux c mysql 增删改查_Linux C语言连接MySQL 增删改查操作

    Linux下想要测试mysql和memcached的性能,因为是服务器只能通过终端连接,所以考虑用C语言写测试代码.于是研究了把C怎么连接MySQL以及增删改查的代码.安装mysql-client或者 ...

  4. java中的数组增删查改操作,java数组实现增删改查

    java 实现动态数组,Java工具类Arrays中不得不知的常用方法,数组实现队列java,java数组实现增删改查 java 增删改查代码 import java.sql.Connection; ...

  5. 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码

    简单说操作的步骤: 1.连接数据库 2.将SQL语句发送到数据库 3.执行SQL语句 这里举个例子: 在一个数据库中有个students表,表中有学号(Id),姓名(Name),性别(Sex),地址( ...

  6. java对数据库的增删改查_在java中对数据库进行增删改查

    代码区域: package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; impo ...

  7. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  8. MySQL数据库基本操作详解(数据库概述、基本操作、增删改查等)

    目录 MySQL数据库概述 MySQL数据库的基本操作 MySQL数据库的表的操作 MySQL数据库的增删查改(CRUD) MySQL数据库概述: 初来乍到,什么是数据库?数据库就是存储数据的仓库,我 ...

  9. mysql查询和修改一个命令_MYSQL的常用命令和增删改查语句

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

最新文章

  1. python多维字符数组_python多维数组内找指定字符串
  2. HTML5圆形线性渐变,css中linear-gradient()函数是干什么的?实现线性渐变的圆形边框(代码)...
  3. python 3389爆破机
  4. U3D 扩展方法 Dotween tolua
  5. 【练习】c++删除链表倒数第K个结点和 插入排序算法将单链表递增排序
  6. P1020 导弹拦截(最长不上升序列+二分)
  7. BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】
  8. Java编程语言的历史和未来
  9. 大工17秋《计算机文化基础》在线测试1,奥鹏大工15秋《计算机文化基础》在线测试1答案...
  10. Go 神坑 1 —— interface{} 与 nil 的比较
  11. python tkinter获取屏幕大小_用 Python 制作关不掉的端午安康弹窗
  12. 【OpenCV学习笔记】【编程实例】三(将一个图像中的指定区域拷贝到另一个图像的指定区域
  13. IntelliJ IDEA 记学习笔《装阿里代码规范插件》
  14. 无线通信与编码_Rake接收机_三种合并算法_MATLAB仿真代码
  15. 加拿大java技术移民_加拿大技术移民分析贴之新手入门级!
  16. c语言编程吉他和弦,学吉他和弦怎么弹啊?就C大调C,Dm,Em,F,G,Am,Bdim.1,2,3,4,5,6,7级和弦举个简单的例帮帮我...
  17. Postman中文版下载[9.12.0]
  18. 信安软考 第十二章 网络安全审计技术
  19. Cocos2d-x 面试题解 整理01
  20. Codeforces Round #749 (Div. 1 + Div. 2, based on Technocup 2022 Elimination Round 1)

热门文章

  1. 力扣892.三维形体的表面积
  2. JSTL标签用法:c:choosec:forEachc:ifc:whenc:set
  3. 关于使用pietty或putty终端连接ubuntu虚拟机时报被拒绝连接问题
  4. H5 Canvas maximum-scale图像模糊解决办法
  5. select、poll和epoll
  6. ajax 动态加载的内容,相应的js也要在回调里加载
  7. Power Designer逆向操作(从mysql5.0生成数据库的物理模型)
  8. (转)Hibernate中的多表操作
  9. c3p0-0.9.1.2.jar
  10. GirlsInAI 近期计划,求扩散,欢迎大家转起来!