每次在面试时被问到jdbc的数据路链接过程都卡着,这次不怕了,背会了。。。
第一个,比较粗糙的

try{
 

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

}

catch(ClassNotFoundException e) {}

//定义所要用到的三个数据库应用对象

Connection con=null; //连接对象

Statement sql=null; //Statement对象(SQL语句)

ResultSet rs=null; //结果集对象

//进行数据源的连接

try{
 

con=DriverManager.getConnection ("jdbc:mysql://localhost/scutcs","","");//连接数据库的url 用户名和密码

sql=con.createStatement();

String to="Select * From user1 Where username='"+username+"'";

rs=sql.executeQuery(to); //根据所定义的Statement执行生成相应的结果集并存在RS中

if(rs.next()) //判断结果集是否为空,如果不为空则表示有记录

{

out.print("<script>alert('用户名 "+xm+"已存在,请另选一个!');history.back();</script>");//如果存在返回注册页面

}

else {如果不存在就向数据库添加一条记录}

}

catch (SQLException e)
 

{ out.print(e);
 

}

第二个 ,作为公共类比较完整些的  把部分的定义为单个函数方便调用
import java.sql.*;

public class DB {

public static Connection getConn() {

Connection conn = null;

try {

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

conn = DriverManager.getConnection("jdbc:mysql://localhost/shopping?user=root&password=123456");

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

public static PreparedStatement prepare(Connection conn, String sql) {

PreparedStatement pstmt = null;
 

try {

if(conn != null) {

pstmt = conn.prepareStatement(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return pstmt;

}

public static PreparedStatement prepare(Connection conn, String sql, int autoGenereatedKeys) {

PreparedStatement pstmt = null;
 

try {

if(conn != null) {

pstmt = conn.prepareStatement(sql, autoGenereatedKeys);

}

} catch (SQLException e) {

e.printStackTrace();

}

return pstmt;

}

public static Statement getStatement(Connection conn) {

Statement stmt = null;
 

try {

if(conn != null) {

stmt = conn.createStatement();

}

} catch (SQLException e) {

e.printStackTrace();

}

return stmt;

}

/*

public static ResultSet getResultSet(Connection conn, String sql) {

Statement stmt = getStatement(conn);

ResultSet rs = getResultSet(stmt, sql);

close(stmt);

return rs;

}

*/

public static ResultSet getResultSet(Statement stmt, String sql) {

ResultSet rs = null;

try {

if(stmt != null) {

rs = stmt.executeQuery(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

public static void executeUpdate(Statement stmt, String sql) {

try {

if(stmt != null) {

stmt.executeUpdate(sql);

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void close(Connection conn) {

try {

if(conn != null) {

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

public static void close(Statement stmt) {

try {

if(stmt != null) {

stmt.close();

stmt = null;

}

} catch (SQLException e) {

e.printStackTrace();

}


}
 

Java 建立mysql数据库连接的语句的更多相关文章

  1. Java方式 MySQL数据库连接

    JDBC-ODBC : 桥连就是将对JDBC API的调用转换为对另一组数据库连接(即 ODBC) API 的调用 JDBC-ODBC桥连方式驱动类是: sun.jdbc.odbc.JdbcOdbcD ...

  2. Java通用oracle和mysql数据库连接

    Java中oracle数据库连接写一个通用类UBUtil(){} import java.io.InputStream; import java.sql.*; import java.util.Pro ...

  3. mysql数据库连接出问题,提示超时 java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.解决办法

    mysql数据库连接出问题,提示超时,后来发现问题在于连接mysql数据库的jar包跟数据库版本不对应导致的,更换jar包一致就解决了.

  4. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  5. Java 操作MySql数据库

    Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...

  6. 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类

    一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...

  7. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  8. node+mysql 数据库连接池

    1. 什么是数据库连接池? 数据库连接池是程序启动时建立足够的数据库连接,并将这些连接组成一个池,由程序动态地对池中的连接进行申请,使用和释放. 2. 使用数据库连接池原理及优点是什么? 数据库连接池 ...

  9. java访问mysql数据库

    package com.mysql.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...

随机推荐

  1. java 随机数的生成

    生成10个不小于100000的6位数 public static void main(String[] args) { Random random = new Random(); for (int i ...

  2. android的四种加载模式

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  3. easyUI相关知识

    $("#sportGroupInfoDialog").dialog("open");//打开一个对话框,设置这个对话框的的布局方式 $('#sportGroup ...

  4. 搭建Windows SVN服务器及TortoiseSVN使用帮助和下载

    搭建Windows SVN服务器: 用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行 ...

  5. Flash, Flex, Air, Flashplayer之间的相互关系是什么?

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:曾嵘链接:http://www.zhihu.com/question/20001256/answer/15565376来源:知 ...

  6. 基于visual Studio2013解决C语言竞赛题之1040因数分解

     题目 解决代码及点评 /* 将一个数M分解为质因数(M≠0). */ #include <stdio.h> #include <stdlib.h> void main() ...

  7. 基于visual Studio2013解决C语言竞赛题之1035最大数

          题目 解决代码及点评 /* 35. 用随机函数求出10组三位正整数,每组十个数, 调用一函数打印出每组数,并编一函数求出每组中的最大数. */ #include & ...

  8. HDU 1425 sort 题解

    选择出数列中前k个最大的数. 这里由于数据特殊.所以能够使用hash表的方法: #include <cstdio> #include <algorithm> #include ...

  9. perl 登陆电信猫

    登陆电信猫: use LWP::UserAgent; use HTTP::Date qw(time2iso str2time time2iso time2isoz); use Net::Ping; u ...

  10. haproxy timeout server 46000 后台超时时间

    [root@wx03 ~]# sh ./1.sh Wed Jul 6 19:54:40 CST 2016 <html><body><h1>504 Gateway T ...