当前位置:文档之家› 应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例

应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例

应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例
应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例

应用Java Swing GUI界面技术实现的Java JDBC数据库操作技术的应用实例

1.1.1问题

设计一个实现对下面的EBook数据库表进行CRUD-----“增(CREATE)、删(DELETE)、改(UPDATE)、查(READER)”操作的J2SE程序。物理数据库系统不限制,可以为MS SQLServer、MYSQL和Oracle等。

1.1.2本示例的源程序代码

1、DesktopApplication程序类的功能说明

实现对EBook数据库表进行CRUD-----“增(CREATE)、删(DELETE)、改(UPDATE)、查(READER)功能实现的基础上尝试了应用Java Swing GUI编程技术,理解了事件的监听机制的原理、桌面程序的布局等知识。

2、编程工具为NetBeans IDE

3、本示例的数据库为MySql数据库系统

4、本示例的源程序代码

import javax.swing.*;

import javax.swing.table.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import java.sql.*;

class Table extends JFrame implements ActionListener{

/*-------------------------------菜单栏的各项元素定义-----------------------*/

/*下拉菜单*/

private JMenuBar menubar;

private JMenu menu;

private JMenuItem iselect,iinsert,idel,iupdate;

/*插入时的输入框*/

private JTextField Tebook_id;

private JTextField Tebook_name;

private JTextField Tebook_kind;

private JTextField Tebook_price;

/*显示标签*/

private JLabel label_title;

private JLabel label_id;

private JLabel label_name;

private JLabel label_kind;

private JLabel label_price;

private JLabel label_updateid; //显示更新的记录集号的标签

// 出错后的提示标签

private JLabel exception_interger=new JLabel("请输入数字!"); //提示出错为没有输入数字的标签

private JPanel panel; //面板

//private JTextArea textarea;//文本区域

private Container contrainer;//容器

private JButton insert_enter; // 插入确定按钮

private JButton del_enter; // 删除确定按钮

private JButton update_select_enter; // 更新选择按钮

private JButton update_detail_enter; // 更新确定按钮

//初始化表格

public Table(){

/*-------------------------------初始化界面----------------------*/

menubar= new JMenuBar();

menu = new JMenu("对数据表的处理");

iselect = new JMenuItem("显示数据表");

iinsert = new JMenuItem("插入数据");

idel = new JMenuItem("删除数据");

iupdate = new JMenuItem("更新数据");

//添加监视器

iselect.addActionListener(this);

iinsert.addActionListener(this);

idel.addActionListener(this);

iupdate.addActionListener(this);

menu.add(iselect);

menu.add(iinsert);

menu.add(idel);

menu.add(iupdate);

menubar.add(menu);

setJMenuBar(menubar);

contrainer=this.getContentPane();

this.setTitle("对下面的EBook数据库表进行CRUD-");

this.setSize(400,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

contrainer.validate();

}

/*显示表格的函数(JFrame)*/

public void Show_Table(Vector row, Vector tableHead) {

/*表格行向量*/ /*表格头名称*/

contrainer.removeAll();

/*-------------------------------初始化界面----------------------*/

menubar= new JMenuBar();

menu = new JMenu("对数据表的处理");

iselect = new JMenuItem("显示数据表");

iinsert = new JMenuItem("插入数据");

idel = new JMenuItem("删除数据");

iupdate = new JMenuItem("更新数据");

//添加监视器

iselect.addActionListener(this);

iinsert.addActionListener(this);

idel.addActionListener(this);

iupdate.addActionListener(this);

menu.add(iselect);

menu.add(iinsert);

menu.add(idel);

menu.add(iupdate);

menubar.add(menu);

this.setJMenuBar(menubar);

/*------------------------------声明表格模型----------------------*/ DefaultTableModel tableModel = new DefaultTableModel();

tableModel.setDataVector(row, tableHead);

/*表格使用模型*/

JTable table = new JTable(tableModel);

table.setRowHeight(20);

JScrollPane scrollPane = new JScrollPane(table);

contrainer=this.getContentPane();

contrainer.add(scrollPane);

contrainer.add(table);

this.setTitle("对下面的EBook数据库表进行CRUD-");

this.setSize(400,400);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

contrainer.validate();

}

/*插入新数据到表格的函数(JFrame)*/

public void Insert_Table(){

contrainer.removeAll();

label_title = new JLabel("请输入书信息");

label_id= new JLabel("自动编号");

label_name= new JLabel("书名");

label_kind= new JLabel("类别");

label_price= new JLabel("价格");

Tebook_name=new JTextField();

Tebook_kind=new JTextField();

Tebook_price=new JTextField();

insert_enter=new JButton("提交");

panel=new JPanel();

panel.setLayout(null);

label_title.setBounds(0, 60, 90, 60);

label_id.setBounds(30, 100, 60, 25);

label_name.setBounds(95, 100, 60, 25);

label_kind.setBounds(160, 100, 60, 25);

label_price.setBounds(230, 100, 60, 25);

Tebook_name.setBounds(95, 120, 60, 25);

Tebook_kind.setBounds(160, 120, 60, 25);

Tebook_price.setBounds(230, 120, 60, 25);

insert_enter.setBounds(305, 120, 70, 25);

//对确定按钮添加侦听器ActioListener

insert_enter.addActionListener(this);

//各个元素添加到面板上

panel.add(label_title);

panel.add(label_id);

panel.add(label_name);

panel.add(label_kind);

panel.add(label_price);

panel.add(Tebook_name);

panel.add(Tebook_kind);

panel.add(Tebook_price);

panel.add(insert_enter);

this.setSize(400,400);

contrainer=this.getContentPane();

contrainer.add(panel);

contrainer.validate();

}

/*删除数据函数(JFrame)*/

public void Del_Table(){

contrainer.removeAll();

label_title = new JLabel("请输入要删除的书的ID号");

Tebook_id = new JTextField("请输入要删除的书的ID号");

del_enter = new JButton("删除");

panel=new JPanel();

panel.setLayout(null);

label_title.setBounds(0, 60, 190, 60);

Tebook_id.setBounds(30, 100, 100, 20);

del_enter.setBounds(200, 120, 70, 25);

//添加删除按钮的监听:

del_enter.addActionListener(this);

panel.add(label_title);

panel.add(Tebook_id);

panel.add(del_enter);

this.setSize(400,400);

contrainer=this.getContentPane();

contrainer.add(panel);

contrainer.validate();

}

/*选择要更新的记录号的函数(JFrame)*/

public void Update_Table_Select(){

contrainer.removeAll();

label_title = new JLabel("请输入要更新的书的ID号");

Tebook_id = new JTextField("请输入要更新的书的ID号");

update_select_enter = new JButton("选择该书更新");

panel=new JPanel();

panel.setLayout(null);

label_title.setBounds(0, 60, 190, 60);

Tebook_id.setBounds(30, 100, 100, 20);

update_select_enter.setBounds(200, 120, 160, 25);

//添加删除按钮的监听:

update_select_enter.addActionListener(this);

panel.add(label_title);

panel.add(Tebook_id);

panel.add(update_select_enter);

this.setSize(400,400);

contrainer=this.getContentPane();

contrainer.add(panel);

contrainer.validate();

}

/*更新该记录的函数(JFrame)*/

public void Update_Table_Detail(int ebook_id) { //获取记录集contrainer.removeAll();

label_title = new JLabel("请更新该书信息");

label_id= new JLabel("编号");

label_name= new JLabel("书名");

label_kind= new JLabel("类别");

label_price= new JLabel("价格");

//将文本框中内容,初始化为要修改的记录内容

try{

Class.forName( "com.mysql.jdbc.Driver" ); //注册

Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MySql" , "root" , "wby666" );

Statement prepstmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATA BLE);

//出现下面这一种问题java.sql.SQLException: Before start of result set的原因是:

// ResultSet 始终有一个游标指向其当前数据行。最初,游标定位在第一行的前面。

// next()方法将游标移至下一行。当忘记写next方法时,就会报这样的错误.

//

ResultSet rs = prepstmt.executeQuery("select * from EBook");

rs.absolute(ebook_id);

String id = String.valueOf (ebook_id) ;

label_updateid=new JLabel(id); //不可修改该记录的编号,这是要由系统作为主键的自动编号

// Tebook_id.setEditable(true);

Tebook_name=new JTextField(rs.getString("ebook_name"));

Tebook_kind=new JTextField(rs.getString("ebook_kind"));

String ebook_pricef = Float.toString(rs.getFloat("ebook_price"));

Tebook_price=new JTextField(ebook_pricef);

rs.close();

con.close();

}

catch (SQLException e) {

System.out.println("SQLState:" + e.getSQLState());

System.out.println("Message:" + e.getMessage());

System.out.println("Vendor:" + e.getErrorCode());

}

catch (ClassNotFoundException e){

System.out.println(e);

}

update_detail_enter=new JButton("更新");

panel=new JPanel();

panel.setLayout(null);

label_title.setBounds(0, 60, 110, 60);

label_id.setBounds(30, 100, 60, 25);

label_name.setBounds(95, 100, 60, 25);

label_kind.setBounds(160, 100, 60, 25);

label_price.setBounds(230, 100, 60, 25);

label_updateid.setBounds(30, 120, 60, 25);

Tebook_name.setBounds(95, 120, 60, 25);

Tebook_kind.setBounds(160, 120, 60, 25);

Tebook_price.setBounds(230, 120, 60, 25);

update_detail_enter.setBounds(305, 120, 70, 25);

//对更新确定按钮添加侦听器ActioListener

update_detail_enter.addActionListener(this);

//各个元素添加到面板上

panel.add(label_title);

panel.add(label_id);

panel.add(label_name);

panel.add(label_kind);

panel.add(label_price);

panel.add(label_updateid);

panel.add(Tebook_name);

panel.add(Tebook_kind);

panel.add(Tebook_price);

panel.add(update_detail_enter);

this.setSize(400,400);

contrainer=this.getContentPane();

contrainer.add(panel);

contrainer.validate();

}

//数据库查询函数

public void PreparedStatementExecSQLSelect(){

Vector tableHead; //表格头

Vector cell; //表格中一个元组

Vector row; //表格中一行

tableHead = new Vector();

row = new Vector();

//--------------------------建立表头----------------------------------//

String[] tableHeadName = {"ebook_id","ebook_name", "ebook_kind", "ebook_price"};

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

tableHead.add(tableHeadName[i]);

}

//--------------------------建立数据库----------------------------------//

try {

Class.forName( "com.mysql.jdbc.Driver" );

//注册

Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MySql" , "root" , "wby666" );

Statement prepstmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATA BLE);

//出现下面这一种问题java.sql.SQLException: Before start of result set的原因是:

//ResultSet 始终有一个游标指向其当前数据行。最初,游标定位在第一行的前面。

// next()方法将游标移至下一行。当忘记写next方法时,就会报这样的错误.

//

ResultSet rs = prepstmt.executeQuery("select * from EBook");

while (rs.next()) {

// 每次循环使一行数据被装入row,同时建立新的cell空间

cell = new V ector();

cell.add(rs.getInt("ebook_id"));

cell.add(rs.getString("ebook_name"));

cell.add(rs.getString("ebook_kind"));

cell.add(rs.getFloat("ebook_price"));

row.add(cell);

}

rs.close();

con.close();

//根据表头、表内容,建立相应的表格,并传递给从JFrame继承的类,显示出来

Show_Table(row,tableHead);

}

catch (SQLException e){

System.out.println("SQLState:" + e.getSQLState());

System.out.println("Message:" + e.getMessage());

System.out.println("Vendor:" + e.getErrorCode());

}

catch (ClassNotFoundException e){

System.out.println(e);

}

}

//数据库插入函数

public void StatementSQLInsert(String ebook_name,

String ebook_kind, String ebook_price){

/* parseFloat(String s)

返回一个新的float 值,该值被初始化为用指定String 表示的值,

这与Float 类的valueOf 方法产生的值类似。*/

try {

Float price = Float.parseFloat(ebook_price);

Class.forName( "com.mysql.jdbc.Driver" );

//注册

Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MySql" , "root" , "wby666" );

Statement prepstmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATA BLE);

//出现下面这一种问题java.sql.SQLException: Before start of result set的原因是:

// ResultSet 始终有一个游标指向其当前数据行。最初,游标定位在第一行的前面。

// next()方法将游标移至下一行。当忘记写next方法时,就会报B这样的错误.

//

ResultSet rs = prepstmt.executeQuery("select * from EBook");

int id=0;

if (https://www.doczj.com/doc/596099693.html,st()) {

id = rs.getRow()+1;

System.out.println(id);

}

rs.moveToInsertRow();

//rs.next();

rs.updateInt(1, id);

rs.updateString(2, ebook_name);

rs.updateString(3, ebook_kind);

rs.updateFloat(4, price);

rs.insertRow();

rs.updateRow();

rs.close();

con.close();

//显示添加后表格

this.PreparedStatementExecSQLSelect() ;

}

catch (SQLException e) {

System.out.println("SQLState:" + e.getSQLState());

System.out.println("Message:" + e.getMessage());

System.out.println("Vendor:" + e.getErrorCode());

} catch (ClassNotFoundException e) {

System.out.println(e);

}

catch(NumberFormatException e)

{

System.out.println(e);

}

}

//数据库删除函数

public void StatementSQLdel(int ebook_id){

try {

Class.forName( "com.mysql.jdbc.Driver" );

//注册

Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MySql" , "root" , "wby666" );

Statement prepstmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATA BLE);

//出现下面这一种问题java.sql.SQLException: Before start of result set的原因是:

// ResultSet 始终有一个游标指向其当前数据行。最初,游标定位在第一行的前面。

// next()方法将游标移至下一行。当忘记写next方法时,就会报这样的错误.

//

ResultSet rs = prepstmt.executeQuery("select * from EBook");

rs.absolute(ebook_id);

rs.deleteRow();

rs.updateRow();

//显示删除后的表格

rs.close();

con.close();

PreparedStatementExecSQLSelect();

}

catch (SQLException e) {

System.out.println("SQLState:" + e.getSQLState());

System.out.println("Message:" + e.getMessage());

System.out.println("Vendor:" + e.getErrorCode());

} catch (ClassNotFoundException e) {

System.out.println(e);

}

}

//数据库更新函数

public void StatementSQLUPDATE(int ebook_id, String ebook_name, String ebook_kind, float ebook_price){

try {

Class.forName( "com.mysql.jdbc.Driver" );

//注册

Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/MySql" , "root" , "wby666" );

Statement prepstmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATA BLE);

//出现下面这一种问题java.sql.SQLException: Before start of result set的原因是:

// ResultSet 始终有一个游标指向其当前数据行。最初,游标定位在第一行的前面。

// next()方法将游标移至下一行。当忘记写next方法时,就会报这样的错误.

//

ResultSet rs = prepstmt.executeQuery("select * from EBook");

rs.absolute(ebook_id);

rs.updateString("ebook_name",ebook_name);

rs.updateString("ebook_kind",ebook_kind);

rs.updateFloat("ebook_price", ebook_price);

rs.updateRow();

rs.close();

con.close();

PreparedStatementExecSQLSelect() ;

}

catch (SQLException e) {

System.out.println("SQLState:" + e.getSQLState());

System.out.println("Message:" + e.getMessage());

System.out.println("Vendor:" + e.getErrorCode());

} catch (ClassNotFoundException e) {

System.out.println(e);

}

}

//监听器处理函数

public void actionPerformed(ActionEvent e) {

if(e.getSource()==iselect) { //监听到-点击了菜单中的查看选项//执行查询函数

this.PreparedStatementExecSQLSelect();

}

else if(e.getSource()==iinsert)//监听到-点击了菜单中的插入选项

{

Insert_Table();

}

else if(e.getSource()==idel) //监听到-点击了菜单中的删除选项

{

this.Del_Table();

}

else if(e.getSource()==iupdate) //监听到-点击了菜单中的删除选项

{

this.Update_Table_Select();

}

else if(e.getSource()==insert_enter) //监听到-点击了添加页面的提交按钮

{

//执行插入函数

if(Tebook_name.getText()!=null&&Tebook_kind.getText()!=null&& Tebook_price.getText()!=null) {

StatementSQLInsert(Tebook_name.getText(),Tebook_kind.getText(), Tebook_price.getText());

}

}

else if(e.getSource()==del_enter){//监听到-点击了删除页面中的删除按钮

int ebook_id;

//编程时遇到的问题:

// int ebook_id=Integer.getInteger(Tebook_id.getText());

//解决方法:

// decode

//public static Integer decode(String nm)

// throws NumberFormatException将String 解码为Integer。// 接受通过以下语法给出的十进制、十六进制和八进制数字://抛出:

//NumberFormatException - 如果String 不包含可分析整数。

try{

ebook_id =Integer.decode(Tebook_id.getText());

StatementSQLdel(ebook_id);

}

//构建出错提示页面:

catch(NumberFormatException exception){

Tebook_id.setText("请输入数字!");

System.out.println(exception.getMessage());

}

}

else if(e.getSource()==update_select_enter) {

//监听到-点击了更新页1中选择记录的页面的提交按钮

//1,执行查询,从输入框中获得输入的Id号,并进行非数字的异常处理

// 2,然后把该记录号作为参数,投给详细更新页执行更新

try{

int ebook_id =Integer.decode(Tebook_id.getText());

Update_Table_Detail(ebook_id);

} //构建出错提示页面:

catch(NumberFormatException exception){

Tebook_id.setText("请输入数字!");

System.out.println(exception.getMessage());

}

}

else if(e.getSource()==update_detail_enter) {

//监听到-点击了更新页2中,更新提交按钮

try{

int ebook_id = Integer.decode(label_updateid.getText());

String ebook_name = Tebook_name.getText();

String ebook_kind = Tebook_kind.getText();

float ebook_price = Float.parseFloat(Tebook_price.getText());

StatementSQLUPDATE(ebook_id,ebook_name,ebook_kind,ebook_price);

}

//构建出错提示页面:

catch(NumberFormatException exception){

Tebook_id.setText("请输入数字!");

System.out.println(exception.getMessage());

}

}

}

}

public class jdbc{

public static void main(String[] args) {

Table myJdbcApp = new Table();

}

}

1.1.3本示例程序的执行结果示图

1、主界面

2、选择显示数据表后的界面

3、选择插入数据后的界面

4、插入一条书信息

5、成功插入后的界面

6、删除界面

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.doczj.com/doc/596099693.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.doczj.com/doc/596099693.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连接各种数据库写法

随笔- 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连接数据库步骤

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

JDBC连接sql server数据库的详细步骤和代码

JDBC连接sql server数据库的详细步骤和代码JDBC连接sql server数据库的步骤如下: [java] view plaincopy 1.1、加载JDBC驱动程序: 2.在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 3.这通过https://www.doczj.com/doc/596099693.html,ng.Class类的静态方法forName(String className)实现。 4.成功加载后,会将Driver类的实例注册到DriverManager类中。 5.2、提供JDBC连接的URL 6.?连接URL定义了连接数据库时的协议、子协议、数据源标识。 7.?书写形式:协议:子协议:数据源标识 8.协议:在JDBC中总是以jdbc开始 9.子协议:是桥连接的驱动程序或是数据库管理系统名称。 10.数据源标识:标记找到数据库来源的地址与连接端口。 11.3、创建数据库的连接 12.?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象, 13.该对象就代表一个数据库的连接。 14.?使用DriverManager的getConnectin(String url , String username , 15. String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和 16.密码来获得。 17.4、创建一个Statement 18.?要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 19.种类型: 20.1、执行静态SQL语句。通常通过Statement实例实现。 21.2、执行动态SQL语句。通常通过PreparedStatement实例实现。 22.3、执行数据库存储过程。通常通过CallableStatement实例实现。 23.具体的实现方式: 24. Statement stmt = con.createStatement() ; 25. PreparedStatement pstmt = con.prepareStatement(sql) ; 26. CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ; 27.5、执行SQL语句 28. Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 29.和execute 30.1、ResultSet executeQuery():执行查询数据库的SQL语句 31.,返回一个结果集(ResultSet)对象。 32.2、int executeUpdate():用于执行INSERT、UPDATE或 33. DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 34.3、execute():用于执行返回多个结果集、多个更新计数或二者组合的 35.语句。 36.具体实现的代码: 37. ResultSet rs = pstmt.executeQuery() ;

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); ("留言内容:");

JDBC实验二 使用JDBC实现数据库连接

广州中医药大学信息技术学院 实验报告 课程名称:网络数据库编程 专业班级:计算机科学与技术(08)级 学生学号:2008081013 学生姓名:张健华 实验名称:使用JDBC实现数据 库连接 实验成绩: 课程类别:必修□限选 公选□其它□

实验二使用JDBC实现数据库连接 实验类型:应用性实验实验日期: 3-23 [实验目的要求] 通过教学,使学生掌握使用JDBC连接到数据库的方法(如通过JDBC-ODBC 桥或Pure Java Driver),能使用网页表单实现网页与数据库的交互。 [实验内容及步骤] 1、在数据库SQL SERVER中创建一个数据库JDBCTEST,并创建表 student_info,并设定字段,输入内容。 2、使用JDBC-ODBC实现数据库连接 a)打开“控制面板”的“管理工具”的“数据源(ODBC)” b)建立数据源 c)选“系统数据源”,连接SQL SERVER数据库 d)测试是否连接成功 e)通过以下类Class、DriverManager、Connection(连接数据库用到的类), 及Statement、ResultSet(访问数据库用到的类)编写代码实现表 student_info数据的查询。 f)查询结果在页面中显示。 3、使用Pure Java Driver实现数据库连接 a)安装sql-jdbc,如装在D盘 b)设置环境变量classpath,添加D:\sqljdbc\msbase.jar; D:\sqljdbc\msutil.jar; D:\sqljdbc\mssqlserver.jar; c)设SQL SERVER数据库用Windows和数据库混合身分验证的方式。 d)通过以下类Class、DriverManager、Connection(连接数据库用到的类), 及Statement、ResultSet(访问数据库用到的类)编写代码实现表 student_info数据的查询。 e)查询结果在页面中显示。 4、通过表单传递数据,实现数据库的插入、删除与更新操作,并显示插入结果。 5、熟悉JSP中各种常用的内建对象如request对象、session对象、application对 象的使用。 6、熟悉各种表单的处理的方法:如选择按钮的使用、多选方块的使用、群组检 查的使用、隐藏栏位的使用、在客户端进行数据检查 7、试利用上述知识实现一个留言板系统。 以下需要同学们贴上第7题经调试好代码: 数据库对应的表1 数据库对应的表2 .。。。 代码1文件(***.HTM)内容: <%@ page contentType="text/html;charset=GB2312"%>

Java连接数据库全过程

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

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 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.完毕

实验8-jdbc数据库访问(优.选)

实验8 JDBC访问数据库 一、实验目的 1. 掌握使用传统的方法访问数据库; 2. 掌握使用数据源的方法访问数据库。 二、实验原理 数据库应用是Web应用开发的一个重要应用。Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。 传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。 使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。 三、实验内容与步骤 (一)使用传统方法通过JSP页面访问数据库 【步骤1】创建数据库。假设在PostgreSQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下: CREATE TABLE books ( bookid character(5) PRIMARY KEY, --书号 title varchar2(80), --书名 author character varying(20), --作者 publisher character varying (40), --出版社 price real --价格 ); 向books表中插入几条记录,代码如下: INSERT INTO books V ALUES ('204','Head First Servlets & JSP', 'Bryan Basham', '中国电力出版社',98.00); INSERT INTO books V ALUES ('201', 'Servlets 与JSP 核心教程', 'Hall Marty','清华大学出版社',45); INSERT INTO books V ALUES ('202', 'Tomcat与Java Web 开发技术祥解', '孙卫琴', '机械工业出版社',45); INSERT INTO books V ALUES ('203', 'JSP 应用开发技术', '柳永坡','人民邮电出版社',52); INSERT INTO books V ALUES ('205', 'J2EE 1.4 编程指南', 'Spielman Sue','电子工业出版社',68); 注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。 【步骤2】使用下面JSP页面displayBooks.jsp访问books表中的数据。 <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.sql.*"%> Database Access Test

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.doczj.com/doc/596099693.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语言的数据库访问技术试题

一、选择题 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数据库连接JDBC和MVC

1 JDBCutil.java package www.chinasofiti.eex.jdbcutil; import java.sql.Connection; import java.sql.DriverManager; public class JDBCutil { public static final String DRIVER = "oracle.jdbc.driver.OracleDriver"; public static final String URL="jdbc:oracle:thin:@192.168.80.49:1521:XE"; public static final String USER="SCOTT"; public static final String PASSWORD="TIGER"; public static Connection conn; public JDBCutil(){ } public static Connection getConnection() throws Exception{ Class.forName(DRIVER);//加载驱动 conn=DriverManager.getConnection(URL,USER,PASSWORD);//链接数据库 System.out.println(conn); System.out.println("数据库链接成功"); return conn; } // public static void main(String[]args){ // try { // getConnection(); // } catch (Exception e) { // // TODO Auto-generated catch block // e.printStackTrace();

相关主题
文本预览
相关文档 最新文档