Java 之 JDBC

栏目: 数据库 · 发布时间: 5年前

内容简介:解释上面两幅图:java应用程序通过JDBC API首先连接到JDBC Driver,这些JDBC驱动器都是由各大数据库厂家针对JDBC提供的,我们可以在网上下载jar包来使用,然后通过JDBC驱动器就能连接到我们的数据库了。

JDBC 是用于在 Java 语言编程中与数据库连接的 API . JDBC 是一个规范,它提供了一整套接口,允许以一种可移植的访问底层数据库 API 。使用 JDBC驱动程序 来访问数据库,并用于存储数据到数据库中.

Java 之 JDBC
Java 之 JDBC
Java 之 JDBC

解释上面两幅图:

java应用程序通过JDBC API首先连接到JDBC Driver,这些JDBC驱动器都是由各大数据库厂家针对JDBC提供的,我们可以在网上下载jar包来使用,然后通过JDBC驱动器就能连接到我们的数据库了。

第一步 添加驱动

1.在项目当中创建一个文件夹为lib
2.把 Mysql 驱动包复制到该文件夹下
3.builder path 编译路径
复制代码

第二步 连接到数据库

package con.meils.jdbc.conn;

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

public class ConnectionClass {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
		
		
		// 1、加载驱动
		// 把com.mysql.jdbc.Driver这份字节码加载进JVM
		// 当一份字节码加载进JVM的时候,就会执行字节码文件中的静态代码块
		// 这里加载该字节码之后会实例化一个驱动器
		Class.forName("com.mysql.jdbc.Driver");
		
		// 2、连接
		String url = "jdbc:mysql://localhost:3306/mytest";
		String username = "root";
		String password = "zjj19970517";
		Connection connection = DriverManager.getConnection(url, username, password);
		
		// 3、验证连接
		System.out.println(connection); // 如果有输出,表明连接成功
	}

}

复制代码

第三步 操作数据库创建表

package con.meils.jdbc.ddl;

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

public class CreateTable {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		// 1\加载驱动
		// 把com.mysql.jdbc.Driver这份字节码加载进JVM
		// 当一份字节码加载进JVM的时候,就会执行字节码文件中的静态代码块
		// 这里加载该字节码之后会实例化一个驱动器
		Class.forName("com.mysql.jdbc.Driver");

		String url = "jdbc:mysql://localhost:3306/jdbc_db";
		String username = "root";
		String password = "zjj19970517";
		// 2\ 连接数据库
		Connection connection = DriverManager.getConnection(url, username, password);
		
		
		// 3\创建 sql 语句
		String sql = "create table stu (id int , name varchar(20), age int)";
		
		// 4\执行sql语句
		Statement st = connection.createStatement();
		int row = st.executeUpdate(sql);
		
		// 5\释放
		st.close();
		connection.close();
		
		
		
	}

}

复制代码
Java 之 JDBC

为什么要释放资源呢?

Java 之 JDBC

第四步 插入数据

package con.meils.jdbc.dml;

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

public class InsertClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		// ================ 插入数据 ================
		
		Connection conn = null;
		
		Statement st = null;
		
		
		try {
			// 1、加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			
			// 2、创建连接
			String url = "jdbc:mysql://localhost:3306/mytest";
			String user = "root";
			String password = "zjj19970517";
			conn = DriverManager.getConnection(url, user, password);
			
			// 3、创建sql语句
			String sql = "insert into stu values(1, 'zjj', 20)";
			st = conn.createStatement();
			
			// 4、执行语句
			int row = st.executeUpdate(sql);
			System.out.println(row);
		}catch (Exception e) {
			e.printStackTrace();
		} finally {
			// 5、释放
			if(st!=null) {
				try {
					st.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
			}
			if(conn!=null) {
				try {
					conn.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
			}
			
			
		}
		
	}

}

复制代码

第五步 查询操作

Java 之 JDBC
package con.meils.jdbc.dql;

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

public class QueryClass {

	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub

		// ================ 查询数据 ================
		
		// 1\加载驱动
				// 把com.mysql.jdbc.Driver这份字节码加载进JVM
				// 当一份字节码加载进JVM的时候,就会执行字节码文件中的静态代码块
				// 这里加载该字节码之后会实例化一个驱动器
				Class.forName("com.mysql.jdbc.Driver");

				String url = "jdbc:mysql://localhost:3306/mytest";
				String username = "root";
				String password = "zjj19970517";
				// 2\ 连接数据库
				Connection connection = DriverManager.getConnection(url, username, password);
				
				
				// 3\创建sql语句 
				String sql = "select count(*) as total from stu"; // 查询一共有几行数据
				
				// 4\执行sql语句
				Statement st = connection.createStatement();
				ResultSet rs = st.executeQuery(sql);
				
				if(rs.next()) {
					int count = rs.getInt("total");
					System.out.println(count); // 1
				}
				
				// 5\释放
				st.close();
				connection.close();
	}

}

复制代码
Java 之 JDBC
Java 之 JDBC
Java 之 JDBC

数据类型对照表:

Java 之 JDBC

上面我们基本学会了如何与数据库打交道,但是这样使用存在许多的弊端,比如:每一步操作都进行一次数据库连接,造成浪费,所以我们在实际中要使用DAO思想来处理。

二、DAO设计

1、什么是DAO

Java 之 JDBC

DAO(Data Access Object)数据存储对象,介于业务逻辑层和持久层之间,实现持久化数据访问。

不使用DAO的时候:

Java 之 JDBC

使用DAO的情况:

Java 之 JDBC

三、ORM映射关系

Java 之 JDBC

四、Domain

1、认识domain

Java 之 JDBC

2、domain类

Java 之 JDBC

3、保存数据

Java 之 JDBC

4、获取数据

Java 之 JDBC

五、DAO设计规范

Java 之 JDBC

案例

我们可以编写一个DAO接口,定义了常用的数据库操作方法,这时候我们同时会连接多个数据库,比如是mysql 和 oracle ,我们可以分别实现oracleDao和mysqlDao两个类,不同类里面定义不同的操作数据库的代码,实现的功能确实相同的。

Java 之 JDBC

所以面向接口编程是很重要的,也是一个很好的方式。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Programming in Java

Introduction to Programming in Java

Robert Sedgewick、Kevin Wayne / Addison-Wesley / 2007-7-27 / USD 89.00

By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and appli......一起来看看 《Introduction to Programming in Java》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试