JDBC使用介绍

注意:连接之前先导入数据库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";

 

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

 

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");

代码示例:

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());来传入值,第一个参数代表第几个值,也就是第几个问号

代码示例:

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();
}

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值