1、Build path添加jdbc驱动包

2、编写驱动类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; public class Connect {
public Connection getconnect(){
Connection con=null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/bs?serverTimezone=UTC";
String user = "root"; //自己数据库的用户名
String password = "1234"; //自己数据库的密码
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
if (!con.isClosed())
System.out.println("\n\t\t成功以 " + user + " 身份连接到数据库!!!");
return con;
}
catch (ClassNotFoundException e) {
// 数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
}
catch (SQLException e) {
// 数据库连接失败异常处理
e.printStackTrace();
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally {
System.out.println("\t\t\t\t\t\t\t\t获取数据库数据完毕!!!");
}
return con;
}
}

3、调用这个类

package com.ins;

import java.sql.*;
import javax.naming.*;
import javax.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSetMetaData; public class run {
public static void main(String[] args) { test("select * from d_org");
} public static void test(String sql){
Connect _connect=new Connect();
Connection con=_connect.getconnect();
try
{
Statement statement = con.createStatement();
// 3.ResultSet类,用来存放获取的结果集!!
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= columnsNumber; i++) {
if (i > 1) System.out.print(", ");
String columnValue = rs.getString(i);
System.out.print(rsmd.getColumnName(i) + " " + columnValue);
}
System.out.println("\n");
} }
catch (Exception e)
{
e.printStackTrace();
} } }

其他两个访问数据库查询和保存结果的类:

package com.ins;

import java.sql.*;
import javax.naming.*;
import javax.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSetMetaData; public class ExeQueryResult {
public String[][] getSelectResultWithStringArray(String sql)
{
Connect _connect=new Connect(); //连接数据库
Connection con=_connect.getconnect(); if(con==null)
return null; try
{
Statement statement = con.createStatement();
ResultSet rs = statement.executeQuery(sql); // 3.ResultSet类,用来存放获取的结果集!! if(rs==null){
System.out.println("查询结果为空!\n");
return null;
} ResultSetMetaData rsmd = rs.getMetaData();
int rowsNumber = 0;
int columnsNumber = rsmd.getColumnCount(); //列数目
rs.last();
rowsNumber=rs.getRow(); //行数目
rs.first(); Object o;
Object[][] ob = new Object[rowsNumber][columnsNumber];
int colType; for (int i = 0; i < rowsNumber; i++) {
for (int j = 0; j < columnsNumber; j++) {
o = rs.getObject(j + 1);
if(getIndexType(rs,j) == 0)
System.out.print("没有该类型!");
else {
colType = getIndexType(rs,j);
switch (colType) {
case java.sql.Types.DATE:
Date d = (Date) o;
if (d != null)
{
ob[i][j] = d.toString();
}
break;
case java.sql.Types.TIME:
Time t = (Time) o;
if (t != null)
{
ob[i][j] = t.toString();
}
break;
case java.sql.Types.TIMESTAMP: //时间戳
Timestamp ts = (Timestamp) o;
if (ts != null)
{
ob[i][j] = ts.toString();
}
break;
default:
ob[i][j] = o;
break;
}
} }
rs.next();
}
con.close(); String[][] s = new String[ob.length][ob[0].length];
for (int i = 0; i < ob.length; i++) {
for (int j = 0; j < ob[i].length; j++) {
if (ob[i][j] != null) { s[i][j] = ob[i][j].toString().trim(); //tirm()去掉两端多余字符
}
else {
s[i][j] = "";
}
}
} return s;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
} private int getIndexType(ResultSet set,int i) {
int type = 0;
try {
/*
getColumType()方法
方法说明:根据字段的索引值取得字段的类型,返回值的定义在java.sql.Type类
参数:column,字段的索引值,从1开始
返回值:字符串,SQL的数据类型定义在java.sql.Type类
异常产生:数据库发生任何的错误,则会产生一个SQLException对象
*/
type = set.getMetaData().getColumnType(i + 1);
}
catch (SQLException e) {
e.printStackTrace();
}
return type;
} } /*
int r=0;
for (int i = 1; i <= columnsNumber; i++) {
String s1=rsmd.getColumnLabel(i);
s[0][i]=s1;
} rs.first();
while (rs.next()) {
r++;
for(int i=1;i<=columnsNumber;i++){
String columnValue =new String(rs.getString(i));
s[r][i]=columnValue;
}
} */
package com.ins;

import java.sql.*;
import java.util.*;
import javax.naming.*;
import javax.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSetMetaData; public class ExeInsertUpdateDelete {
public final static int INSERT = 1; //插入
public final static int UPDATE = 2; //修改
public final static int DELETE = 3; //删除
public static String keyMark = "$"; //关键子段标识
public static String nonKeyMark ="_"; //一般字段标识 Connect _connect=new Connect();
Connection con=_connect.getconnect(); public boolean execSql(String tableName,int tableAction,Hashtable dbParam){
return false;
} public boolean execSql(String sqlStr){ try{
Statement stmt1 =con.createStatement(); // 创建用于执行静态sql语句的Statement对象
//String sql="insert into d_org(ORG_ID,ORG_NAME,ORG_ORDER,UP_ORG_ID) values (1,null,null,0)" ;
stmt1.executeUpdate(sqlStr);
return true;
}
catch (SQLException e){
e.printStackTrace();
return false;
}
// return false;
} public boolean execSql(String[] sql){ Statement statement=null;
try {
Class.forName("com.mysql.jdbc.Driver"); //加载驱动
statement =con.createStatement();
con.setAutoCommit(false); //相当于 set autocommit=0;
statement =con.createStatement();
for(int i=0;i<sql.length;i++) {
statement.addBatch(sql[i]);
}
statement.executeBatch(); //将上述SQL语句批量执行。
con.commit(); //executeBatch()语句若不出错,提交事务。
return true;
}
catch (Exception e) {
try {
//如果在创建连接对象过程中爆发异常,connection就会为null。若不加if语句,就会出现空指针异常。
if(con!=null) {
con.rollback(); //executeBatch()语句若出错,回滚,两个SQL语句执行不成功。
}
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
return false;
}
finally {
try {
if (statement!=null) {
statement.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
try {
if (con!=null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

MyEclipse web项目连接数据库的更多相关文章

  1. MyEclipse Web项目部署失败:Deployment failure on Tomcat 7.x.Could not copy all resources to XXX.

    在做第一个MyEclipse web项目时,总是部署失败: Deployment failure on Tomcat 7.x.Could not copy all resources to XXX.I ...

  2. MyEclipse web项目导入Eclipse,详细说明

    最近导入一个MyEclipse的项目,具体是:spring4.1的web项目,同时遇到了一些问题,总结一下. 1.进入项目目录,找到.project文件,打开.增加一个<buildCommand ...

  3. Java.MyEclipse Web项目导入Eclipse

    Java项目, 在MyEclipse中开发保存的目录结构和配置, 是不能直接在Eclipse中导入和运行的; 有时我们会碰到想把MyEclipse项目导入到Eclipse中开发的需求, 记录过程如下: ...

  4. Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题

    喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在My ...

  5. myeclipse:web项目不能显示Web App Libraries

    项目根路径下.classpath文件,加上 <classpathentry kind="con" path="org.eclipse.jst.j2ee.intern ...

  6. MyEclipse Web项目调试

    1.发布项目 2.启动服务 服务有两种启动方式,Run Server和Debug Server Run Server是运行模式,Debug Server是调试模式 使用Debug Server模式启动 ...

  7. MyEclipse Web 项目导入 Eclipse 中需要改的文件

    来自为知笔记(Wiz)

  8. servlet web项目连接数据库报错

    报错信息类似这样: Wed May 27 14:15:54 CST 2020 WARN: Establishing SSL connection without server's identity v ...

  9. myeclipse中的web项目导入到eclipse中注意事项,项目部署到tomcat后无法访问jsp文件

    打开eclipse,点击空白处,右键可以看到import>general>existing projects into workspace>next>选择你的myeclipse ...

随机推荐

  1. 当你的系统依赖于某个bug...

    标题粗略看是有点违反常识的,bug通常是指某些代码存在问题导致系统没有按照期望方式工作,应该是需要尽可能被修复的,这样系统才会正常工作.但是,开发实践中会发现在某些情况下,本来功能没有问题,在你信心满 ...

  2. java Iterator迭代器

    一 Iterator迭代器概述 java中提供了很多个集合,它们在存储元素时,采用的存储方式不同.我们要取出这些集合 中的元素,可通过一种通用的获取方式来完成. Collection集合元素的通用获取 ...

  3. 2020-06-22:已知两个非负数的异或值为M,两数之和为N,求这两个数?

    福哥答案2020-06-22: 1.遍历法时间复杂度:O(N)最好空间复杂度:O(1)平均空间复杂度:O(sqrt(N))最坏空间复杂度:O(N)[0,N/2]依次遍历,符合条件的就是需要的结果. 2 ...

  4. C#LeetCode刷题-几何

    几何篇 # 题名 刷题 通过率 难度 587 安装栅栏   21.5% 困难 892 三维形体的表面积 C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Sh ...

  5. super与this的区别,更进一步的区别!——Java学习

    文章目录 this与super的含义 前言 例证 this super 总结 this与super的含义 在Java中,this有两层含义: 指示隐式参数的引用(就是当前对象的引用) 调用该类的其他构 ...

  6. 轻量级Java EE企业应用实战:Struts2+Spring5+Hibernate5/JPA2

    轻量级Java EE企业应用实战(第5版)——Struts 2+Spring 5+Hibernate 5/JPA 2整合开发是<轻量级Java EE企业应用实战>的第5版,这一版保持了前几 ...

  7. python 04 分支和循环

    创建一个框架  名字.py 打飞机游戏 加载音乐 播放音乐 我打飞机诞生 inter=0 while true: if 用户是否惦记了关闭: 退出程序 bleak inter+=1 if inter ...

  8. java class类和object类

    Class类 介绍 Java的Class类是java反射机制的基础,通过Class类我们可以获得关于一个类的相关信息 Java.lang.Class是一个比较特殊的类,它用于封装被装入到JVM中的类( ...

  9. Golang bytes.buffer详解

    原文:https://www.jianshu.com/p/e53083132a25 Buffer 介绍 Buffer 是 bytes 包中的一个 type Buffer struct{…} A buf ...

  10. 结对项目 实现自动生成四则运算题目的程序 (C++)

    本次作业由 陈余 与 郭奕材 结对完成 零.github地址: https://github.com/King-Authur/-Automatically-generate-four-arithmet ...