Java JDBC技术

      需要注意,JDBC并不能直接访问数据库,而是要依赖数据库厂商提供的驱动程序。所以第一步是干嘛呢?当然是导入驱动jar包了,这个需要去官网下载对应的jar包,MySQL、SQL Server、DB2、Oracle 等等的驱动都不一样。这里可以参考下这位前辈的博客:https://blog.csdn.net/qq243920161/article/details/78971861   这是我至今看过的最详细简单粗暴的博客。感谢!!废话不多说,直接进入主题。

      当时学java JDBC的时候还没有学数据库原理,现在学了 SQL Server 拿来练练手,体会体会。使用JDBC技术就四个步骤 ,就是学几个接口的用法嘛!不难,这里一一来讲:

一、加载JDBC驱动程序(使用DriverManager 类)

(只需要在第一次访问数据库的时候加载一次就行)

代码如下:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   

里面是驱动程序,写入对应的就行,不知道就问问度娘,比如SQL Server的驱动是  com.microsoft.sqlserver.jdbc.SQLServerDriver  。注意还要导入驱动包,这个有数据库商家提供,下载就行,这里可以去上面那位前辈的云盘下载,百度也行  “sqljdbc4.jar”  这个。

二、连接数据库(使用Connection 接口)

(每次访问创建一个Connection对象)

代码如下:

Connection con = DriverManager.getConnection(url,usename,password);

url 就是地址+端口组成的,各种数据库可能有点区别,可以百度查这个。这里以SQL Server为例是   "jdbc:sqlserver://127.0.0.1:1433;databaseName=test"   databaseName可以不写。  usename 用户名,password 密码。

下面是上面两个步骤的测试代码:

package Main;
import java.sql.*;
public class test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			String usename="sa";//这里输入你的数据库登录账号
			String password="123456";//这里输入登录密码;
			//固定用法,地址使用的本地地址,加载了里面的一个库,也可以不加载
			String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=test";
			
			//重点一 来了》》》 加载JDBC-ODBC桥的驱动程序
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//重点二 来了》》》连接数据库
			Connection con = DriverManager.getConnection(url,"sa","1");
			System.out.println("数据库连接成功");
		    //关闭连接
			con.close();
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

如果提示"数据库连接成功",恭喜你,你已经成功一半了。如果有的话emmmm,可能挺费时间去弄,防火墙啊、端口什么的、慢慢调吧!调好记得重启电脑。参考N多大神的博客一定会找到办法的,因为我就是这样学过来的。

三、向数据库发送SQL语句(Statement、PreparedStatement、ResultSet 接口)

接口众多不用刻意去记方法,用的时候查API文档就行。

获取Statement类对象,然后可以通过各种方法进行对数据库的查询、修改,并将结果集存放在ResultSet类对象中。我们先看下数据库中的表和代码。

package Main;
import java.sql.*;
public class test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		try {
			String usename="sa";//这里输入你的数据库登录账号
			String password="123456";//这里输入登录密码;
			//固定用法,地址使用的本地地址,加载了里面的一个库,也可以不加载
			String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=test2";
			
			//重点一 来了》》》 加载JDBC-ODBC桥的驱动程序
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			System.out.println("驱动加载成功!");
			//重点二 来了》》》连接数据库
			Connection con = DriverManager.getConnection(url,usename,password);
			System.out.println("数据库连接成功");
			
			//创建Statement对象处理查询结果
			Statement sql=con.createStatement();
			ResultSet res=sql.executeQuery("select * from course");
			//注意 一定要res.next()才能读取到数据,否则报错。
			//res.next();  System.out.println(res.getString("cs_id"));
			while(res.next()) {
				String id=res.getString("cs_id");
				String name=res.getString("cs_nm");
				String time=res.getString(3);//也可以用3代表第三列的字段;
				System.out.print("课程号:"+id);
				System.out.print("   课时:"+time);
				System.out.println("   课程名:"+name);
			}
			
		    //关闭连接 
			con.close();
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

运行结果:

 

       当然了,可以进行各种精彩的SQL语句的操作,这个知识点有力地将程序设计与数据库有机的结合起来了,哈哈,别说,还挺好玩的!这里不一一举例,数据库学好一点就行。

       再介绍一下  preparedStatement(String sql)  的用法。这个用法非常简单,实用。  我们知道发送一个SQL语句,数据库中的SQL解释器负责生成底层命令,然后执行命令,完成相关操作。如果不断提交Sql语句肯定会增加解释器负担。如果你英语好的话已经知道是什么意思了——预处理语句。对于JDBC,可以用该方法对SQL语句进行预处理,生成数据库底层内部命令,并将命令封装在PrepareStatement对象中。通过调用该对象相应方法执行底层数据库命令,这样就减轻了数据库负担,提高访问速度。

	        //  ? 可以代替任何字段值。
			PreparedStatement pre_sql=con.prepareStatement("select * from course where cs_id=?");
		    pre_sql.setString(1,"0001");     //1表示从左往右一个 ?
		    // pre_sql.setObject(1,"0001")   Object方法是万能的,无视各种参数类型。
			//相当于 pre_sql =con.prepareStatement(select * from course where cs_id="0001"); 一句
		    
		    ResultSet res2=pre_sql.executeQuery();
		    res2.next();
		    String cs_id=res2.getString("cs_id");
		    String cs_nm=res2.getString("cs_nm");
		    System.out.println("cs_id="+cs_id+"    cs_nam="+cs_nm);
		    

executeQuery() 方法是在PrepareStatement对象中执行SQL查询,并返回该查询的ResultSet对象。

executrUpdat() 方法是在PrepareStatement对象中执行SQL语句,该语句一定是DML语句(如:insert,updata,delete)或者是无返回内容的DDL语句。

四、关闭连接

            //关闭连接 
            con.close();

到这儿基础知识基本结束了

更加强大的用法还需不断探索学习

以上错误还请各位指正,谢谢!

发布了44 篇原创文章 · 获赞 72 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/cj151525/article/details/85259808
今日推荐