java——数据库操作

1.JDBC的驱动程序有几种

1>JDBC-ODBC

依靠ODBC驱动器和数据库通信,将ODBC二进制代码加载到使用该驱动程序的客户机上

2>本地API

把客户机的API上的JDBC调用转换为Oracle,DB2或其他DBMS的调用

3>JDBC网络驱动程序

将JDBC转换为与DBMS无关的网络协议,又被某个服务器转换为一种DBMS协议。

4>本地协议驱动

将JDBC直接转换为DBMS所使用的网络协议,允许客户机上直接调用DBMS服务器

2.存储过程

调用无参数的存储过程

create procedure insertProcedure as begin insert into tb values(‘‘);end;

DriverManager.getConnection().prepareCall("{call insertProcedure()}");//调用存储过程

调用有参数的存储过程

create procedure validateSelect

@userName varchar(20)

as select * from tb where [email protected]

DriverManager.getConnection().prepareCall("{call validateSelect(‘mr‘)}");调用存储过程

3.

数据:数据库存储的基本对象,包括数字文字图形图像等

数据库:有组织有共享的数据集合

数据库管理系统:数据库系统核心软件,在操作系统支持下操作。数据定义,数据操作,运行管理,建立维护等

数据库系统:引入数据库后的系统,包括数据库,数据库管理系统

4.Statement和PreparedStatement区别

Statement用于执行静态SQL,必须事先准备好

PreparedStatement表示预编译,解析编译,放命令缓冲区。运行同一个PreparedStatement对象时,只解析不编译,减少编译次数

5.事务处理

setAutoCommit()事务自动提交

rollback()事务回滚

commit()事务手动提交

6.获得表结构

connection----createStatement()----executeQuery()----

getMetaData()----getColumnCount()----

getColumnName(i)

getColumnTypeName(i)

ResultSetMetadata   获取关于ResultSet对象中列出的类型和属性的信息

ResultSet  保存查询数据的结果集

7.数据库存储图片

SQL Server:Image

MySQL:Blob img=rs.getBlob("picture")---new Image(img.getBytes(1,(int)img.length()))

in=FileInputStream(new File(filepath))

setBinaryStream(2,in,(int)new File(filepath).length())

8.SQL优化

1>主键长度不要太长

2>长度固定的字符字段应使用char或者nchar

3>长度不固定----varchar或者nvarchar

4>对可有可无的字段应该给出一个默认值

5>对查询频率高的字段建立索引

6>避免使用like,in,exists,not,<>,!>,!<等

7>避免where中使用函数

8>使用join和子查询时,优先考虑join

9>少用distinct,order by,联合查询union all少用union

10>尽量使用存储过程

9.MYSQL中文乱码

1>设置数据表及其字段的编码为utf-8

2>指定数据连接字符串的参数,指定向MYSQL数据库服务器发送SQL语句的编码方式一样为utf-8

10.statement----connection.createStatement()

statement.executeUpdate()        statement.executeQuery()

insert into table(name,price) values (‘‘,‘‘)                            while(rs.next())rs.getInt(1),rs.getFloat(3),rs.getString().trim()

11.纯文本存入和读取数据库

存入:

数据表中存储大文本文件的列设置为TEXT类型,fileChooser.getSelectedFile().getAbsolutePath()

setFileFilter(filter)

insert into tb_text (text) values (?)

connecttion.prepareStatement(sql).setAsciiStream(1,in,(int)file.length()).executeUpdate()

通过流将数据传到数据库,流既可以是java流对象,也可以是实现标准接口的子类

读取:

select text from tb_text

conn.prepareStatement(sql).executeQuery().next().getAsciiStream(1)

ResultSet             InputStream in--BufferReader(new InputStreamReader(in))----readLine()

12.获取数据库中所以表

JDBC中的DatabaseMetaData对象,getTables(要检索的类别名称,模式名称,要检索的表名称,表类型的类别)

connection.getMetaData()----getTables(null,null,"%",{"TABLE"})----rs.getString(3)用户表名称

DatabaseMetaData                ResultSet

Oracle :select table_name from user_tables

13.如何实现MYSQL的备份与恢复

备份:mysqldump-----Runtime类输入cmd命令,执行mysqldump

String back="mysqldump -u"+username+" -p"+password+""+database;

Process p=Runtime.getRuntime().exec("cmd.exe /c"+back);

new BufferedReader(new InputStreamReader(p.getInputStream(),"utf-8"))--readLine

new OutputStreamWriter(new FileOutputStream(path),"utf-8")---writer(sb.toString())

恢复:从备份文件中读取SQL语句,并使用runtime类向当前环境输入cmd命令,并执行MySQL命令

String back="mysqldump -u"+username+" -p"+password+""+database;

Process p=Runtime.getRuntime().exec("cmd.exe /c"+back);

p.getOutputSream()

new BufferedReader(new InputStreamReader(new FIleInputSTream(pt),"utf-8"))----readLine

new BufferedWriter(new OutputStreamWriter(p.getOutputStream(),"utf-8"))

14.多表连接查询

A,B公共部分C

1>等值连接查询(内连接)table1 inner join table2 on

只返回所有匹配的行,包括重复列,都存在的才查询出来----C

2>外连接(left join ,right join)table1 right join table2 on

对内连接的扩展,查询完整性,不丢失数据

left join:A+C

right join:B+C

3>完全连接--full join

A+B,不符合条件的数据,左右表相应列填上null值

(union all保留重复列)select * from tb_dept union select * from tb_dept1

15.日期存储

java的Date——>数据库的datetime

conn.prepareStatement()---setTimestamp(1,new Timestamp(format.parse(String).getTime()))----executeupdate()

conn.createStatement().executeQuery("select * from tb_date")----getMetaData().getColumnCount()

new Timestamp(rs.getDate(1).getTime()).toString().subString(0,10)

Oracle:todate

SQL Server:CONVERT

时间: 2024-08-18 05:16:35

java——数据库操作的相关文章

Java数据库操作类演示

只在mysql上测试过,不知道算不算好使?1. [代码][Java]代码     package org.load.demo; import java.io.IOException;import java.util.List;import java.util.Map; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRe

Java数据库操作

一.JDBC 1.JDBC Java数据库连接,用于Java程序中实现数据库操作功能,java.sql包中提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口及类. 2.操作步骤 加载JDBC驱动器,将JDBC驱动加载到classpath中. 加载JDBC驱动,并将其注册到DriverManager中.一般使用反射机制class.forName(String driverName) 建立数据库连接,取得Connection对象.一般通过DriverManager.g

Java数据库操作(MySQL与SQLserver)

在java编程开发中,数据库的开发是重头戏. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品: SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS). Jar包下载 java数据库的连接需要依赖外部jar包,所以需要下载后进行:构建路径->配置构建路径->库->添加JAR->应用->确定 SQLserver: https://blog-static.cnblogs.com/files/d

java数据库操作有关的杂记

一 JDBC就是一些数据库编程的API啦,封装好了一系列的对数据库的操作. JDBC可以创建与数据库的连接,发送sql语句,处理sql语句的返回结果 二 然后,光有JDBC还是不够的 我们还需要java连接数据库的驱动(这个驱动呢,把java和数据库连接起来,相当于是在数据库里面插了一根管子,我的理解,哈哈,驱动这个东西比较底层,原理什么的我现在也不太懂,明白的希望告诉我~) 这个驱动我用的是开源的 jtds类的驱动,把这个jar包放到lib目录下就可以啦~ 三. 然后java程序的db目录下会

Java数据库操作大全

1.提取单条记录 [java] view plain copy print? //import java.sql.*; Connection con=null; Statement stmt=null; ResultSet %%6=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:"+%%1; con=DriverManager.getConnection

java程序员从笨鸟到菜鸟之(七)一—java数据库操作

 本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 数据库访问几乎每一个稍微成型的程序都要用到的知识,怎么高效的访问数据库也是我们学习的一个重点,今天的任务就是总结java访问数据库的方法和有关API,java访问数据库主要用的方法是JDBC,它是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,下面我们就具体来总结一下JDBC 一:Java访问数据库的具体步骤: 1 加载(注册)数

【转载】java数据库操作

数据库访问几乎每一个稍微成型的程序都要用到的知识,怎么高效的访问数据库也是我们学习的一个重点,今天的任务就是总结java访问数据库的方法和有关API,java访问数据库主要用的方法是JDBC,它是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,下面我们就具体来总结一下JDBC 一:Java访问数据库的具体步骤: 1 加载(注册)数据库  驱动加载就是把各个数据库提供的访问数据库的API加载到我们程序进来,加载JDBC驱动,并将其注册到Dri

Java 数据库操作

JDBC连接数据库 首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/ 这是MySQL官方提供的连接方式: 解压后得到jar库文件,需要在工程中导入该库文件 下面是百度经验分享方式,不再介绍 [http://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html] JDBC操作数据库步骤: import java.sql.Connection; import java

JAVA数据库基本操作 (转)

JAVA数据库基本操作指南   Java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接. 一.取得数据库连接 1.用DriverManager取数据库连接 例子: String     className,url,uid,pwd;        className = "oracle.jdbc.driver.OracleDriver";    url =     "jdbc:oracle:thin:@127.0.0.1:1521: