zoukankan      html  css  js  c++  java
  • JDBC基础

    JDBC


    补充:Jabc相关类介绍

    1.Connection类

    a.用于代表数据库的链接,客户端与数据库所有交互都是通过connection对象完成的。
    b.主要方法:
    	createStatement():创建向数据库发送sql的statement对象。
    	prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
    	prepareCall(sql):创建执行存储过程的callableStatement对象。
    	setAutoCommit(boolean autoCommit):设置事务是否自动提交。
    	commit() :在链接上提交事务。
    	rollback() :在此链接上回滚事务。
    

    2.Statement类

    a.Statement对象用于向数据库发送SQL语句。
    b.主要方法:
    	executeQuery(String sql) :用于向数据发送查询语句。
    	executeUpdate(String sql):用于向数据库发送insert、update或delete语句
    	execute(String sql):用于向数据库发送任意sql语句
    	addBatch(String sql) :把多条sql语句放到一个批处理中。
    	executeBatch():向数据库发送一批sql语句执行。
    

    3.ResultSet类

    a.ResultSet用于代表Sql语句的执行结果。
    b.Resultset封装执行结果时,采用的类似于表格的方式。
    c.ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
    d.主要方法:
    	获取任意类型的数据:
    		getObject(int index)
    		getObject(string columnName)
    	获取指定类型的数据:
    		getString(int index)
    		getString(String columnName)
    	对结果集进行回滚:
    		next():移动到下一行
    		Previous():移动到前一行
    		absolute(int row):移动到指定行
    		beforeFirst():移动resultSet的最前面。
    		afterLast() :移动到resultSet的最后面。
    

    一、JAVA与Mysql连接

    1.加载驱动程序:

    Class.forName("com.jdbc.mysql.Driver");
    (须导入jar包)
    

    2.获得数据库连接:

    Connection conn=DriverManager.getConnection(url,usr,pw);
    //url:数据库链接
    //user&password:数据库登录用户及密码
    

    3.数据库操作:

    //通过Connetion对象获得Statement对象
    Statement stmt=conn.CreateStatment();
    //通过Statement对象获得ResultSet对象
    ResultSet rs1=stmt.excuteQquery("sql查询语句");
    ResultSet rs2=stmt.excuteUpdate("sql改动语句");
    
    补充: 一般多用PreparedStatement,预编译的,效率高,更清晰
    

    二、JDBC调用存储过程

    1.存储过程定义及调用:

    2.调用类型:

    a.JDBC调用无参数的存储过程
    a.JDBC调用带输入参数的存储过程
    a.JDBC调用带输出参数的存储过程
    a.JDBC调用带输入输出参数的存储过程
    

    三、JDBC事务管理

    1.事务管理:

    a.一系列操作打包在一起执行,是一个逻辑单元
    b.原子性:事务是一个完整的操作
    c.一致性:事务完成时,数据必须处于一致状态
    d.隔离性:对数据库操作的并发事务之间是隔离的
    e.永久性:事务完成后对数据库的修改永久保持
    

    2.JDBC对事务管理的支持:

    a.JDBC通过commit()/rollback()来管理事务的操作
    b.事务操作默认是自动提交的
    c.通过setAutoCommit(false)禁止自动提交
    

    三、JDBC与数据库连接池

    1.数据库连接池:

    a.解决数据连接量大的问题
    b.连接池中放一定的Connection,连接满时让其他用户等待
    c.开源数据库连接池:dbcp/c3p0
    

    2.dbcp的使用:

    a.导入jar包	
    b.建立配置文件 dbcp.properties
    c.编写相关类文件
    

    3.c3po的使用:

    a.导入jar包	
    b.建立配置文件 c3p0.properties
    c.编写相关类文件
    

    4.dbcp与c3po的比较:

    四、相关框架介绍

    1.Commons-dbutils:

    核心接口

    2.Hibernate:

    (1)优缺点

    (2)核心接口

    a.Session: CRUD操作
    b.SessionFactory: 初始化Hibernate
    c.Configuaration: 配置及启动Hibernate
    d.Transaction: 事务操作
    e.Query/Criteria: 数据库查询 
    

    3.Mybatis:

    特点

    五、JDBC与Tomcat

    1、在Web项目的WebRoot目录下的META-INF目录创建一个context.xml文件
    2、在context.xml文件配置tomcat服务器的数据源
    3、将数据库的驱动jar文件放置在tomcat的lib文件夹下
    4、在获取数据库连接的工具类(如jdbcUtils)的静态代码块中获取JNDI容器中的数据源
    

    1.Context.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    	<Resource
    		name="jdbc/datasource"
    		auth="Container"
    		type="javax.sql.DataSource"
    		username="root"
    		password="20114665"
    		driverClassName="com.mysql.jdbc.Driver"
    		url="jdbc:mysql://localhost:3306/jdbc_review"
    		maxActive="8"
    		maxIdle="4"/>
    </Context>
    

    2.获取DataSource

    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    dataSource = (DataSource)envCtx.lookup("jdbc/datasource");
  • 相关阅读:
    react 全局监听报错,监听白屏
    【Python】(八)Python中的set集合(每个人都是唯一的个体)
    【Python】(六)Python数据类型-列表和元组,九浅一深,用得到
    mybatis-spring多数据源配置
    自己动手实现springboot运行时新增/更新外部接口
    自己动手实现springboot运行时执行java源码(运行时编译、加载、注册bean、调用)
    自己动手实现java断点/单步调试(一)
    自己动手实现java断点/单步调试(二)
    Swift 模式下面LLDB 输出对象
    Understanding Swift’s value type thread safety
  • 原文地址:https://www.cnblogs.com/apolloqq/p/6029057.html
Copyright © 2011-2022 走看看