Java连接数据库(自学笔记)

一、六步骤

        第一步:注册驱动,主要告诉Java程序连接哪种数据库,如MySql、Orcale等,我自己连接的是MySql数据库。

            Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);

        第二步:获取连接,使JVM的进程和数据之间的通道打开。

            String url = "jdbc:mysql://localhost:3306/dlb_mysql";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url, user, password);

           url中:  jdbc:mysql://     协议

                        localhost       本机ip地址,如果连接其他电脑,换成对应的ip,如193.168.88.22

                        3306:    MySql数据库的端口号

                        dlb_mysql:    我自己电脑上的数据库名称,可以换成对应的数据库名称。

           user:   用户名

           password:   密码

        第三步:获取数据库操作对象:state = conn.createStatement()。

        第四步:执行Sql语句。

        第五步:处理查询结果集。

        第六步:释放资源:

    全部代码如下:

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


public class JDBCTest01{
	public static void main(String []args){
		Connection conn = null;
		Statement state = null;
		try{
			//1.注册驱动
			Driver driver = new com.mysql.jdbc.Driver();
			DriverManager.registerDriver(driver);
			//2.获取链接
			String url = "jdbc:mysql://localhost:3306/dlb_mysql";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3.获取数据库操作对象
			state = conn.createStatement();
			//4.执行sql语句
			String s = "insert into dept values('512','刘亦菲','西北大学')";
			//专门执行DML语句
			//返回值时影响数据库中的记录条数
			int count = state.executeUpdate(s);
			System.out.println(count==1 ?"保存成功" : "保存失败");
			//5.处理查询结果集
		}
		catch(SQLException e){
			e.printStackTrace();
		} finally{
			//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catch
			try{
				if(state != null){
					state.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
			try{
				if(conn != null){
					conn.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
		
		}
	
	}

}

二、注册驱动的第二种方法(比较常用)。

上面注册驱动我们用的是这两句

            Driver driver = new com.mysql.jdbc.Driver();
            DriverManager.registerDriver(driver);

我们打开Mysql驱动中的Driver.class文件

 看到源码    我们会发现有个静态代码块,里面执行的就是上面注册驱动的那两句,所以我们可以用这里的静态代码块来替代。

用在这句Class.forName("com.mysql.jdbc.Driver")代替,进行了类加载,静态代码块执行,无需接收返回值。

代码如下:跟上面的代码块就只有注册驱动那里发生连变化,进行了替代。

import java.sql.*;


public class JDBCTest02{
	public static void main(String []args){
		Connection conn = null;
		Statement state = null;
		try{
			//1.注册驱动
			//Driver driver = new com.mysql.jdbc.Driver();
			//DriverManager.registerDriver(driver);
			Class.forName("com.mysql.jdbc.Driver");//进行了类加载,静态代码块执行,无需接收返回值
			//2.获取链接
			String url = "jdbc:mysql://localhost:3306/dlb_mysql";
			String user = "root";
			String password = "123456";
			conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3.获取数据库操作对象
			state = conn.createStatement();
			//4.执行sql语句
			String s = "insert into dept values('522','刘亦菲','西北大学')";
			//专门执行DML语句
			//返回值时影响数据库中的记录条数
			int count = state.executeUpdate(s);
			System.out.println(count==1 ?"保存成功" : "保存失败");
			//5.处理查询结果集
		}
		catch(ClassNotFoundException e){
			e.printStackTrace();
		}
		catch(SQLException e){
			e.printStackTrace();
		} finally{
			//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catch
			try{
				if(state != null){
					state.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
			try{
				if(conn != null){
					conn.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
		
		}
	
	}

}

3.用配置文件中读取数据库连接信息

 

代码如下:

import java.sql.*;
import java.util.*;

public class JDBCTest03{
	public static void main(String []args){
		Connection conn = null;
		Statement state = null;
		try{
			ResourceBundle bundle = ResourceBundle.getBundle("jdbc");

			//1.注册成功
			String driver = bundle.getString("driver");
			Class.forName(driver);//进行了类加载,无需接收返回值
			//2.获取链接
			String url = bundle.getString("url");
			String user = bundle.getString("user");
			String password = bundle.getString("password");
			conn = DriverManager.getConnection(url, user, password);
			System.out.println(conn);
			//3.获取数据库操作对象
			state = conn.createStatement();
			//4.执行sql语句
			String s = "insert into dept values('523','刘亦菲','西北大学')";
			//专门执行DML语句
			//返回值时影响数据库中的记录条数
			int count = state.executeUpdate(s);
			System.out.println(count==1 ?"保存成功" : "保存失败");
			//5.处理查询结果集
		}
		catch(ClassNotFoundException e){
			e.printStackTrace();
		}
		catch(SQLException e){
			e.printStackTrace();
		} finally{
			//6.释放资源,遵循从小到大依次关闭,并且对其分别try...catch
			try{
				if(state != null){
					state.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
			try{
				if(conn != null){
					conn.close();
				}
			}catch( SQLException e){
				e.printStackTrace();
			}
		
		}
	
	}

}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值