JDBC篇<1>

01.一、JDBC
1、jdbc简介:

JDBCs是一种执行sql语句时候的JavaAPI,可为多种关系型数据库提供统一访问,他有java语言编写的类和接口组成,JDBC提供了一种基准,据此可以构建更高的工具和接口,是数据库开发人员能够编写数据库应用程序。

2、JDBC原理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jSE4Gl6b-1658237070146)(D:\java1234\java1234笔记\java1234笔记截图\JDBC原理.png)]

二、JDBC链接数据库
1.JDBC链接数据库步骤

(1)、加载数驱动

在eclipse的File里面,加入外面下载的jar包,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KPmdLgOx-1658237070153)(D:\java1234\java1234笔记\java1234笔记截图\image-20220715211933677.png)]

(2)、连接数据库

(3)、使用语句操作数据库

(4)、关闭数据连接,释放资源

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-niOuIVAu-1658237070153)(D:\java1234\java1234笔记\java1234笔记截图\image-20220715212014920.png)]

2.实际操作代码
package com.java123.jdbc.java_jdbc02;

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

public class demo01 {
	//数据库地址 需要加上时区,否则报错
//	private static String action="jdbc:mysql://localhost:3306/schooldata";
	private static String action="jdbc:mysql://localhost/schooldata1?serverTimezone=Asia/Shanghai";
	// 用户名
	private static String user="***";
	// 密码
	private static String password="***";
	//需要加载驱动的名称
	private static String jdbcName="com.mysql.cj.jdbc.Driver";
	
	public static void main(String[] args) {
		// 加载驱动
		 try {
			Class.forName(jdbcName);
			System.out.println("驱动加载成功");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("驱动加载失败");
		}
		 Connection con=null;
		 //在使用数据库连接的时候,用到DriverManager
		 try {
			 con=DriverManager.getConnection(action, user, password);
			 System.out.println("获取数据库连接成功");
			 System.out.println("进行数据库操作");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			 System.out.println("获取数据库连接失败");
		}finally {
			// 直接获取不到,把con定义到外面
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	

}

三、使用Statement接口实现 增删改查操作
1.statement接口的引入

作用:用于执行静态sql语句并返回它所生成的对象,

import java.sql.Statement;

Statement stmt=con.createStatement();

2.使用statement接口实现添加数据库操作

定义封装一个连接数据库的类,然后调用

package Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Collection;


public class DbUtil {
	//数据库地址 需要加上时区,否则报错
	private static String action="jdbc:mysql://localhost/meeting?serverTimezone=Asia/Shanghai";
	// 用户名
	private static String user="root";
	// 密码
	private static String password="lqs19981106";
	//需要加载驱动的名称
	private static String jdbcName="com.mysql.cj.jdbc.Driver";
	
	
	/**
	 * 链接数据库
	 * @return
	 * @throws Exception
	 */
	
	public Connection getCon() throws Exception{
		Class.forName(jdbcName);
		Connection con=DriverManager.getConnection(action, user, password);
		return con;
	}
	/**
	 * 关闭链接
	 * @param con
	 */
	public void close( Connection con) throws Exception{
		if (con!=null) {
			con.close();
			
		}
	}

}
// 上实际操作
package com.java123.jdbc.java_jdbc03;

import java.sql.Connection;
import java.sql.Statement;

import Util.DbUtil;

public class demo01 {
	public static void main(String[] args)  throws Exception{
		// 定义连接的
		DbUtil dbUtil=new DbUtil();
		String sql="insert into jdbc values(1,'张三',18),(2,'李四',25)";
		Connection con=dbUtil.getCon();
		Statement stmt=con.createStatement();
		//返回值为int  意思为操作的数据条数,也是操作是否成功的标志
		int result=stmt.executeUpdate(sql);
		System.out.println(result);	
        stmt.close();
		con.close();
	}

}

3.使用statement接口实现更新数据库操作

1.先搞一个book模型,在使用时候定义好他的含参构造和get和set方法

package model;
/**
 * 图书模型
 * @author Administrator
 *
 */
public class Book {
	private int id;
	private String bookName;
	private float price;
	private String author;
	private int bookTypeId;
	
	//含参构造
	public Book(int id, String bookName, float price, String author, int bookTypeId) {
		super();
		this.id = id;
		this.bookName = bookName;
		this.price = price;
		this.author = author;
		this.bookTypeId = bookTypeId;
	}

	//生成的方法
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public int getBookTypeId() {
		return bookTypeId;
	}
	public void setBookTypeId(int bookTypeId) {
		this.bookTypeId = bookTypeId;
	}
}
//上测试
import java.sql.Connection;
import java.sql.Statement;

import Util.DbUtil;
import model.Book;
/**
 * 对数据库的数据进行更新
 * @author Administrator
 *
 */
public class demo04 {
	
	private static DbUtil dbUtil=new DbUtil();
	
	private  static int updateBook(Book book) throws Exception{
		Connection con=dbUtil.getCon(); //获取连接
		String sql="update t_book set id='"+book.getId()+"',"
				+ "bookName='"+book.getBookName()+"',"
				+ "price='"+book.getPrice()+"'"
				+ ",author='"+book.getAuthor()+"',"
				+ "bookTypeId='"+book.getBookTypeId()+"' where id="+book.getId();  //格式化代码格式ctrl+shlif+f
		Statement stmt=con.createStatement();
		int result=stmt.executeUpdate(sql);
		dbUtil.close(stmt, con);
		return result;
	}
	
	public static void main(String[] args) throws  Exception {
		Book book=new Book(1, "hadoop", 30, "劉黔", 1);
		int result=updateBook(book);
		if (result==1) {
			System.out.println("更新成功");
		}else {
			System.out.println("更新失败");
			System.out.println(result);
		}
	}
}
//在更新过程中 注意的是在sql语句后面就进行条件选择
4.使用statement接口实现删除数据库操作

在进行数据库的sql语句操作时候,操作没这么麻烦

package com.java123.jdbc.java_jdbc03;

import java.sql.Connection;
import java.sql.Statement;

import Util.DbUtil;

public class demo05 {
	private static DbUtil dbUtil=new DbUtil();
	private static int deleteBook(int id) throws Exception{
		//还是先连接数据库
		Connection con=dbUtil.getCon();
		String sql="delete from t_book where id="+id;
		//创建statement
		Statement stmt=con.createStatement();
		int result=stmt.executeUpdate(sql);
		dbUtil.close(stmt, con); //关闭连接
		return result;
		
	}
	
	public static void main(String[] args) throws Exception{
		int result=deleteBook(2);
		//可以直接用
		deleteBook(1);
		if (result==1) {
			System.out.println("删除成功");
		}else {
			System.out.println("删除失败");
		}
		}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沁颖呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值