Java学习笔记之_JDBC

JDBC简介

  1.SUN商行为了简化,统一数据库的操作,定义了一套Java操作数据库的标准,称之为JDBC
  2.数据库驱动
  3.JDBC全名叫:JAVA DataBase
Commectivity(java数据库连日来)
  4.组成JDBC的三个包(1 java.sql,2
javax.sql)。

  5.DriverManager->Connection->Statement(PreparedStatement,CallableStatement)->ResultSet

  6.JavaEE软件分为了多个层次:

    6.壹 、客户端层:DHTML(HTML、CSS、JS)、Java Application

    从第③层初步,位于服务器端

    6.贰 、web层(表现层):Servlet/JSP —-
接收客户端数据、将数据处理组织显示给客户端、业务层调度 —
Struts
    6.③ 、业务层(中间层):EJB —–
依据系统工作流程 处理客户端提交数据 — Spring
    6.④ 、数据层(持久层):JDBC接口
——- 达成多少的持久化、从数据库获取数据 — Hibernate/IBatis
    集团里 web层、业务层、数据层
统称为三层组织 SSH:Struts+Spring+Hibernate

怎样搭建贰个JDBC程序

  1.搭建环境
    1.1
在(Mysql,SqlServer,Oracle..)等数据库中创建2个数据库和表
    1.2
新建Java工程,并且针对差异的数据库程序导入数据库驱动(maven)

  2.JDBC怎么着落实对数据库的操作呢?
    2.1
第1步:在先后中装载驱动
      2.1.1
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      2.1.2
Class.forName(“com.mysql.jdbc.Driver”); //开发中国建工业总会公司议利用
    2.2
第贰步:获得数据库的连年
      String url=””;
//数据库访问路径,唯一标示数据库的职位
      String user=””;
//用户名
      String pass=””;
//密码
      Connection
conn=DriverManager.getConnection(url,user,pass);
    2.3
第3步:创制用于向数据库发送Sql的Statement对象,并且发送Sql
      Statement
stmt=conn.cteateStatement();
    2.4 第5步:
通过Sql操作数据库
      String sql=””;
      ResultSet
rs=stmt.executeQuery(sql); //获得数码结果集
    2.5 第六步:释放财富

      关闭能源的各种一般为:先开的后关门,后开的先关闭

      ResultSet->Statement->Connection

  3.读取配置文件(*.properties)代码如下:
    ResourceBundle
bundle=ResourceBundle.getBundle(“*”);
    String
driver=bundle.getString(“driver”);

先后详解—DriverManager

  1.Jdbc顺序中的DriverManager用于加载驱动,并创办与数据库的链接,那么些API的常用方法:
    DriverManager.registerDriver(new
Driver())
    DriverManager.getConnection(url,
user, password),

    备注:在实质上支出中并不推荐使用registerDriver方法注册驱动。原因有二:
    1.1
查看Driver的源代码能够见见,假诺运用此种格局,会导致驱动程序注册五回,也正是在内部存款和储蓄器中会有多个Driver对象。
    1.2
程序重视mysql的api,脱离mysql的jar包,程序将不可能编写翻译,未来程序切换底层数据库将会分外勤奋。
  2.
推荐介绍加载驱动方式:Class.forName(“com.mysql.jdbc.Driver”);

    选取此种格局不会造成驱动对象在内部存款和储蓄器中重复出现,并且利用此种方式,程序仅仅只须要一个字符串,不须求注重具体的驱动,使程序的灵活性更高。
  3.
同一,在支付中也不建议使用具体的驱动类型指向getConnection方法重返的connection对象。

程序详解—数据库U汉兰达L

  1.
U库罗德L用来标识数据库的任务,程序员通过U奇骏L地址告诉JDBC程序连接哪个数据库,U奥迪Q5L的写法为:

    jdbc:mysql://localhost:3306/test?参数名:参数值
    协议 子协议        主机:端口  
  数据库   参数
  2.常用数据库UPRADOL地址的写法:
    2.1
Oracle:jdbc:oracle:thin:@localhost:1521:sid
    2.2
SqlServer:jdbc:microsoft:sqlserver://localhost:1433;
DatabaseName=sid
    2.3
MySql:jdbc:mysql://localhost:3306/sid
    Mysql的url地址的简写形式:
jdbc:mysql:///sid
    2.4
常用属性:useUnicode=true&characterEncoding=UTF-8

程序详解—Connection

  1.
Jdbc先后中的Connection,它用于代表数据库的链接,Collection是数据库编制程序中最重庆大学的3个对象,客户端与数据库全数交互都以经过connection对象达成的,那个指标的常用方法:

  createStatement():成立向数据库发送sql的statement对象
  prepareStatement(sql)
:创制向数据库发送预编写翻译sql的PrepareSatement对象
  存款和储蓄进程

    prepareCall(sql):制造执行存款和储蓄进度的callableStatement对象。

  事务

    setAutoCommit(boolean autoCommit):设置工作是或不是自动提交。

    commit()
:在链接上提交业务。
    rollback()
:在此链接上回滚事务

Oracle,程序详解-Statement

  1.
Jdbc先后中的Statement对象用于向数据库发送SQL语句,
Statement对象常用方法:
  1.1 执行SQL语句
    executeQuery(String sql)
:用于向数据发送查询语句,重临ResultSet结果集

    executeUpdate(String sql):用于向数据库发送insert、update或delete语句,重回int,受影响的记录
    execute(String
sql):用于向数据库发送任意sql语句,重临bool
  1.2
援救批处理,三回性执行多条SQL
    addBatch(String sql)
:把多条sql语句放到两个批处理中。

    executeBatch():向数据库发送一批sql语句执行。

次第详解-PreparedStatement

  1.
PreperedStatement是Statement的子类,它的实例对象足以经过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:
  2.
PreperedStatement可避防止SQL注入的标题。
  3.
Statement会使数据库频仍编写翻译SQL,也许导致数据库缓冲区溢出。PreparedStatement
可对SQL进行预编写翻译,从而抓牢数据库的实践作用并且PreperedStatement对于sql中的参数,允许利用占位符的方式开始展览替换,简化sql语句的编排。
  例如:
    String sql=”select * from users
where name=? and pwd=?”;
    try{
      PreparedStatement
pstmt=conn.prepareStatement(sql);

      pstmt.setString(1,userName);

      pstmt.setString(1,password);
      ResultSet
rs=pstmt.executeQuery();
    }
  备注:
    (1).
必须在取得PrepareStatement对象时,传入SQL实行预编写翻译
    (2). 传值,索引从1开始
    (3).
pstmt执行SQL的时候,一定毫无将预编写翻译的SQL传入,不然会出错

程序详解-ResultSet

  1.
Jdbc主次中的ResultSet用于代表Sql语句的实施结果。Resultset封装执行结果时,选用的好像于表格的点子。ResultSet
对象保险了3个针对表格数据行的游标,开始的时候,游标在第③行此前,调用ResultSet.next()
方法,能够使游标指向具体的数量行,进而调用方法赢得该行的数码。

  2.ResultSet既然用于封装执行结果的,所以该目的提供的当先1/2主意都是用以获取数据的get方法:
    2.1 获取任意档次的多寡
      getObject(int
index)
      getObject(string
columnName)
    2.2
获取钦赐项目的数码,例如:
      getString(int
index)
      getString(String
columnName)
  3.
即便rs再次来到一行数据,在开发中,平日应用if(rs.next())来顶替while(rs.next());
  4.
ResultSet还提供了对结果集举办滚动的主意:
    4.1
next():移动到下一行
    4.2
previous():移动到前一行
    4.3 absolute(int
row):移动到钦点行
    4.4
beforeFirst():移动resultSet的最前面。
    4.5 afterLast()
:移动到resultSet的终极面。

次第详解—释放财富

  1.
Jdbc程序运营完后,切记要自由程序在运营进程中,创建的那么些与数据库举办互动的靶子,这个指标一般是ResultSet,
Statement和Connection对象。
  2.
专程是Connection对象,它是12分难得的财富,用完后务必霎时释放,如若Connection没办法即时、正确的关门,极易导致系统宕机。Connection的选用口径是硬着头皮晚创制,尽量早的释放。
  3.
为力保能源自由代码能运维,财富自由代码也迟早要放在finally语句中。

JDBC操作数据库德姆o

  开发环境 MyEclipse
  数据库 MySql
  下载地址:

相关文章