文档库 最新最全的文档下载
当前位置:文档库 › Java数据库处理的方法库DBUtil

Java数据库处理的方法库DBUtil

Java数据库处理的方法库DBUtil
Java数据库处理的方法库DBUtil

Java数据库处理的方法库DBUtil

2010年07月16日 13:28 | 分类:测试开发蒋刚毅

1.postgres数据库的select操作,返回select后返回的第一行数据,返回类型为string,若要返回int,只需将getString改为getInt

public static String PgDBSelect(String sql) throws ClassNotFoundException, SQLException{

String dbURL=”jdbc:postgresql://172.16.4.25:5432/skyups”;

String dbuser=”***”;

String dbpasswd=”***”;

Class.forName(”org.postgresql.Driver”);

Connection conn = DriverManager.getConnection(dbURL,dbuser,dbpasswd); Statement stmt =

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

ResultSet rs = stmt.executeQuery(sql);

rs.next();

String value=rs.getString(1);

rs.close();

stmt.close();

conn.close();

return value;

}

2.postgres数据的执行操作,可执行instert、delete、update等操作,不返

回数据

public static void PgDBUpdate(String sql) throws ClassNotFoundException, SQLException{

String dbURL=”jdbc:postgresql://172.16.4.25:5432/skyups”;

String dbuser=”***”;

String dbpasswd=”***”;

Class.forName(”org.postgresql.Driver”);

Connection conn = DriverManager.getConnection(dbURL,dbuser,dbpasswd); Statement stmt =

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

stmt.executeUpdate(sql);

stmt.close();

conn.close();

}

3. oracle数据库的select操作,返回select后返回的第一行数据,若要返回int,只需将getString改为getInt

public static String OracleDBSelect(String sql) throws ClassNotFoundException, SQLException{

String dbURL=”jdbc:oracle:thin:@172.16.4.21:1521:skytest”;

String dbuser=”***”;

String dbpasswd=”***”;

Class.forName(”oracle.jdbc.OracleDriver”);

Connection conn = DriverManager.getConnection(dbURL,dbuser,dbpasswd); Statement stmt =

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

ResultSet rs = stmt.executeQuery(sql);

rs.next();

int expbalance=rs.getString(1);

rs.close();

stmt.close();

conn.close();

return expbalance;

}

4.oralce数据的执行操作,可执行instert、delete、update等操作,不返回

数据

public static void OracleDBUpdate(String sql) throws ClassNotFoundException, SQLException{

String dbURL=”jdbc:oracle:thin:@172.16.4.21:1521:skytest”;

String dbuser=”***”;

String dbpasswd=”***”;

Class.forN ame(”oracle.jdbc.OracleDriver”);

Connection conn = DriverManager.getConnection(dbURL,dbuser,dbpasswd); Statement stmt =

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

stmt.executeUpdate(sql);

stmt.close();

conn.close();

}

5.Cassandra非关系型数据库的操作,包括delete、insert、read等。

public static void CassandraRemove(String USkyid)throws IllegalStateException, PoolExhaustedException,Exception {

CassandraClientPool pool = CassandraClientPoolFactory.INSTANCE.get(); CassandraClient client = pool.borrowClient(”172.16.4.244″, 9160); try{

Keyspace keyspace = client.getKeyspace(”skyups”);

ColumnPath columnPath = new ColumnPath();

columnPath.setColumn_family(”UserInfo”);

//delete

keyspace.remove(USkyid, columnPath);

/*

// read

Column col = keyspace.getColumn(value, columnPath);

System.out.println(”Read from cassandra: ” +

string(col.getValue()));

// insert

keyspace.insert(”key”, columnPath, bytes(”value”));

*/

} finally{

pool.releaseClient(client);

}

}

利用方法库执行一次完整的junit测试举例:

step1.设置一条用户信息,包括所有字段参数。step2:再发送一条设置信息,其中用户的出生日期为空。step3:删除这条用户信息,恢复环境。

@Before

public void setUp() throws Exception {

Socket socket=new Socket(ServerIP,Port);

DataOutputStream dos=new DataOutputStream(socket.getOutputStream()); DataInputStream dis=new DataInputStream(socket.getInputStream());

byte[] resp=new byte[1024];

System.out.println(”StartUp:预置测试环境,初始化设置1条用户信息“); byte[] setuserinfomsg1=PackMsg.SetUserInfoMsg(USkyid, UUserName, UNickname, URealName, USex, UBirthday, UAnimals, UStar, UBlood, UMarried, UPortraitId, UDefinePortrait, UCountry, UProvince, UCity, UHometown, ULongitude, ULatitude, USignature, UDesc, UEmail, UEmailChecked, UMobile, UMobileChecked, UTelephone, UVocation, USchoolGraduated, UPrivacy, UIdCardNo,HasPic);

dos.write(setuserinfomsg1);dis.read(resp);

Thread.sleep(1000);

dos.flush();dis.close();socket.close();

}

@Test

public void testSetUserInfo_Edit_BirthDay() throws Exception {

Socket socket=new Socket(ServerIP,Port);

DataOutputStream dos=new DataOutputStream(socket.getOutputStream()); DataInputStream dis=new DataInputStream(socket.getInputStream()); byte[] resp=new byte[1024];

System.out.println(”Case1:执行测试,对出生日期为空字符串的逻辑进行修正,若为空字符串,则将原有的出生日期清空,设置为默认值1800-01-01“); String U Birthday=” “;

byte[] setuserinfomsg1=PackMsg.SetUserInfoMsg_Birthday(USkyid, UBirthday);

dos.write(setuserinfomsg1);dis.read(resp);

int respcode2=ByteUtil.bytes2int2(resp, 40, 4);

System.out.println(”Respcode:”+respcode2);

assertEquals (”Respcode Error!”,200,respcode2);

Thread.sleep(1000);

assertEquals (”Birthday

Error!”,”1800-01-01″,DBUtil.PgDBSelect(”select birthday from skyups.tbl_ups_user_info where skyid=”+USkyid));

dos.flush();dis.close();socket.close();

}

@After

public void tearDown() throws Exception

System.out.println(”TearDown:恢复测试环境,删除所有用户信息,包括postgres数据库和casandra的数据“);

DBUtil.PgDBUpdate(”delete from skyups.tbl_ups_user_info where skyid=”+USkyid+”or skyid=”+USkyid2);

DBUtil.CassandraRemove(USkyid);

DBUtil.CassandraRemove(USkyid2);

Thread.sleep(1000);

}

标签:dbutil、java 10 views | 发表评论

Java字节流处理的方法库ByteUtil

2010年07月16日 13:15 | 分类:测试开发蒋刚毅

随着项目经验的积累,我们测试部的测试方法库也慢慢的建立和完善,目前的方法库主要包括:

a.ByteUtil:byte字节流处理、转换的方法,主要应用于TCP编程

b.DBUtil:Oracle、Postegres、Caasndra等数据库的访问执行方法

c.EncryptionUtil:加密算法,包括md5编码等。

后续还会继续完善各种协议的方法库,并在推广并公测一段时间后将以jar包的方式提供API接口调用。

1.将不同的byte[]字节数组流打包成一个字节数组

public static byte[] pack(byte[]… agrs) throws IOException{

ByteArrayOutputStream bout = new ByteArrayOutputStream();

for(byte[] b:agrs){

bout.write(b);

}

byte[] buff = bout.toByteArray();

return buff;

}

2.在byte字节流中搜索指定字节流的位置,采用KMP算法实现。

/**取到字节流中指定字节流的位置

* The Knuth-Morris-Pratt Pattern Matching Algorithm can be used to search a byte array.

* Search the data byte array for the first occurrence

* of the byte array pattern.

*/

public static int indexOf(byte[] data, byte[] pattern) {

int[] failure = computeFailure(pattern);

int j = 0;

for (int i = 0; i < data.length; i++) {

while (j > 0 && pattern[j] != data[i]) {

j = failure[j - 1];

}

if (pattern[j] == data[i]) {

j++;

}

if (j == pattern.length) {

return i + 1;

//return i – pattern.length + 1;

}

}

return -1;

}

/**

* Computes the failure function using a boot-strapping process, * where the pattern is matched against itself.

*/

private static int[] computeFailure(byte[] pattern) { int[] failure = new int[pattern.length];

int j = 0;

for (int i = 1; i < pattern.length; i++) {

while (j>0 && pattern[j] != pattern[i]) {

j = failure[j - 1];

}

if (pattern[j] == pattern[i]) {

j++;

}

failure[i] = j;

}

return failure;

}

3.将字节流的详细信息显示

//HEX字节流显示

public static String dumpBytesAsHEX(byte[] bytes) {

int idx = 0;

String s = “”;

StringBuilder body = new StringBuilder();

for (int i=0;i<1024&&i

byte b = bytes[i];

int hex = ((int) b) & 0xff;

String shex = Integer.toHexString(hex).toUpperCase(); if (1 == shex.length()) {

body.append(”0″);

}

body.append(shex);

body.append(” “);

idx++;

// if (16 == idx) {

// s = body.toString();

// body = new StringBuilder();

// idx = 0;

// }

}

if (idx != 0) {

s = body.toString();

}

return s;

}

4.将整型转换成指定长度的数组字节流

public static byte[] int2bytes(int integer, int len) {

// if (integer < 0) { throw new IllegalArgumentException(”Can not cast negative to bytes : ” + integer); }

ByteArrayOutputStream bo = new ByteArrayOutputStream();

for (int i = 0; i < len; i++) {

bo.write(integer);

integer = integer >> 8;

}

byte[] res=reversEndian(bo.toByteArray(),len);

return res;

}

private static byte[] reversEndian(byte str[],int len) {

byte b;

byte res[]=new byte[len];

for(int i=0;i

{

b=str[i];

res[len-i-1]=b;

}

return res;

}

5.将整型转换成TLV方式的字节数组流

public static byte[] int2TLVbytes(int tag,int value,int len) throws IOException{

byte[] tag1=int2bytes(tag,4);

byte[] length1=int2bytes(len,4);

byte[] value1=int2bytes(value,len);

byte[] buff=pack(tag1,length1,value1);

return buff;

}

6.将UTF-8的string转换成指定长度的字节数组流,不足部分补fillByte(如0×00)

public static byte[] string2bytes(String source, int length,byte fillByte) {

byte[] dst = new byte[length];

if (source == null) {

for (int i = 0; i < length; i++) {

dst[i] = fillByte;

}

return dst;

}

try {

byte[] b = source.getBytes(”UTF-8″);

if (b.length > length) {

System.arraycopy(b, 0, dst, 0, length);

} else {

System.arraycopy(b, 0, dst, 0, b.length);

for (int i = dst.length; i < length; i++) {

dst[i] = fillByte;

}

}

} catch (Exception e) {

for (int i = 0; i < length; i++) {

dst[i] = fillByte;

}

}

return dst;

}

7.将string转换成TLV编码方式的字节数组流

public static byte[] string2TLVbytes(int tag,String value) throws IOException{

int length=value.length();

byte[] tag1=int2bytes(tag,4);

byte[] length1=int2bytes(length,4);

byte[] value1=string2bytes(val ue,value.length(),(byte)0×00);

byte[] buff=pack(tag1,length1,value1);

return buff;

}

8.将字节流转换成UTF-8字符串

public static String bytes2UTF8string(byte source[]) {

String dst = “”;

try {

dst = (new String(source, “UTF-8″));

} catch (UnsupportedEncodingException e) {

dst = “”;

}

return dst;

}

9.将字节流中的指定字节段转换成UTF-8字符型

public static String bytes2UTF8string2(byte b[],int offset,int len){ byte[] a=new byte[len];

for (int i=0;i

a[i]=b[offset];

offset++;

}

return bytes2UTF8string(a);

}

10.将字节流数据转换成整型

public static int bytes2int(byte b[]) {

int s = 0;

for (int i = 0; i < b.length; i++) {

s = s | ((b[i] & 0xff) << ((b.length – i – 1) * 8)); }

return s;

}

11.将字节流中的指定字节段转换成整型

public static int bytes2int2(byte b[],int offset,int len){ byte[] respcode=new byte[len];

for (int i=0;i

respcode[i]=b[offset];

offset++;

}

return bytes2int(respcode);

}

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.wendangku.net/doc/2b11159485.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

Java 实现连接sql server 2000(JDBC数据库访问例子)

第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力)、网络通信功能、通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献。笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAPE,上网就像是玩游戏,你可以获得游戏那么精美的图像和互动的感觉,如果你玩过UO,也许你就知道那种感觉了,但是JAVA做成的东西一定会超过UO的,因为不单单是游戏,也不是单单是浏览器,如果你愿意(要你有钱,有时间,有优秀的JAVA人才)你可以把所有的这一切用Java完全集成出来!!!我不是夸大JAVA的功能,大家可以访问一下 https://www.wendangku.net/doc/2b11159485.html,的那个社区程序,你就能找到一种感觉了:相信我没有说什么假话。好了,不说废话了,现在我向你介绍JAVA的数据库访问技术 ----JDBC数据库访问技术(你可千万不要搞成ODBC了!)。 JDBC技术事实上是一种能通过JAVA语言访问任何结构化数据库的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的JDBC 3.0据Sun 说也能访问Execel等电子表格程序! JDBC对于数据库的访问有四种方式,我们这里只是介绍两种: 第一种是通过ODBC做为“桥”(Bridge)对数据库访问,第二种是直接对数据库访问。 我们先来看看第一种JDBC<-->ODBC访问的流程: JDBC Driver Mannager->JDBC<->ODBC桥->ODBC->数据库客户机驱动库->数据库服务器->返回查询结果,在这种访问中值的我们注意的是虽然JAVA是"Write Once ,Run Anywhere",但是如果通过这种访问的话,需要客户端必须设置ODBC和有相应的数据库客户机的驱动,当你看了下面的另外一个流程的时候或许你会想:明明下一种更方面,为什么还要有这个东西的产生!呵呵,因为,未必所有的数据库服务器提供商都提供下面的JDBC驱动程序(给JDBC访问提供相应的接口),所以就有了JDBC<->ODBC Bridge。 接着再让我们来看看第二种访问流程: JDBC Driver Mannager->局部JDBC驱动->客户端数据库->数据库服务器->返回查询结果,这种访问事实上是转换JDBC调用为相应的数据库(Oracle, Sybase, Informix, DB2, 和其他的数据库数据库管理系统)的客户端API调用(这么说,不知道大家能不能懂,说简单点就好像ASP不是通过DSN对数据库访问而是通过OLEDB访问,说道这里我还是不知道大家能不能明白我的意思。哎呀,不要扔鸡蛋嘛!),这种方式的访问需要相应的数据库提供商提供相应的JDBC 驱动程序,但是有一种好处,可以独立于odbc用于可以随处可Run的客户端的浏览器中的Applet程序。

完整java连接数据库步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过https://www.wendangku.net/doc/2b11159485.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连接各种数据库写法

随笔- 6 文章- 0 评论- 1 Java连接各种数据库写法 # 示例配置参考,涵盖几乎所有的主流数据库 ############# Oracle数据库######################## # 数据库驱动名 driver=oracle.jdbc.driver.OracleDriver # 数据库URL(包括端口) dburl=jdbc:oracle:thin:@127.0.0.1:1521:zvfdb # 数据库用户名 user=root # 用户密码

password=zvfims ############# DB2数据库######################## # 数据库驱动名 driver=com.ibm.db2.jcc.DB2Driver # 数据库URL(包括端口) dburl=jdbc:db2://127.0.0.1:50000/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# MySQL数据库######################## # 数据库驱动名

driver=com.mysql.jdbc.Driver # 数据库URL(包括端口) dburl=jdbc:mysql://127.0.0.1:3306/zvfdb # 数据库用户名 user=root # 用户密码 password=zvfims ############# PostgreSQL数据库数据库######################## # 数据库驱动名 driver=org.postgresql.Driver # 数据库URL(包括端口) dburl=jdbcostgresql://127.0.0.1/zvfdb

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图形界面以及链接数据库

import .*; import .*; import .*; public class NoteTextArea extends JFrame implements ActionListener { private JPanel jp=new JPanel(); private JButton[] jb = new JButton[4]; private JComboBox box; private JTextArea jt=new JTextArea(); private JScrollPane js=new JScrollPane(jt,,; private String[] obj; private JTextField text = new JTextField(); public NoteTextArea() { (null); String[] obj = new String[]{"微笑","生气","难过","得意"}; box = new JComboBox(obj); JLabel j1 = new JLabel("留言版"); JLabel j2 = new JLabel("你"); JLabel j3 = new JLabel("地说:"); jb[0] = new JButton("清屏"); jb[1] = new JButton("至顶"); jb[2] = new JButton("至尾"); jb[3] = new JButton("提交"); for(int i = 0;i < 3;i++) {

jb[i].setBounds(650,i*75+55,100,50); } for(int i = 0;i < 3;i++) { (jb[i]); } (280,10,50,30); (20,375,30,50); (55,385,80,30); (160,375,40,50); (210,385,300,30); jb[3].setBounds(520,365,75,50); (10,50,600,300); (j1); (j2); (j3); (box); (text); (jb[3]); (js); for(int i=0;i<=3;i++) { jb[i].addActionListener(this); } (false); (true); ("留言内容:");

Java连接数据库全过程

Java连接数据库全过程 第一次用java连接数据库,开始竟然不知道从哪里下手,后看了很多书,请教了很多高手,忙了一天才连接上,所以我把这个详细的过程整理出来贡献给大家,不当的地方,希望大家告诉我,一定更正。 要准备的软件: 1.操作系统:windows xp或其他系统; 2.java运行环境:JDK 官方下载网址:https://www.wendangku.net/doc/2b11159485.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.wendangku.net/doc/2b11159485.html,/view/9cc0fcc76137ee06eff918d5.html 然后下载jdbc驱动。 https://www.wendangku.net/doc/2b11159485.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 SWING 连接数据库的步骤

Java swing连接数据库的步骤 1.在工程中导入3个jar包,详见(导入Jar包的过程.doc) 2.在类中导入包 a)import java.sql.*; b)import com.microsoft.jdbc.sqlserver.*; 3.声明连接对象,执行语句对象,结果集对象 a)Connection conn=null; b)Statement stmt=null; c)ResultSet rs=null; 4.定义连接字符串 a)final String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver"; b)final String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=pubs"; c)final String USER="sa"; d)final String PASS=""; 5.创建连接对象 try{ Class.forName(CLASSFORNAME); conn=DriverManager.getConnection(DBURL,USER,PASS); }catch(SQLException e){ System.out.println(e.getMessage()); }catch(ClassNotFoundException ex){ JOptionPane.showMessageDialog(this,"练苦失败"); return; }

6.创建执行语句对象stmt try{ String sql="insert into users values('name1','pass1')"; //上一行代码可以写成下一行的方式,试分析它的作用是什么? //String sql="insert into users values('"+name+"','"+pass+"')"; stmt=conn.createStatement(); stmt.executeUpdate(sql); }catch(SQLException ex1){ } 7.完毕

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.wendangku.net/doc/2b11159485.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连接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语言的数据库访问技术试题

一、选择题 1.Java中,JDBC是指() A. Java程序与数据库连接的一种机制 B.Java程序与浏览器交互的一种机制 C.Java类库名称 D.Java类编译程序 2.在利用JDBC连接数据库时,为建立实际的网络连接,不必传递的参数是() A. URL B.数据库用户名 C.密码 3.J2ME是为嵌入式和移动设备提供的Java平台,它的体系结构由( )组成。 A. Profiles B.Configuration C.OptionalPackages D. 以上都是 4.J2EE包括的服务功能有() A. 命名服务JNDI(LDAP)和事务服务JTA B. 安全服务和部署服务 C.消息服务JMS和邮件服务JavaMail D.以上都是 5.JDBC的模型对开放数据库连接(ODBC)进行了改进,它包含() A. 一套发出SQL语句的类和方法 B. 更新表的类和方法 C.调用存储过程的类和方法 D. 以上全部都是 6.JDBC中要显式地关闭连接的命令是() A.Connection.close() B.RecordSet.close() C.Connection.stop() D.Connection.release() 7.TCP/IP系统中的端口号是一个( )位的数字,它的范围是0到65535。 A. 8 B.16 C.32 D.64 8.在Java编程语言中,TCP/IPsocket连接是用java.net包中的类实现的。其连接步骤和方法是 A. 服务器分配一个端口号。如果客户请求一个连接,服务器使用accept()方法打开 socket连接 B.客户在host的port端口建立连接 C.服务器和客户使用InputStream和OutputStream进行通信 D.以上全部 9.J2ME中的Profile定义应用系统的( )特性。 A. 生命周期模型 B. 用户界面 C. 访问设备 D. 以上全部都是 10.J2EE平台的优势不包括() A. 一次编程,任意运行 B. 应用独立于供应商、服务器、工具,构件的选择自由

Java 数据库连接

Java 数据库连接(数据库为bbs,数据源名为test) 1、直接连接mysql数据库(先把mysql的驱动加载到工程中:选中工程:右键property---javabuildpath---libraries:再选择AddExternalJARS找到驱动存放位置把它加载进来)package dbLink; package dbLink; import java.sql.*; public class DataBaseConnection { public static Connection getConnection(){ Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","123"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } public static void closeConnection(Connection conn){ if(conn!=null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public static void closeResultSet(ResultSet rs){ if(rs!=null) try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } public static void closePreparedStatment(PreparedStatement ps){ if(ps!=null) try{

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查询

相关文档
相关文档 最新文档