Jdbc概念性知识

JDBC定义:
JDBC全称: Java Data Base Connectivity(数据库连接): 独立于特定数据管理系统, 通用的sql数据库存取和操作的公共接口, 是一种面向接口编程

JDBC为访问不同的数据库提供了不同的途径,提供了统一的访问.

          java应用-jdbc-oracle/mysql/sql server

    ojdbc6.jar是JDBC连接数据库所必需的一个驱动包, 这个驱动包里面的某些特定的方法实现了下面三个接口, 从而可以连接到数据库
    我们把这种可以实现这三个接口的jar称为数据库的驱动包

Connection接口是jdk中定义好的一个数据库连接的接口, 在javaAPI当中没有定义任何实现该接口的实现类, 这些实现类将会由数据库厂商提供, 同样Statement, ResultSet这两个接口都是以这种形式来定义, 这样的编程模式成为面向接口编程

加载驱动程序:class.forname(driveClass)
  加载mysql驱动:Class.forName("com.mysql.jdbc.Driver");
  加载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");//"oracle.jdbc.OracleDriver"

获得数据库连接:
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc","root","root");
//"jdbc:oracle:thin:@localhost:1521:orcl" 创建Statement对象:conn.creatStatement();

 

      //定义常量 常量全部大写
        private static final String USERNAME = "test";					1		
	private static final String PASSWORD = "test";                                  2
	private static final String URL                                                 3
	    = "jdbc:oracle:thin:@localhost:1521:orcl";
	private static final String DRIVERCLASSNAME  //数据库的驱动程序                    4
	    = "oracle.jdbc.OracleDriver";

 	public static Connection getConnection() {
		//方法定义成静态的,可以通过类名直接点出来
		Connection conn = null;
		try { //1.加载驱动程序
			Class.forName(DRIVERCLASSNAME);	
    	              //2.获取数据库的连接
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 
//3.通过数据库的连接操作数据库,实现增删改查
statemet stmt = conn.createStatement();//实例化
ResultSet rs = stmt.executeQuery("select * from **biao ");
//我们查询的数据就会存在这个rs中了.会返回一个结果集,这个结果集引入时是sql下的,
//不要写错了,接下来怎么调用里面的东西呢?
while(rs.next())//是说是否有下一个,有返回true,没有返回false
//意思是说,里面如果有数据,就会打印出来,没有这个循环就不会走
{//我们用while把结果循环循环打印出来
syso(rs.getString("")+","+rs.getInt(""));
//rs提供了想打印哪种数据类型就打印哪种的方法用get..如上

}

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}                

  

 

 MVC三层架构:
      View 视图层
	Control 控制层
	Model模型层
	和 DB 数据库

  

JDBC主要使用的一个类和三个接口:
DriverManager:
  驱动程序管理类, 由这个类来获取Connection接口的实例

Connection: 获取数据库的连接, 设置自动提交方式, 获取Statement(包括其子类)对象
  prepareStatement(sql)-->返回用于执行sql语句的一个对象
  callableStatement-->返回执行存储过程的一个对象
  setAutoCommit(true)-->设置数据库提交方式(自动 / 手动)

Statement: 执行sql语句, 返回结果集
返回boolean类型 prepareStatement.execute()-->用于执行存储过程和函数
返回ResultSet prepareStatement.executeQuery()-->用于查询的语句
返回int prepareStatement.executeUpdate()-->用于增, 删, 改的语句

批量处理:
prepareStatement.addBatch()-->每次处理一条sql语句
返回int[] prepareStatement.executeBatch()-->将一批命令提交给数据库去执行

以占位符的形式构建sql语句
String sql = "select * from tablename t where t.id=? and t.name in (?,?,?)";
prepareStatemenet.setInt(1, 24)
prepareStatemenet.setString(2, "Tom");
prepareStatemenet.setString(3, "Jack");
prepareStatemenet.setString(4, "Kitty");
prepareStatemenet.executeQuery();
调用设置占位符参数方法, 需要传两个参数:
第一个参数: 占位符索引值, 第几个 ? , 就写几, 从1开始数
第二个参数: 占位符的值, 设置什么类型的参数, 就用什么类型的方法

ResultSet:
由Statement执行查询sql之后返回的结果集
返回boolean类型 next()-->判断结果集是否有下一行数据
获取数据
resultSet.getString()--->方法可以传字符串, 表示表中字段的名字, 也可以传整数, 表示第几列
resultSet.getInt()
resultSet.getDate()
...
通过对各种方法的重写来获取结果集中的数据

java连接数据库的代码
定义四个属性: username, password, url, driver
不用记住, 知道写什么东西并且在哪能找到就行
1, 类加载器去加载数据库的驱动程序
Class.forName(dirver);
2, 直接调用DriverManager的静态方法getConnection()获取连接
Connection conn = DriverManager.getConnection(url, username, password);

原文地址:https://www.cnblogs.com/ziyanxiaozhu/p/8145510.html