数据库基本介绍以及在java中的操作

数据库基本介绍以及在java中的操作
数据库基本介绍以及在java中的操作

JDBC:通常翻译为“JAVA DATABASE CONNECTION”,JAVA数据库连接。而实际上,JDBC早已被SUN注册为商标。对于开发人员有什么好处?不需要了解各个不同的数据库,只需要了解JDBC接口,了解接口以后就能够使用各厂商的实现。

于是产生以下概念:

? JDBC:本质就是SUN提出的一系列数据库相关的接口。

? 驱动程序:厂商对JDBC接口作出不同实现,所以不同数据库有不同的驱动(JAR包)。

一个程序是否使用接口,是面向过程与面向对象的一个重要标志!

对于数据库,可以随时由SQLServer切换到Oracle,而JDBC相关代码并不会影响。SUN利用接口的特点,完成JDBC的开发以及使用。

一般来讲,接口使用时,会涉及到以下三方

? 接口的定义方

? 接口的实现方(可能很多实现,以便切换)

? 接口的调用方:接口a = new 实现类();

? 如何访问数据库?只能通过SQL来访问(DML(增删改查)+DDL(创建)+DCL(权限))。

? JAVA程序如何访问数据库?只能通过操作SQL来访问数据库。在JAVA,访问数据库只有一种技术,那就是JDBC。(接口只需要一个!)

什么是持久化:将一个东西永久保存。

为什么要对象持久化,即为什么要将对象的进行保存?

因为关机就没了。

保存的方式(也是本书不叫数据库的原因)

1、序列化(二进制文件,用记事本打开是乱码)

2、文件(XML文件)

xxx

缺点:效率低,不安全,没有事务功能(查资料:什么是事务,示例:张三借钱给李四,张三钱减少和李四钱增加,这两个步骤要同时执行成功,或者同时失败,这种机制就叫事务)。

3、数据库:将对象所携带的数据保存到表中。

企业需要:高效率、高安全、事务控制、灵活计算…

一般人开发不了,只能花钱购买。所以数据库就是一套软件。

JAVA:10000个学生对象,找出其中有几种姓氏,各有多少个。

缺点:算法复杂,关键是效率低。

而这些缺点的解决就是数据库所提供的功能。

小结:数据库只是持久化方式的一种,持久化方式还有XML和序列化。(比例:XML:DB = 2:8)

基本概念

? 数据库:相关数据的集合。对于计算机,就是存储数据的文件。

? Database,简称:DB。

? 数据库管理系统:管理包含数据的文件以及其它相关文件的软件,就是DBMS,Database Manage System。

? 关系型数据库:保存各实体(与对象概念相同)以及实体之间关系的数据库。通常以表格形式保存数据。Relational DBMS,简称RDBMS。

根据将相关数据保存在一起方式的不同分为:

? 层次模型:

如:网页的节点之间的关系、目录之间的关系。

在后面将会讲到,所使用XML的就是一种流行的层次型数据库。

? 网状模型:

? 关系型:

以表格方式将数据分别保存,其中的内容包含实体和实体关系两种。

对比:保存班级和学生信息。

层次型:

张三

张三丰

李四

杨五郎

层次:一个学校有多个班,每个班有多个学生,一个学生只能在一个班。关系型:

班级表:

班级编号班级名称

1 一班

2 二班

学生表:

学号姓名班级编号

5001 张三 1

5002 张三丰1

5101 李四 2

5102 李四娘2

关键问题:从表格中看出哪些问题:

有哪些实体(对象):

班级实体:一班,二班

学生实体:张三、张三丰、李四、李四娘

有哪些实体关系:学生实体与班级实体有什么关系?

通过学生表.班级编号,表示哪个学生在哪个班。

班级表:

班级编号

1

2

上面的编号1代表一班,2代表二班。所以这个数字代表了一个实体。在DB中,这个班级编号很特殊,叫做主键,Primary key。主键作用就是标识一个实体,即给一个对象设置一个编号。

一个人在社会上的主键:是身份证。

一个人在学校的主键:学号

一个人在工作单位的主键:工号

一个部门在公司的主键:部门编号

啤酒在超市的主键:商品编号

……

为什么要设置主键:主要就是标识一个实体(对象),标识的目的就是让这个实体与众不同,与众不同的目标是计算机能够认别与区别。

没有编号,当班上有两个姓名相同的同学时,计算机就无法区别了。

学号姓名班级编号

5001 张三 1

5002 张三丰1

5101 李四 2

5102 李四娘2

一个实体使用了另一个实体的编号(学生使用了班级编号),那么这个被引用的编号叫外键,Foreign key。外键一定是另一个实体的主键(外键=外面实体的主键)。(外键相当于JAVA程序中的“引用”)。

小结:

·数据库= 实体+ 关系

·实体用主键来标识,关系用外键来反映。

DBMS:数据库管理系统,是一个特殊的软件。如何操作?

1、通过GUI界面,鼠标操作。

2、通过代码,操作数据库的代码叫做SQL,结构化查询语言,Structrure Query Language。

查询语言,是不是只能查询?

并不是,它能操作数据库的一切。一切:

·增删改查:增加记录,删除记录……

·建库,建表……

·创建用户,设置权限:SQLServer默认用户是sa,system administrator。

根据功能SQL分类:

·建库建表:DDL,数据定义语言。如定义表格的结构。

·增删改查:DML,数据操作语言,在操纵数据。

·设置权限:DCL,数据控制语言,控制数据库的访问。

SQL叫结构化查询语言,指的是以查询为主的语言。

用SQL可以操作数据库,在JAVA中如果能使用SQL,就能使用数据库。

在JAVA中,使用SQL语言的技术叫JDBC,JAVA Database Connection,JAVA 数据库连接。注意,JDBC也是SUN一个产品商标。

结构:

JAVA程序→JDBC→SQL→数据库

将数据保存到数据库中的软件,叫做基于数据库的业务系统。

关键字:关系型数据库层次型数据库XML数据库

实体关系有哪些关系:一对一,一对多,多对多。明天讲。

SUN利用接口的特点,完成JDBC的开发以及使用。

一般来讲,接口使用时,会涉及到以下三方

? 接口的定义方

? 接口的实现方(可能很多实现,以便切换)

? 接口的调用方:接口a = new 实现类();

? 如何访问数据库?只能通过SQL来访问(DML(增删改查)+DDL(创建)+DCL(权限))。

? JAVA程序如何访问数据库?只能通过操作SQL来访问数据库。在JAVA,访问数据库只有一种技术,那就是JDBC。(接口只需要一个!)

如何进行JDBC开发?

几个步骤:

? 加载驱动

? 指定连接信息

? 登录,即与数据库连接

? 最后要关闭

? 加载驱动

代码:Class.forName("net.sourceforge.jtds.jdbc.Driver");

(在创建Driver类对象同时,利用其中的静态代码完成一系列复杂的操作,具体的理解就是所需的类全部加载)。

要点

1、不同的数据库不同的驱动,即不同的jar包。

2、不同的数据库不同URL

? 指定数据库位置

数据库分为本地数据库和网络数据库。

对于任何一个网络程序,必须有IP地址和端口。IP地址指明是哪一台计算机,端口指明是这台计算机分配的什么资源。计算机比喻为大楼,端口就是各房间(程序)的窗口(端口)。

对于数据库,还要指明是哪一个数据库。因为同一台计算机有多个数据库。

另外,在这个世界上有很多种语言,在网络也有很多语言,这个语言就是协议。

? 代码:String url = "jdbc:jtds:sqlserver://127.0.0.1:1433/instant";

jdbc:jtds:sqlserver:协议

127.0.0.1:1433/instant:IP、端口、数据库名

不管是哪种数据库,都必须包含以上4个部分。

现在,驱动有了,硬件条件具备;数据库的位置以及用户名和密码也有了,软件条件具备。可以连接数据库。

在JAVA当中,一切皆对象。所以连接数据库以后得到一个连接对象。

连接:Connection

这个对象如何获得?

驱动程序中有一个驱动管理器,对应DriverManger,由它提供。

Connection conn =

DriverManager.getConnection(url, user, password);

该方法执行成功以后,就返回一个Connection对象。

连接是一种宝贵的资源,所以必须珍惜。要尽快释放。因为任何一个数据库的连接数也不会太多,通常不能超过255。通常在大型WEB应用中,通过连接池来解决这个问题。

SQL按有无返回数据分,分为两大数:增删改和查询。

强调:只有查询,才有返回数据库中数据!

第一类:执行增删改以及DDL(createl,drop……)

步骤

? 定义sql字符串,即sql语句。

? 定义一个执行sql语句的对象,叫语句对象

语句:Statement

谁来创建这个对象?现在只有一个连接对象,只能是它。

? 固定使用st.executeUpdate()方法。

思考:执行了增删改语句以后,有没有什么东西可以返回的?

因为总应该告诉你sql执行成功没?

在JAVA程序中,一条语句执行成功,通常使用异常。不需要返回true/false。其实数据库要返回插入了多少条记录、或者删除、或者更新了多少条记录?

第二类:返回表格中的数据

同上。

? 固定使用st.executeQuery()方法。

? 查询返回的数据封装在结果集中。结果集: ResultSet rs

rs包含多个行的数据,每个行有多个列的数据,对应表格理解。

只能通过循环取出。

外层:循环行{

内层:循环列{

}

}

rs.next() :指针(又叫游标)移到下一条记录,如果有数据则返回true rs.getInt(1) :从第1个列中取出数据,取出后类型转化为int。

只有数据库相关的索引是从1开始!

rs.getString("name") :

从name字段取出数据,然后转化为String

即:取数据有两种方法,指定列的位置和指定列的名称。

任务:实训3.2(建表,插入数据,以及查询)用JDBC完成.

看JDBC录像。

----------------------------------------------------------------------------------

添加多个值

就还是不懂怎么JDBC代码实现sql

'"+region+"'这个讲下吧没想通

回顾:

用JDBC代码实现sql

根据(有无返回表格数据)分,sql可以分为两大类:

一大类:查询,select。

如:select * from 学生表

二大类:非查询(增删改,DDL……)。

根据(是否是操作表格数据),分为两个小类

2.1、DML:增删改

2.2、DDL:Create,Drop

代码的对应实现:

一大类:查询,select,返回表格数据。返回的数据封装在结果集(ResultSet)中;要通过循环,才能够从表格中取出数据。

import java.sql.*;

Class.forName(驱动名);//并且项目中指定jar包

Connection conn =

DriverManager.getConnection(url,user,password);

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("select * from t_stu");

注意,执行了上面的话以后,在内存中数据如图所示:

指针/cursor/游标

学号

姓名

说明

在执行executeQuery以后,指针指向第0条。

张三

执行rs.next(),指针移到下一条,如果有数据就返回true

2

李四

3

王麻子

while(rs.next()){

//第一次执行

游标

字段:学号

位置:1

字段:姓名

位置:2

1

张三

int 学号= rs.getInt(1);

int 学号= rs.getInt("学号");

从数据的角度,不从数据类型的角度,数字是不是字符串的一部分?String 学号= rs.getString(1); //数值字段可以作为String类型取出

String 姓名= rs.getString(2);

int 姓名= rs.getInt(2);//不是所有的字串都能转化为数字!

当循环完成,指针又下移:

游标

字段:学号

位置:1

字段:姓名

位置:2

1

张三

2

李四

3

王麻子

取出最后一条记录以后:

游标

字段:学号

位置:1

字段:姓名

位置:2

1

张三

2

李四

3

王麻子

此时,由于没有数据,所以rs.next()返回false,于是退出循环。

rs.close();

st.close();

conn.close();

二大类:非查询(增删改,DDL……)。

Statement st = conn.createStatement();

//对于增删改,返回操作的记录数

int r = st.executeUpdate(sql);

//对于DDL,如create table语句,固定返回0。

int r = st.executeUpdate(sql);

st.close();

conn.close();

小结:只有理解sql语句的分类,才能够很好地理解JDBC实现代码。

一类

select

二类

非select

2.1、增删改

2.2、DDL

扩展:如何得到查询语句中包含的列的个数?

示例代码:

ResultSet rs = st.executeQuery("select …");

//通过数据集元数据对象获取列信息

ResultSetMetaData rmd = rs.getMetaData();

while(rs.next()){

for(int i=0;i

print(rs.getObject(i+1));//取当行的第i列的值,作为Object

print(rs.getString(i+1));//取当行的第i列的值,作为String

}

}

自学(查教材):通过自动编号可以在数据库中自动生成主键(如学生信息):create table t_stu(

s_id int identity primary key,

s_name varchar(8)

);

在JDBC中执行:

insert into t_stu(s_name) values('a');

任务是在JDBC中打印出数据库所产生的编号。注意,数据库是一个网络程序,可能有很多人在同时添加数据,只能返回自己的sql所产生的自动编号。

Java中连接MySql数据库的几种方法

JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。

第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.360docs.net/doc/8315806487.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

完整java连接数据库步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过https://www.360docs.net/doc/8315806487.html,ng.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类,加载驱动失败!"); e.printStackTrace() ; } 成功加载后,会将Driver类的实例注册到DriverManager类中。 2、提供JDBC连接的URL ?连接URL定义了连接数据库时的协议、子协议、数据源标识。 ?书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以jdbc开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。 数据源标识:标记找到数据库来源的地址与连接端口。 例如:(MySql的连接URL) jdbc:mysql: //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 3、创建数据库的连接 ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。 ?使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

java数据库连接方法

一、问题引入 在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为“数据库驱动jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。在java程序中访问数据库,做数据库连接时,可以采用两种方式: 1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。 例子: 2、使用数据库连接池 目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。 该连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进 行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需 要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用 户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问 题,通过管理连接池中的多个连接对象(connection),实现connection重复利用。 从而,大大提高了数据库连接方面的性能。 该连接池的功能是: 负责创建,管理,释放,分配数据库连接即(connection)。首先,负责创建相应 数目的数据库连接对象(connection)对象,并存放到数据库连接池(connect pool)中。当用户请求数据库连接时,该连接池负责分配某个处于空闲状态的数据库连接 对象;当用户发出释放该数据库连接时,该连接池负责将该连接对象重新设置为空

Java连接数据库全过程

Java连接数据库全过程 第一次用java连接数据库,开始竟然不知道从哪里下手,后看了很多书,请教了很多高手,忙了一天才连接上,所以我把这个详细的过程整理出来贡献给大家,不当的地方,希望大家告诉我,一定更正。 要准备的软件: 1.操作系统:windows xp或其他系统; 2.java运行环境:JDK 官方下载网址:https://www.360docs.net/doc/8315806487.html,/javase/downloads/index.jsp 3.数据库:SQL server 2000; 下面是java连接数据库需要更新的东西,不然连不上的: 1安装SQL SP3补丁:“SQLSERVER2000SP3补丁.exe”,和普通的程序安装一样。 2.把3个jar包:“msbase.jar”,“mssqlserver.jar”,“msutil.jar”加到classpath中,具体的安装方法我已经详细整理:“Java连接数据库配置——加载jar包”。 Java连接数据库的核心程序文件:"TestConnect.java"如下 //TestConnect.java import java.sql.*; public class TestConnect { private Connection con=null;//Connection:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 String dbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//声明数据库驱动名(这个是微软的驱动名) //String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";//sun驱动程序名 //String dbUrl="jdbc:odbc:lhs"; String dbUrl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lhs";//数据库驱动程序URL,和相应的驱动配套。 String dbUser="sa";//定义数据库登陆用户名 String dbPasw="123";//定义相应用户的登陆密码 //创建数据库连接 public void connect()

Java连接MySql数据库入门操作

这是连接后进行一些简单操作后的结果: Succeeded connecting to the Database! 学号姓名 2011001 张三 2011002 李四 2011003 王五 先去下载MySql并安装好。安装MySql的方法在 https://www.360docs.net/doc/8315806487.html,/view/9cc0fcc76137ee06eff918d5.html 然后下载jdbc驱动。 https://www.360docs.net/doc/8315806487.html,/downloads/connector/j/ 下载好了解压即可。把那个zip文件也放到解压后的目录中,方便管理使用。 我使用的是eclipse,我要导入包,先进行一些设置。

安装jre。 添加外部jar文件 打开刚才解压得到的jar文件。

打开的效果。 使用mysql创建数据库,进行测试。 mysql> use test; Database changed mysql> create table student ( -> sno char(7) not null, -> sname varchar(8) not null, -> sex char(2) not null -> ); Query OK, 0 rows affected

mysql> insert into student values -> (2011001, '张三', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011002, '李四', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011003 , '王五', '男'); Query OK, 1 row affected mysql> select * from student; +---------+-------+-----+ | sno | sname | sex | +---------+-------+-----+ | 2011001 | 张三| 男| | 2011002 | 李四| 男| | 2011003 | 王五| 男| +---------+-------+-----+ 3 rows in set mysql> 编码测试。 输入下面源代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { public static void main(String[] args){ try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // URL指向要访问的数据库名test String url = "jdbc:mysql://127.0.0.1:3306/test"; // MySQL配置时的用户名 String user = "root";

java连接到各种数据库的方法

此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略 1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance (); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库 Class.forName("https://www.360docs.net/doc/8315806487.html,rmix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url);

JAVA数据库基本操作增删改查(精)

JAVA 数据库基本操作, 增删改查 package mypack; JAVA 数据库基本操作, 增删改查 import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; public class DbOper {//查询多行记录public ArrayList select({Connection conn =null; ResultSet rs =null; try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(; conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =new Titles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione { e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione { e.printStackTrace(;}}//TODO 自动生成catch 块 return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null; ResultSet rs =null; try {PreparedStatement pstmt =null; Titles t =new Titles(;

JAVA中常见数据库操作API

这篇文章仅用于补充:JAVA代码审计的一些Tips(附脚本)一文中关于SQLi中不足部分 JDBC常用API DriverManager:用于管理JDBC驱动的服务类。主要功能是获取Connection对象 public static Connection getConnection(String url, String user, String password) throws SQLException //该方法获得url对应数据库的连接 Connection:代表数据库连接对象。每一个Connection代表一个物理连接会话 Statement createStatement() throws SQLException; //该方法返回一个Statement对象 PreparedStatement prepareStatement(String sql)throws SQLException; //该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译 CallableStatement prepareCall(String sql) throws SQLException; //该方法返回CallableStatement对象,该对象用于调用存储过程 // 控制事务的相关方法 Savepoint setSavepoint() throws SQLException //创建一个保存点 Savepoint setSavepoint(String name) throws SQLException; //以指定名字来创建一个保存点; void setTransactionIsolation(int level) throws SQLException; //设置事务的隔离级别; void rollback() throws SQLException; //回滚事务; void rollback(Savepoint savepoint) throws SQLException; //将事务回滚到指定的保存点; void setAutoCommit(boolean autoCommit) throws SQLException; //关闭自动提交,打开事务; void commit() throws SQLException; //提交事务; Statement:用于执行SQL语句的工具接口。该对象既可以执行DDL,DCL语句,也可以执行DML语句,还可以用于执行SQL查询 ResultSet executeQuery(String sql) throws SQLException; //该方法用于执行查询语句,并返回查询结果对应ResultSet对象。该方法只能用于执行查询语句 int executeUpdate(String sql) throws SQLException; //该方法用于执行DML语句,并返回受影响的行数;该方法也可用于执行DDL语句,执行DDL语句将返回0 boolean execute(String sql) throws SQLException; //改方法可以执行任何sql语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结果,则返回false PreparedStatement:预编译的Statement对象,它允许数据库预编译sql语句,以后每次只改变sql命令的参数,避免数据库每次都需要编译sql语句,无需再传入sql语句,它比Statement多了以下方法 void setXxx(int parameterIndex, Xxx value): //该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给sql语句中指定位置的参数 Hibernate框架常用API Configuration:负责Hibernate的配置信息。包括运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等和持久化类与数据表的映射关系(*.hbm.xml文件) //属性文件(hibernate.properties): Configuration cfg = new Configuration(); //Xml文件(hibernate.cfg.xml) Configuration cfg = new Configuration().configure(); SessionFactory:Configuration对象根据当前的配置信息生成SessionFactory对象,SessionFactory对象中保存了当前数据库的配置信息和所有映射关系以及预定义的SQL语句,同时还负责维护Hibernate的二级缓存 SessionFactory configuration.buildSessionFactory() 获取SessionFactory对象 Session sessionFactory.openSession() 获取Session对象 Session:是应用程序与数据库之间交互操作的单线程对象。session对象有一个一级缓存,显式执行flush之前,所有的持久层操作的数据都缓存在session对象处。相当于JDBC的Connection //获取持久化对象方法分为get()和load() public Object get(Class clazz, Serializable id); //通过持久化类和主键获取对象 public Object get(Class clazz, Serializable id, LockOptions lockOptions); //通过持久化类和主键、锁选项获取对象 public Object get(String entityName, Serializable id); //通过全类名+主键获取对象 public Object get(String entityName, Serializable id, LockOptions lockOptions); //通过全类名+主键+锁选项获取对象 //load()方法与get()相同,但多了下列方法 public void load(Object object, Serializable id); //通过一个空的持久化类的实例+主键获取对象 //get方法会在调用之后立即向数据库发出sql语句(不考虑缓存的情况下),返回持久化对象; //而load方法会在调用后返回一个代理对象,该代理对象只保存了实体对象的id,直到使用对象的非主键属性时才会发出sql语句. //查询数据库中不存在的数据时,get方法返回null,load方法抛出异常:org.hibernate.ObjectNotFoundException Serializable save(Object object) //保存持久化对象 void update(Object object) //更新持久化对象 void delete(Object object) //删除持久化对象 void saveOrUpdate(Object object) //根据ID判断是save还是update,如果id存在,则为update,若id不存在,即为save Query createQuery(String hql) //执行HQL查询

Java连接MySQL 数据库

Java连接MySQL 数据库的正确操作流程 时间:2010-05-25 15:41 来源:博客园字体:[大中小] 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动MySQL-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的 MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\MySQL-connector-java-5.0.5\MySQL-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT 000.00, 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作

如何成功将Java与mysql数据库连接

Java连接mysql数据库攻略 一.软件下载 Mysql 下载版本:4.1.11 https://www.360docs.net/doc/8315806487.html,/downloads/mysql/4.1.html JDBC驱动 下载版本:3.1.8 https://www.360docs.net/doc/8315806487.html,/downloads/connector/j/3.1.html Mysql界面插件:mysql-front 下载版本镜像:HongKong(我下回来安装就是中文版了) http://www.mysqlfront.de/download.html 二.软件安装 打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”,出现如下界面:

mysql安装向导启动,按“Next”继续

选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom (用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程 在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server (mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation (文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。

java使用jdbc连接数据库的几种方式

编程技术 package db.util; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.util.HashMap; import java.util.List; import java.util.Vector; import https://www.360docs.net/doc/8315806487.html,mons.logging.Log; import https://www.360docs.net/doc/8315806487.html,mons.logging.LogFactory; public class DbUtil { public static final String _DefaultJNDI = "java:/comp/env/jdbc/shcnc"; private static Log log = LogFactory.getLog(DbUtil.class); /** * * Utility function to clean up db usage. * * * @param pResultSet * @param pStmt * @param pConn * * @exception java.sql.SQLException */ public static void cleanup(ResultSet pResultSet, Statement pStmt, Connection pConn) throws SQLException { try { if (pResultSet != null) { pResultSet.close(); pResultSet = null; } // https://www.360docs.net/doc/8315806487.html,("Finished cleaning up connection."); } catch (SQLException e) {

java可视化界面操作数据库编程

天津理工大学实验报告

一、MIS系统 系统名称:学生信息管理系统 操作系统: Window8.1 Java环境; jdk 1.7.0_21 、jre 1.7.0_21 集成开发环境:MyEclipse Professional 2013 数据库软件版本:SQL Server 2010 连接驱动:jdbc-odbc 二、系统主要功能 本项目主要实现了java界面的登录功能,以及登陆后的增删改查功能,主要是对student表实现增加一条学生信息、删除一条学生信息记录、更新学生信息表,以及查询学生信息表的数据 三、数据库结构 1.数据库名称:SchoolDB 学院、成绩、家庭住址等学生基本信息,其中sname为主键且不为空。 四、关键功能界面截图 1.登陆界面 用户输入数据库中存在的用户名和密码后,便可登陆成功,否则提示密码错误 ①正确的用户名,错误的密码

正确的用户名正确的密码后进入学生信息管理系统: 2.添加功能:输入界面中的所有数据之后,点击添加,即可向数据库中加 入一条学生记录

3.删除功能:输入姓名,即可把数据库中对应姓名的一条学生信息删除 4.更新功能:输入要修改学生的信息,即可修改该学生在数据库中的记录

5.查找功能:点击查找可以查询数据库中的所有学生信息,每页9条记录,其余的学生信息的点击下一页,可以查看,还可以点击上一页,来切换数据 点击下一页:

五、关键代码分析 DBConnetion用于连接数据库: package edu; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { public static Connection getConnection(){ Connection conn = null; String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; String url = "jdbc:odbc:schoolData"; String username = "sa"; String password = "123456"; try { Class.forName(driver);

Java网络编程:连接网络数据库的多种方法

Java网络编程:连接网络数据库的多种方法 发表时间:2010-07-08T08:54:26.403Z 来源:《价值工程》2010年第1月下旬供稿作者:刘辉[导读] TCP/IP协议是一种面向连接的保证可靠传输的协议,通过TCP协议传输,得到的是一个顺序的无差错的数据流。刘辉(沈阳职业技术学院,沈阳110045) 摘要:Java是一种跨平台、健壮、安全、可移植,适合于分布式计算机环境的面向对象的编程语言,由于用Java开发的程序可以在网络上传输,并运行于任何客户机上,所以使用Java语言开发网络应用程序得到了越来越广泛的应用。本文结合Java网络编程的特点,介绍了基于TCP/IP协议如何建立TCP Socker实现与网络数据库连接的几种常用方法。关键词:Java网络编程;TCP Socket ; 数据库中图分类号:TP31 文献标识码:A 文章编号:1006-4311(2010)03-0154-01 1 Java网络编程协议 Java网络编程的目的就是直接或间接地通过网络协议与其他计算机进行通讯,而广泛的应用之一就是连接到网络数据库上,从而获取网络资源。 网络上的计算机要互相通信,必须遵循一定的协议。Java网络编程支持现在广泛使用的网络协议:TCP/IP协议和UDP协议,但使用方法上是不同的。 1.1 使用TCP/IP协议 TCP/IP协议是一种面向连接的保证可靠传输的协议,通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方必须成对地建立两个socket连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是server socket)等待建立连接时,另一个socket 可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。 1.2 使用UDP协议 UDP协议是一种无连接的协议,不保证信息的可靠传输,由Java技术中的DatagramSocket和DatagramPacket类支持。DatagramSocket对应TCP/IP协议下的Socket概念,但不需要创建两个socket,不可使用输入输出流。DatagramPacket数据包,是UDP协议下进行传输数据的单位,数据存放在字节数组中,其中包括了目标地址和端口以及传送的信息(所以不用建立点对点的连接)。 由于TCP/IP协议能够提供可靠的数据传输,如何在发送方和接收方建立Socket连接是关键的步骤,下面我们介绍目前比较常用的Java 程序中建立Socket的几种方法。 2 基于TCP/IP协议的Socket连接方法 Java中Socket连接的建立是通过Socket类实现的,通过重载的构造函数可以直接连接服务器,也可以建立未连接的Socket对象,并通过connect方法来连接服务器。此外,还支持自动或手动方式选择本机的IP地址。 2.1 通过构造函数直接连接服务器 (1)自动选择IP。 这种方式是最常用的。使用的构造函数有如下两种:在使用时只需要提供一个字符串类型的IP地址或域名以及一个整型的端口号即可,可能会抛出两个异常:UnknownHostException (提供的host并不存在或不合法)和IOException(其它的错误)。 这个构造函数只是将字符串形式的host改为InetAddress对象类型了,从而支持使用Socket类多次连接同一个IP或域名,效率比较高。在这个构造函数中只会发生IOException异常,UnknownHostException异常由InetAddress类抛出。 (2)手动绑定IP。 当本机有多块网卡或者在一个网卡上绑定了多个IP时,在连接服务器时也可以通过构造函数指定需要使用哪个IP。这时可以使用Socket类的另外两个构造函数来处理。 这两个构造函数的参数分为两部分,第一部分为前两个参数分别表示要连接的服务器的IP和端口号。第二部分为后两个参数,其中inetaddress1表示要使用的本地IP,而localPort则表示要绑定的本地端口号,在一般情况下将localPort设为0。 2.2 通过connect方法连接服务器 可以先建立未连接的Socket对象,再通过类的connect方法来连接服务器,还可以通过类的bind方法来绑定本地IP。 下面,通过一个实例来演示以上方法建立Socket连接。 假设有两台计算机:PC1和PC2。PC1绑定有两个IP:192.168.1.100和200. 200. 200.1。PC2绑定有一个IP:200. 200. 200.4。PC1和PC2的子网掩码都是255.255.255.0。而PC1的默认网关为:192.168.28.254。下面的代码需要在PC1上运行。 3 综述 Java网络编程可以支持多种协议,而在TCP/IP协议下建立Socket连接也有多种方法,其中IP地址和网关的设置都会影响连接的建立,还需要在应用时由编程者保证代码执行后连接的建立,才能执行之后的收发双方I/O通道的建立及通信过程。参考文献: [1]O'REILLY.Java网络编程[M].北京:电力出版社.

相关文档
最新文档