0.将驱动引入项目

  • 在项目根目录新建文件夹lib,把数据库驱动mysql-connector-java-5.1.7-bin.jar放入该文件夹。
  • 右键点击项目名称->properties->Java Build Path->Libraries->Add JARs->找到驱动文件->搞定

  什么是mysql-connector-java-5.1.7-bin.jar

  数据库驱动。

  为什么要另外引入一个jar包sun公司怎么没有实现这些功能

  因为市面上有很多数据库,mysql oracle sqlserver,每个数据库内部实现不同,sun公司提供标准接口,数据库提供商负责实现接口,把所有实现类打包成.jar文件。有了这个jar包,java程序就可以驱动着数据库做事。

*1.加载驱动

* 也叫注册驱动
* Class.forName("com.mysql.jdbc.Driver")
*
*2.获取连接对象

* Connection conn = DriverManager.getConnection("url",user,password);

  例如:jdbc:mysql://127.0.0.1:3306/myschool
* url - jdbc:subprotocol:subname 形式的数据库 url  

  • URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
  • 也可认为由4部分组成:协议、主机、端口、路径
  • URL的一般语法格式为:
  • (带方括号[]的为可选项):
  • protocol :// hostname[:port] / path / [;parameters][?query]#fragment

*3.获取sql执行器对象

* Statement 对象
* Statement statement = conn.createStatement();

*PreparedStatement(Statement的子接口)表示预编译的sql语句的对象,

*SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

*PreparedStatement pst = conn.prepareStatement(sql);

 (相对于statement执行器对象)

  1.代码可读性性高,由于是预编译sql语句对象,可以设置占位符

  2.解决了statement拼串造成的sql 注入安全问题

  3.由于是预编译之后发送的,减轻了服务器压力,提高了程序性能

                

*CallableStatement(PreparedStatement 的子接口)--用于执行sql存储过程的接口

String sql = "call pro_…"

* CallableStatement cas = conn.prepareCall(sql)

*4.执行并返回处理结果

* 增删改 sql语句 executeUpdate()-->返回值为sql语句操作的数据行数,行数为0则数据库指令操作不成功
* 查询sql语句-->executeQuery()-->返回java.sql.ResultSet结果集对象,你所查询的表数据
* 用next方法判断数据库结果集中是否有下一行元素,光标最初位于第一行之前
*
*5.关闭资源

* 关闭资源的顺序,先创建的后关闭
* 增删改sql语句 ----只需要关闭连执行器(Statement/PrepareStatement)和连接对象(Connection)
* 查询 ,需要关闭ResultSet结果集对象,执行器对象(Statement/PrepareStatement)和连接对象(Connection)

package com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
*1.加载驱动
* 也叫注册驱动
* Class.forName("com.mysql.jdbc.Driver")
*
*2.获取连接对象
* Connection conn = DriverManager.getConnection("url",user,password);
* url - jdbc:subprotocol:subname 形式的数据库 url
*
*3.获取sql执行器对象
* Statement 对象
* Statement statement = conn.createStatement();
*
*4.执行并返回处理结果
* 增删改 sql语句 executeUpdate()-->返回值为sql语句操作的数据行数,行数为0则数据库指令操作不成功
* 查询sql语句-->executeQuery()-->返回java.sql.ResultSet结果集对象,你所查询的表数据
* 用next方法判断数据库结果集中是否有下一行元素,光标最初位于第一行之前
*
*5.关闭资源
* 关闭资源的顺序,先创建的后关闭
* 增删改sql语句 ----只需要关闭连执行器(Statement/PrepareStatement)和连接对象(Connection)
* 查询 ,需要关闭ResultSet结果集对象,执行器对象(Statement/PrepareStatement)和连接对象(Connection) * @author Administrator
*
*/
public class Test05 {
public static void main(String[] args) {
//1.加载驱动/注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//2.连接对象,在捕获异常外声明该对象,后续方法关闭该对象
Connection connection = null;
//3.执行器对象 ,在捕获异常外声明该对象,后续方法关闭该对象
Statement statement = null;
try {
//获取连接对象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool","root","root");
System.out.println("连接数据库成功");
//获取执行器对象
statement=connection.createStatement();
//sql执行器对象用来向数据库发送sql语句,并执行sql语句,带有int返回值executeUpdate();
String sql = "update grade set gradename='9年级' where gradeid=9";
int count =statement.executeUpdate(sql);
if(count>0){
System.out.println("修改成功 ");
}else{
System.out.println("修改失败");
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库连接失败");
}finally{
//先创建的后关闭
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
}

jdbc(mysql)数据库连接的更多相关文章

  1. Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执 ...

  2. jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化

    上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...

  3. 一个简单的MySql数据库连接池的实现

    package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...

  4. JDBC + MySQL 示例

    jdbc mysql connection 教程 翻译自:JDBC MySQL Connection Tutorial Java Database Connectivity (JDBC) 是一个基于J ...

  5. jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

    day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一 ...

  6. 数据库连接JDBC和数据库连接池C3P0自定义的java封装类

    数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...

  7. mysql数据库连接池 手动编写

    源码来源于http://www.toutiao.com/a6350448676050174209/,留存以供以后参考学习 先上一张项目托普图 然后分别列出各个文件的源码: MyPool.java(就是 ...

  8. 查找Mysql数据库连接jar包和对应的Driver和Url

    以前写jdbc连接向来都是直接copy,对于连接数据库的jar包在哪下载,对应的Driver类是哪一个,数据库连接串怎么找等等都没有做过,今天从零开始整了一遍. 使用的数据库是Mysql 一.已安装了 ...

  9. mysql 数据库连接池

    hibernate配置C3P0详解         分类:             hibernate              2013-08-14 16:16     1213人阅读     评论 ...

  10. MySql数据库连接池

    1.传统链接(如下为示意图) 注意: (1).传统方式找DriverManager要连接,数目是有限的. (2).传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的 ...

随机推荐

  1. Spring AOP(面向切面编程)

    AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理.日志管理.权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性. 简单例子: ...

  2. The Role of View Controllers

    https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/index.html# ...

  3. int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restric mutex)

    mutex:为了保护条件变量而存在的: cond:为了线程通信而存在的. 整个机制都是为了保护条件变量和线程间通信而存在的. pthread_cond_wait()函数一进入wait状态就会自动rel ...

  4. Optional类的基本使用(没怎么看)

    参考:https://www.runoob.com/java/java8-optional-class.html java8中引入了一个新类:Optional,用于日常编码中对空指针异常进行限制和处理 ...

  5. Ferguson游戏&&Ua12293——打表找规律

    题意 有两个盒子分别有m颗糖果和n颗糖果,每次移动是将一个盒子清空而把另一个盒子里得一些糖果拿到被清空的盒子,使得两个盒子至少各有一个.无法移动者输. 分析 设初始状态为(m, n),显然(1, 1) ...

  6. 微信小程序 深拷贝的那些坑。

    网上说的几种方法都不好使,包括直接使用如下: JSON.pars(JSON.stringify(this.data.answer)) ... Object.assign Object.definePr ...

  7. 接口调试工具Postman之自动同步Chrome cookies,实现自动登陆验证

    前言 在前后端分离开发时,做为后端开发人员,要求独立开发完成某个接口后,开发人员自己需要先测试通过后再提交给测试人员进行测试,否则会出现到测试人员哪里业务流程根本就走不通,或者BUG会过多的情况等. ...

  8. ent 基本使用十五 一个图遍历的例子

    以下是来自官方的一个user group pet 的查询demo 参考关系图 环境准备 docker-compose mysql 环境 version: "3" services: ...

  9. ent facebook 开源的golang orm 框架

    ent 是facebook 开源的golang orm 框架,简单强大,具有提下特性 schema 即代码 方便的图遍历 静态类型以及显示api 多种存储引擎支持(当前是mysql,sqlite,以及 ...

  10. 动态规划-多维DP

    1.最大正方形 我的瞎猜分析: 我的瞎猜算法: #include <stdio.h> #include <memory.h> #include <math.h> # ...