JDBC:MySQL数据库连接

连接MySQL的简单流程:

  • 导jar包:驱动!
  • 加载驱动类:Class.forName(“类名”);
  • 给出url、username、password,其中url背下来!
  • 使用DriverManager类来得到Connection对象!

1.JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
2.JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!每个数据库厂商都有自己的驱动,用来连接自己公司的数据库

JDBC中的核心类有:DriverManager、Connection、Statement,和ResultSet

  • DriverManger(驱动管理器)的作用有两个: 注册驱动:这可以让JDBC知道要使用的是哪个驱动;获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。
  • Connection对象表示连接,与数据库的通讯都是通过这个对象展开的:
    Connection最为重要的一个方法就是用来获取Statement对象;
  • Statement是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句:  void
    executeUpdate(String sql):执行更新操作(insert、update、delete等); ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

JDBC开发步骤

  1. 注册驱动.
  2. 获得连接.
  3. 获得语句执行平台
  4. 执行sql语句
  5. 处理结果
  6. 释放资源.
一、导入驱动jar包

创建一个lib文件,用于存放当前项目所需要的jar包
(注意:我这里使用的是版本五的MySQL,mysql数据库的驱动jar包:mysql-connector-java-5.1.13-bin.jar,),把jar包添加完毕要记得手动加载一下jar才能生效有用,具体效果如下:
在这里插入图片描述

二、注册驱动

注册驱动就只有一句话:Class.forName(“com.mysql.jdbc.Driver”),也可以是使用DriverManager来注册驱动【DriverManager.registerDriver(new com.mysql.jdbc.Driver())】,但不推荐,因为如果将来想连接Oracle数据库,那么必须要修改代码的。并且其实这种注册驱动的方式是注册了两次驱动!
下面我们来看看com.mysql.jdbc.Driver类的源代码:

publicclass Driver extends NonRegisteringDriver implements java.sql.Driver {
	static {
		try {
			//从这里可以看出,在com.mysql.jdbc.Driver源码中的静态代码块中就已经注册驱动,因此我们通过反射技术获取该类就可以直接注册驱动
			java.sql.DriverManager.registerDriver(new Driver());
		} catch (SQLException E) {
			thrownew RuntimeException("Can't register driver!");
		}
	}
……
}

三、获取连接

**获取连接的也只有一句代码:DriverManager.getConnection(url,username,password),其中username和password是登录数据库的用户名和密码,mysql的url:
jdbc:mysql://localhost:3306/db1
**

//获取数据库连接的代码,连接数据库中db1库
Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db1”,”root”,123);
四、获取Statement

在得到Connectoin之后,说明已经与数据库连接上了,下面是通过Connection获取Statement对象的代码:

//Statement是用来向数据库发送要执行的SQL语句的!
Statement stmt = con.createStatement();
五、发送SQL增、删、改语句 和 查询语句

这里要注意:增删改和查询是有区别的,别搞混,执行查询使用的不是execute()方法,而是executeQuery()方法
如果SQL语句执行失败,那么execute会抛出一个SQLException
executeQuery()方法返回的是ResultSet,ResultSet封装了查询结果,我们称之为结果集,

//execute()方法增删改
String sql = “insert into user value(’zhangSan’,123);
stmt.execute(sql);
//executeQuery()方法查询
String sql = “select * from user”;
ResultSet rs = stmt.executeQuery(sql);

六、读取结果集中的数据

ResultSet就是一张二维的表格,它内部有一个“行光标”,光标默认的位置在“第一行上方”,我们可以调用rs对象的next()方法把“行光标”向下移动一行,在ResultSet类中提供了一系列的getXXX()方法,比较常用的方法有:
Object getObject(int col)
String getString(int col)
int getInt(int col)
double getDouble(int col)

七、关闭释放资源

与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。
resultSetclose();
statement.close();
connection .close();

代码

这里只是简单的演示了添加的操作,

public static void main(String[] args) {
        Connection con=null;
        Statement stmt=null;
        try {
            //获取驱动
            Class.forName("com.mysql.jdbc.Driver");
            //获取连接
            String url = "jdbc:mysql://localhost:3306/db1";
             con = DriverManager.getConnection (url, "root", "123");
            //获取Statement,执行添加sql语句
            stmt = con.createStatement();
            String sql = "insert into user values('zhangSan', '123')";
            stmt.executeUpdate(sql);
            System.out.println("插入成功!");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace ();
        }finally {
            try {
                if(stmt != null) stmt.close();
                if(con != null) con.close();
            } catch(SQLException e) {}
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值