1、Build path添加jdbc驱动包

2、编写驱动类

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.SQLException;
  4.  
  5. public class Connect {
  6. public Connection getconnect(){
  7. Connection con=null;
  8. String driver = "com.mysql.jdbc.Driver";
  9. String url = "jdbc:mysql://localhost:3306/bs?serverTimezone=UTC";
  10. String user = "root"; //自己数据库的用户名
  11. String password = "1234"; //自己数据库的密码
  12. try {
  13. Class.forName(driver);
  14. con = DriverManager.getConnection(url, user, password);
  15. if (!con.isClosed())
  16. System.out.println("\n\t\t成功以 " + user + " 身份连接到数据库!!!");
  17. return con;
  18. }
  19. catch (ClassNotFoundException e) {
  20. // 数据库驱动类异常处理
  21. System.out.println("Sorry,can`t find the Driver!");
  22. e.printStackTrace();
  23. }
  24. catch (SQLException e) {
  25. // 数据库连接失败异常处理
  26. e.printStackTrace();
  27. }
  28. catch (Exception e) {
  29. // TODO: handle exception
  30. e.printStackTrace();
  31. }
  32. finally {
  33. System.out.println("\t\t\t\t\t\t\t\t获取数据库数据完毕!!!");
  34. }
  35. return con;
  36. }
  37. }

3、调用这个类

  1. package com.ins;
  2.  
  3. import java.sql.*;
  4. import javax.naming.*;
  5. import javax.sql.*;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11. import java.sql.ResultSetMetaData;
  12.  
  13. public class run {
  14. public static void main(String[] args) {
  15.  
  16. test("select * from d_org");
  17. }
  18.  
  19. public static void test(String sql){
  20. Connect _connect=new Connect();
  21. Connection con=_connect.getconnect();
  22. try
  23. {
  24. Statement statement = con.createStatement();
  25. // 3.ResultSet类,用来存放获取的结果集!!
  26. ResultSet rs = statement.executeQuery(sql);
  27. ResultSetMetaData rsmd = rs.getMetaData();
  28. int columnsNumber = rsmd.getColumnCount();
  29. while (rs.next()) {
  30. for (int i = 1; i <= columnsNumber; i++) {
  31. if (i > 1) System.out.print(", ");
  32. String columnValue = rs.getString(i);
  33. System.out.print(rsmd.getColumnName(i) + " " + columnValue);
  34. }
  35. System.out.println("\n");
  36. }
  37.  
  38. }
  39. catch (Exception e)
  40. {
  41. e.printStackTrace();
  42. }
  43.  
  44. }
  45.  
  46. }

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

  1. package com.ins;
  2.  
  3. import java.sql.*;
  4. import javax.naming.*;
  5. import javax.sql.*;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11. import java.sql.ResultSetMetaData;
  12.  
  13. public class ExeQueryResult {
  14. public String[][] getSelectResultWithStringArray(String sql)
  15. {
  16. Connect _connect=new Connect(); //连接数据库
  17. Connection con=_connect.getconnect();
  18.  
  19. if(con==null)
  20. return null;
  21.  
  22. try
  23. {
  24. Statement statement = con.createStatement();
  25. ResultSet rs = statement.executeQuery(sql); // 3.ResultSet类,用来存放获取的结果集!!
  26.  
  27. if(rs==null){
  28. System.out.println("查询结果为空!\n");
  29. return null;
  30. }
  31.  
  32. ResultSetMetaData rsmd = rs.getMetaData();
  33. int rowsNumber = 0;
  34. int columnsNumber = rsmd.getColumnCount(); //列数目
  35. rs.last();
  36. rowsNumber=rs.getRow(); //行数目
  37. rs.first();
  38.  
  39. Object o;
  40. Object[][] ob = new Object[rowsNumber][columnsNumber];
  41. int colType;
  42.  
  43. for (int i = 0; i < rowsNumber; i++) {
  44. for (int j = 0; j < columnsNumber; j++) {
  45. o = rs.getObject(j + 1);
  46. if(getIndexType(rs,j) == 0)
  47. System.out.print("没有该类型!");
  48. else {
  49. colType = getIndexType(rs,j);
  50. switch (colType) {
  51. case java.sql.Types.DATE:
  52. Date d = (Date) o;
  53. if (d != null)
  54. {
  55. ob[i][j] = d.toString();
  56. }
  57. break;
  58. case java.sql.Types.TIME:
  59. Time t = (Time) o;
  60. if (t != null)
  61. {
  62. ob[i][j] = t.toString();
  63. }
  64. break;
  65. case java.sql.Types.TIMESTAMP: //时间戳
  66. Timestamp ts = (Timestamp) o;
  67. if (ts != null)
  68. {
  69. ob[i][j] = ts.toString();
  70. }
  71. break;
  72. default:
  73. ob[i][j] = o;
  74. break;
  75. }
  76. }
  77.  
  78. }
  79. rs.next();
  80. }
  81. con.close();
  82.  
  83. String[][] s = new String[ob.length][ob[0].length];
  84. for (int i = 0; i < ob.length; i++) {
  85. for (int j = 0; j < ob[i].length; j++) {
  86. if (ob[i][j] != null) {
  87.  
  88. s[i][j] = ob[i][j].toString().trim(); //tirm()去掉两端多余字符
  89. }
  90. else {
  91. s[i][j] = "";
  92. }
  93. }
  94. }
  95.  
  96. return s;
  97. }
  98. catch (Exception e)
  99. {
  100. e.printStackTrace();
  101. return null;
  102. }
  103. }
  104.  
  105. private int getIndexType(ResultSet set,int i) {
  106. int type = 0;
  107. try {
  108. /*
  109. getColumType()方法
  110. 方法说明:根据字段的索引值取得字段的类型,返回值的定义在java.sql.Type类
  111. 参数:column,字段的索引值,从1开始
  112. 返回值:字符串,SQL的数据类型定义在java.sql.Type类
  113. 异常产生:数据库发生任何的错误,则会产生一个SQLException对象
  114. */
  115. type = set.getMetaData().getColumnType(i + 1);
  116. }
  117. catch (SQLException e) {
  118. e.printStackTrace();
  119. }
  120. return type;
  121. }
  122.  
  123. }
  124.  
  125. /*
  126. int r=0;
  127. for (int i = 1; i <= columnsNumber; i++) {
  128. String s1=rsmd.getColumnLabel(i);
  129. s[0][i]=s1;
  130. }
  131.  
  132. rs.first();
  133. while (rs.next()) {
  134. r++;
  135. for(int i=1;i<=columnsNumber;i++){
  136. String columnValue =new String(rs.getString(i));
  137. s[r][i]=columnValue;
  138. }
  139. }
  140.  
  141. */
  1. package com.ins;
  2.  
  3. import java.sql.*;
  4. import java.util.*;
  5. import javax.naming.*;
  6. import javax.sql.*;
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.ResultSet;
  10. import java.sql.SQLException;
  11. import java.sql.Statement;
  12. import java.sql.ResultSetMetaData;
  13.  
  14. public class ExeInsertUpdateDelete {
  15. public final static int INSERT = 1; //插入
  16. public final static int UPDATE = 2; //修改
  17. public final static int DELETE = 3; //删除
  18. public static String keyMark = "$"; //关键子段标识
  19. public static String nonKeyMark ="_"; //一般字段标识
  20.  
  21. Connect _connect=new Connect();
  22. Connection con=_connect.getconnect();
  23.  
  24. public boolean execSql(String tableName,int tableAction,Hashtable dbParam){
  25. return false;
  26. }
  27.  
  28. public boolean execSql(String sqlStr){
  29.  
  30. try{
  31. Statement stmt1 =con.createStatement(); // 创建用于执行静态sql语句的Statement对象
  32. //String sql="insert into d_org(ORG_ID,ORG_NAME,ORG_ORDER,UP_ORG_ID) values (1,null,null,0)" ;
  33. stmt1.executeUpdate(sqlStr);
  34. return true;
  35. }
  36. catch (SQLException e){
  37. e.printStackTrace();
  38. return false;
  39. }
  40. // return false;
  41. }
  42.  
  43. public boolean execSql(String[] sql){
  44.  
  45. Statement statement=null;
  46. try {
  47. Class.forName("com.mysql.jdbc.Driver"); //加载驱动
  48. statement =con.createStatement();
  49. con.setAutoCommit(false); //相当于 set autocommit=0;
  50. statement =con.createStatement();
  51. for(int i=0;i<sql.length;i++) {
  52. statement.addBatch(sql[i]);
  53. }
  54. statement.executeBatch(); //将上述SQL语句批量执行。
  55. con.commit(); //executeBatch()语句若不出错,提交事务。
  56. return true;
  57. }
  58. catch (Exception e) {
  59. try {
  60. //如果在创建连接对象过程中爆发异常,connection就会为null。若不加if语句,就会出现空指针异常。
  61. if(con!=null) {
  62. con.rollback(); //executeBatch()语句若出错,回滚,两个SQL语句执行不成功。
  63. }
  64. } catch (SQLException e1) {
  65. e1.printStackTrace();
  66. }
  67. e.printStackTrace();
  68. return false;
  69. }
  70. finally {
  71. try {
  72. if (statement!=null) {
  73. statement.close();
  74. }
  75. }
  76. catch (SQLException e) {
  77. e.printStackTrace();
  78. }
  79. try {
  80. if (con!=null) {
  81. con.close();
  82. }
  83. } catch (SQLException e) {
  84. e.printStackTrace();
  85. }
  86. }
  87. }
  88. }

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. Kibana配置nginx反代并本地ca加密nginx

    简介 我们部署完ELK Stack后,虽然可以直接浏览器访问kibana进行访问,但这样对一些重要数据来说是不安全的,可以利用密码验证设置权限访问,在Kibana所在的服务器上安装Nginx服务,利用 ...

  2. C++ 的字符串反转

    C++ 的字符串反转 方法一: 使用 algorithm 中的 reverse 函数: // reverse 函数的定义(在 std 名称空间中) template<class BidirIt& ...

  3. 《Head First 设计模式》:命令模式

    正文 一.定义 命令模式将"请求"封装成对象(命令对象),以便使用不同的"请求"来参数化其他对象. 要点: 命令模式可将"动作的请求者"从& ...

  4. 认识与学习BASH①——鸟叔的Linux私房菜

    文章目录 认识与学习BASH① 认识BASH 壳程序 多种shells Bash shell 的功能 type :查询指令是否为Bash shell 的内置指令 指令的换行输入和快速删除 Shell的 ...

  5. LeetCode 120. Triangle (三角形最小路径和)详解

    题目详情 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...

  6. golang 整型

    目录 前言 整型 1.分类 2.类型 3.类型补充 4.补充: 跳转 前言 不做文字的搬运工,多做灵感性记录 这是平时学习总结的地方,用做知识库 平时看到其他文章的相关知识,也会增加到这里 随着学习深 ...

  7. stat 命令家族(2)- 详解 pidstat

    性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 对 Linux 任务的统计 ...

  8. Android 禁止ViewPager左右滑动的功能实现

    来来来,各位看官~ Look here!!! Android    禁止ViewPager左右滑动的功能实现!! I think it`s so easy,无需重写ViewPager!!! JUST ...

  9. Spring源码阅读 ------------------- SpringFrameWork 5.2 +IDEA 部署

    Spring作为JAVA学习者的必须学习和熟悉的框架,需要理解Spring的设计原理,核心设计模式,对于理解设计模式,面向对象的深入理解有着深远持久的影响,特此首先要做到本地部署源码开始,下面将介绍如 ...

  10. postman with xdebug

    Set the url with ?XDEBUG_SESSION_START=PHPSTORM and set a header Cookie: XDEBUG_SESSION=PHPSTORM