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.1、客户端层:DHTML(HTML、CSS、JS)、Java Application

    从第二重叠开始,位于服务器端

    6.2、web层(表现层):Servlet/JSP —-
接收客户端数据、将数据处理组织展示让客户端、业务层调度 —
Struts
    6.3、业务层(中间层):EJB —–
根据网业务流程 处理客户端提交数据 — Spring
    6.4、数据层(持久层):JDBC接口
——- 完成多少的持久化、从数据库获取数据 — Hibernate/IBatis
    企业里 web层、业务层、数据层
统称为三重合构造 SSH:Struts+Spring+Hibernate

怎么多建筑一个JDBC程序

  1.长建筑环境
    1.1
在(Mysql,SqlServer,Oracle..)等数据库中创造一个数据库暨发明
    1.2
新建Java工程,并且针对不同的数据库程序导入数据库让(maven)

  2.JDBC怎么样贯彻对数据库的操作也?
    2.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
第三步:创建用于为数据库发送Sql的Statement对象,并且发送Sql
      Statement
stmt=conn.cteateStatement();
    2.4 第四步:
通过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对象。

次详解—数据库URL

  1.
URL用来标识数据库的职位,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

    jdbc:mysql://localhost:3306/test?参数名:参数值
    协议 子协议        主机:端口  
  数据库   参数
  2.常用数据库URL地址之写法:
    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是数据库编程中最为要紧之一个目标,客户端和数据库有交互都是透过connection对象好的,这个目标的常用方法:

  createStatement():创建于数据库发送sql的statement对象
  prepareStatement(sql)
:创建于数据库发送预编译sql的PrepareSatement对象
  存储过程

    prepareCall(sql):创建行存储过程的callableStatement对象。

  事务

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

    commit()
:在链接上授业务。
    rollback()
:在这个链接上回滚事务

次详解-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
对象保障了一个对表格数据行的游标,初始的时光,游标在第一实践之前,调用ResultSet.next()
方法,可以假设游标指向具体的数实施,进而调用方法获得该行的数目。

  2.ResultSet既用于封装执行结果的,所以该目标提供的大多数智还是用于获取数据的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对象,它是那个稀少的资源,用完后要及时放,如果Connection不克马上、正确的闭馆,极容易导致系统宕机。Connection的动条件是尽可能晚创建,尽量早的放。
  3.
吗保资源自由代码能运行,资源自由代码也决然要在finally语句被。

JDBC操作数据库Demo

  开发条件 MyEclipse
  数据库 MySql
  下载地址:

相关文章