MyEclipse web项目连接数据库
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项目连接数据库的更多相关文章
- 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 ...
- MyEclipse web项目导入Eclipse,详细说明
最近导入一个MyEclipse的项目,具体是:spring4.1的web项目,同时遇到了一些问题,总结一下. 1.进入项目目录,找到.project文件,打开.增加一个<buildCommand ...
- Java.MyEclipse Web项目导入Eclipse
Java项目, 在MyEclipse中开发保存的目录结构和配置, 是不能直接在Eclipse中导入和运行的; 有时我们会碰到想把MyEclipse项目导入到Eclipse中开发的需求, 记录过程如下: ...
- Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题
喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在My ...
- myeclipse:web项目不能显示Web App Libraries
项目根路径下.classpath文件,加上 <classpathentry kind="con" path="org.eclipse.jst.j2ee.intern ...
- MyEclipse Web项目调试
1.发布项目 2.启动服务 服务有两种启动方式,Run Server和Debug Server Run Server是运行模式,Debug Server是调试模式 使用Debug Server模式启动 ...
- MyEclipse Web 项目导入 Eclipse 中需要改的文件
来自为知笔记(Wiz)
- servlet web项目连接数据库报错
报错信息类似这样: Wed May 27 14:15:54 CST 2020 WARN: Establishing SSL connection without server's identity v ...
- myeclipse中的web项目导入到eclipse中注意事项,项目部署到tomcat后无法访问jsp文件
打开eclipse,点击空白处,右键可以看到import>general>existing projects into workspace>next>选择你的myeclipse ...
随机推荐
- Kibana配置nginx反代并本地ca加密nginx
简介 我们部署完ELK Stack后,虽然可以直接浏览器访问kibana进行访问,但这样对一些重要数据来说是不安全的,可以利用密码验证设置权限访问,在Kibana所在的服务器上安装Nginx服务,利用 ...
- C++ 的字符串反转
C++ 的字符串反转 方法一: 使用 algorithm 中的 reverse 函数: // reverse 函数的定义(在 std 名称空间中) template<class BidirIt& ...
- 《Head First 设计模式》:命令模式
正文 一.定义 命令模式将"请求"封装成对象(命令对象),以便使用不同的"请求"来参数化其他对象. 要点: 命令模式可将"动作的请求者"从& ...
- 认识与学习BASH①——鸟叔的Linux私房菜
文章目录 认识与学习BASH① 认识BASH 壳程序 多种shells Bash shell 的功能 type :查询指令是否为Bash shell 的内置指令 指令的换行输入和快速删除 Shell的 ...
- LeetCode 120. Triangle (三角形最小路径和)详解
题目详情 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径 ...
- golang 整型
目录 前言 整型 1.分类 2.类型 3.类型补充 4.补充: 跳转 前言 不做文字的搬运工,多做灵感性记录 这是平时学习总结的地方,用做知识库 平时看到其他文章的相关知识,也会增加到这里 随着学习深 ...
- stat 命令家族(2)- 详解 pidstat
性能测试必备的 Linux 命令系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1819490.html 介绍 对 Linux 任务的统计 ...
- Android 禁止ViewPager左右滑动的功能实现
来来来,各位看官~ Look here!!! Android 禁止ViewPager左右滑动的功能实现!! I think it`s so easy,无需重写ViewPager!!! JUST ...
- Spring源码阅读 ------------------- SpringFrameWork 5.2 +IDEA 部署
Spring作为JAVA学习者的必须学习和熟悉的框架,需要理解Spring的设计原理,核心设计模式,对于理解设计模式,面向对象的深入理解有着深远持久的影响,特此首先要做到本地部署源码开始,下面将介绍如 ...
- postman with xdebug
Set the url with ?XDEBUG_SESSION_START=PHPSTORM and set a header Cookie: XDEBUG_SESSION=PHPSTORM