JDBC使用介绍

news/2024/5/18 5:14:36 标签: jdbc, java, sql

注意:连接之前先导入数据库Jar包!!

 

JDBC使用步骤:

 

第一步,加载驱动程序

java加载驱动需要用到反射机制

Class.forName(driverClass)

加载Mysql驱动:Class.forName("com.mysql.jdbc.Driver");

加载Oracle驱动:Class.forName("oracla.jdbc.OracleDriver");

 

第二步:获得数据库的连接

java.sql.Connection conn=DriverManager.getConnection(url,user,password);

通常建立三个常量代表,地址,用户名和密码

地址是由 jdbc 连接mysql  本机IP 默认端口 数据库名称组成的

private static final Stirng URL="jdbc:mysql://127.0.01:3306/mysql";

URL=“jdbc:oracle:thin:@127.0.0.1:1521:mysql

private static final Stirng USER="root";

private static final String PASSWORD="root";

 

通常将第一步和第二步封装到一个工具类中,如下:

 

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

public class DBUtil {
	private static final String URL="jdbc:mysql://127.0.01:3306/courses";
	private static final String USER="root";
	private static final String PASSWORD="depp";

	private static Connection conn = null;

	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection(URL, USER, PASSWORD);

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

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

 

第三步:通过数据库的链接操作数据库,实现增删改查

从数据库中读取数据:

Statement stmt=conn.createStatement();

ResultSet rs=stmt.executeQuery("SQL 语句");

判断是否获取到数据,返回一个boolean类型的值 :rs.next()

通过字段得到返回值:rs.getString("username");

代码示例:

java">Statement stmt=null;
ResultSet rs=null;
		
try {
	stmt = conn.createStatement();
	rs=stmt.executeQuery("select * from students");
			
	while(rs.next()){
			
		Student student = new Student();//必须new一个新对像,否则会出现空指针异常
		student.setId(rs.getString("stuID"));
		student.setName(rs.getString("stuName"));
		student.setYear(rs.getString("stuYear"));
		student.setNumber(rs.getString("stuNumber"));
		student.setSex(rs.getString("stuSex"));
				
		System.out.println(student.toString());
	}
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

 

 

 

 

 

将数据保存到数据库中:

PreparedStatement ptmt=conn.preparesStatement(sql);

这句代码并没有执行编译sql语句,一直到ptmt.execute();才会编译sql语句

sql语句中的问号就是要保存到数据库中的数据

通过ptmt.setStirng(1,student.getID());来传入值,第一个参数代表第几个值,也就是第几个问号

代码示例:

java">Student student=new Student();//通常作为方法的形参
		
String sql=""+"INSERT students (stuID,stuName,stuYear,stuNumber,stuSex) "+
		"VALUES(?,?,?,?,?)";
		
PreparedStatement ptmt;
try {
	ptmt = conn.prepareStatement(sql);
	ptmt.setString(1, student.getId());
	ptmt.setString(2,student.getName());
	ptmt.setString(3, student.getYear());
	ptmt.setString(4, student.getNumber());
	ptmt.setString(5, student.getSex());
			
	ptmt.execute();
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

 

 

 

 

 

 

 

 

 


http://www.niftyadmin.cn/n/705572.html

相关文章

Linux指定网卡名称

udev是Linux(linux2.6内核之后)默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。 动态管理:当设备添加 / 删除时,udev 的守护进程侦听来自内核的 uevent&am…

利用JAVA+MySQL实现学生选课系统

一个简单的学生选课系统,先说一下思路: 首先需要选择身份,学生或者是管理员,如果选择管理员需要输入密码,菜单上的选项有的只能管理员访问 比如创建菜单,有的只能学生访问,比如选课和创建学生。 如果选择…

sftp客户端工具汇总

FileZilla Client https://filezilla-project.org/ SecureFX https://www.vandyke.com/products/securefx/ MobaXterm https://mobaxterm.mobatek.net/ WinSCP https://winscp.net/eng/index.php

java调用SQL Server存储过程详解

转载自Microsoft的官方文档 http://msdn2.microsoft.com/zh-cn/library/ms378995.aspx 收录于 www.enjoyjava.net/f25 本文较长,包含了如下几部分 使用不带参数的存储过程使用带有输入参数的存储过程使用带有输出参数的存储过程使用带有返回状态的存储过程使用带…

流媒体测试地址

由于我们在做流媒体项目的时候,经常需要用到视频链接做测试用,所以这里为大家找了一些可以使用的链公大家参考测试,链接收集于网络。如有失效请更换下一个链接。 MP4链接如下: http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4http://www.…

live555 imx6ul交叉编译静态库和动态库

以live.2023.01.11为例,进入源码目录: cp config.armlinux config.imx6ul原始内容: CROSS_COMPILE? arm-elf- COMPILE_OPTS $(INCLUDES) -I/usr/local/include -I. -O2 -DSOCKLEN_Tsocklen_t -DNO_SSTREAM1 -D_LARGEFILE_SOURCE1 -D_FI…

linaro根文件系统仓库

https://releases.linaro.org/ubuntu/images/

视觉组学习内容:Zhang-Suen骨架提取算法

视觉组学习内容:Zhang-Suen骨架提取算法前言任务要求实现要求任务完成流程概要1.在Windows平台的VS 2017上写好函数风格代码2.使用类对原函数进行封装与调试3.配置Ubuntu环境4.在Terminal中使用g完成编译封装代码参考文献:前言 这是视觉组dalao给大家布…