JDBC连接MySQL数据库代码

******************************************************1**********************************************************
1
import java.sql.DriverManager; 2 import java.sql.ResultSet; 3 import java.sql.SQLException; 4 import java.sql.Connection; 5 import java.sql.Statement; 6 7 8 public class MysqlDemo { 9 public static void main(String[] args) throws Exception { 10 Connection conn = null; 11 String sql; 12 // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?参数=值 13 // 避免中文乱码要指定useUnicode和characterEncoding 14 // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定, 15 // 下面语句之前就要先创建javademo数据库 16 String url = "jdbc:mysql://localhost:3306/javademo?" 17 + "user=root&password=root&useUnicode=true&characterEncoding=UTF8"; 18 19 try { 20 // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来, 21 // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以 22 Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动 23 // or: 24 // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); 25 // or: 26 // new com.mysql.jdbc.Driver(); 27 28 System.out.println("成功加载MySQL驱动程序"); 29 // 一个Connection代表一个数据库连接 30 conn = DriverManager.getConnection(url); 31 // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等 32 Statement stmt = conn.createStatement(); 33 sql = "create table student(NO char(20),name varchar(20),primary key(NO))"; 34 int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功 35 if (result != -1) { 36 System.out.println("创建数据表成功"); 37 sql = "insert into student(NO,name) values('2012001','陶伟基')"; 38 result = stmt.executeUpdate(sql); 39 sql = "insert into student(NO,name) values('2012002','周小俊')"; 40 result = stmt.executeUpdate(sql); 41 sql = "select * from student"; 42 ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值 43 System.out.println("学号\t姓名"); 44 while (rs.next()) { 45 System.out 46 .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt() 47 } 48 } 49 } catch (SQLException e) { 50 System.out.println("MySQL操作错误"); 51 e.printStackTrace(); 52 } catch (Exception e) { 53 e.printStackTrace(); 54 } finally { 55 conn.close(); 56 } 57 58 } 59 60 }

******************************************2*****************************************

 1 DBHelper.java
 2 package com.hu.demo;
 3 
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 import java.sql.SQLException;
 8 
 9 public class DBHelper {
10     public static final String url = "jdbc:mysql://127.0.0.1/student";
11     public static final String name = "com.mysql.jdbc.Driver";
12     public static final String user = "root";
13     public static final String password = "root";
14 
15     public Connection conn = null;
16     public PreparedStatement pst = null;
17 
18     public DBHelper(String sql) {
19         try {
20             Class.forName(name);//指定连接类型
21             conn = DriverManager.getConnection(url, user, password);//获取连接
22             pst = conn.prepareStatement(sql);//准备执行语句
23         } catch (Exception e) {
24             e.printStackTrace();
25         }
26     }
27 
28     public void close() {
29         try {
30             this.conn.close();
31             this.pst.close();
32         } catch (SQLException e) {
33             e.printStackTrace();
34         }
35     }
36 }
 1 Demo.java
 2 package com.hu.demo;
 3 
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 
 7 public class Demo {
 8 
 9     static String sql = null;
10     static DBHelper db1 = null;
11     static ResultSet ret = null;
12 
13     public static void main(String[] args) {
14         sql = "select *from stuinfo";//SQL语句
15         db1 = new DBHelper(sql);//创建DBHelper对象
16 
17         try {
18             ret = db1.pst.executeQuery();//执行语句,得到结果集
19             while (ret.next()) {
20                 String uid = ret.getString(1);
21                 String ufname = ret.getString(2);
22                 String ulname = ret.getString(3);
23                 String udate = ret.getString(4);
24                 System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );
25             }//显示数据
26             ret.close();
27             db1.close();//关闭连接
28         } catch (SQLException e) {
29             e.printStackTrace();
30         }
31     }
32 
33 }

*********************************************3********************************************************

 1 /*JDBC
 2 
 3 1.         在Java中,软件功能都是由类来完成的。
 4 
 5 2.         用于操作数据库的类统称为JDBC(java database connective)
 6 
 7 3.         数据库产品比较多(mysql,oracle,sqlserver),java并没有提供访问数据库的JDBC类,这些类都是由数据库厂商提供的。
 8 
 9 4.         Java只提供了访问数据库的接口,数据库厂商的类实现了接口。
10 
11 5.         在java中操作数据库需要导入数据库厂商提供的类,这些类通常被放在以.jar为扩展名的文件中,这个文件称为jar文件。
12 
13 6.         数据库操作通常指的是(CRUD),其本质就是java向数据库中发送sql语句,然后在数据库中执行sql语句 。
14 
15 7.         完成数据库操作需要以下接口配合完成
16 
17 a)         DriverManager 类驱动程序
18 
19 b)         Connection 接口连接数据库的类
20 
21 c)         Statement 接口执行sql语句的类
22 
23 d)         ResultSet 接口保存结果集的类
24 
25 JDBC连接mysql数据库代码
26 */
27 import java.sql.*;
28 public class Insert {
29  public static void main(String[] args) {
30   Connection conn =null;//conn用于连接数据库
31   Statement stmt = null;//stmt用于发送sql语句到数据库并执行sql语句
32   //localhost:表示数据库服务器地址,如192.168.0.1
33   //3306表示端口号
34   //test是数据库名称
35   //user是数据库用户名
36   //password是数据库的密码
37   String connectionString = "jdbc:mysql://localhost:3306/test?user=root&password=root";
38   
39   try {
40    //将数据驱动程序类加载到内存中
41    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
42    
43    //通过驱动程序管理器DriverManager获取连接对象conn,conn连接的服务器和数据库信息在connectionString
44    conn = DriverManager.getConnection(connectionString);
45    stmt = conn.createStatement();
46    String sql ="insert into mytable(username,age) values('色即是空',28)";
47    
48    //将sql语句发送到test数据中,并执行,i是影响的行数  >0表示成功 否则表示失败
49    int i = stmt.executeUpdate(sql);
50    if(i>0){
51     System.out.println("哈哈,添加成功啦");
52    }else{
53     System.out.println("哈哈,添加!!!!!成功啦");
54    }
55   } catch (InstantiationException e) {
56    e.printStackTrace();
57   } catch (IllegalAccessException e) {
58    e.printStackTrace();
59   } catch (ClassNotFoundException e) {
60    e.printStackTrace();
61   } catch (SQLException e) {
62    e.printStackTrace();
63   }
64   
65  }
66 }

********************************4***************************

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.SQLException;
 4 import java.sql.ResultSet;
 5 import java.sql.Statement;
 6 import java.sql.*;
 7 
 8 public class BaseConnection {
 9 private Connection con = null;  
10 protected Connection getCon(){
11     ResultSet rs=null;    Statement stmt = null;
12    try {
13     Class.forName("org.gjt.mm.mysql.Driver");
14     String url="jdbc:mysql://192.168.0.10/数据库名?user=USR&password=PWD";
15      conn = DriverManager.getConnection(url);  
16 
17     stmt = conn.createStatement();
18 } catch (ClassNotFoundException e) {
19     e.printStackTrace();
20    } catch (SQLException e) {
21     e.printStackTrace();
22    }      
23    return con;
24 }
25 }
26 /*
27 1、Oracle8/8i/9i数据库(thin模式)
28 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
29 String url="jdbc:oracle:thin:@localhost:1521:orcl";
30 //orcl为数据库的SID
31 String user="test";
32 String password="test";
33 Connection conn= DriverManager.getConnection(url,user,password);
34 
35 
36 2、DB2数据库
37 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
38 String url="jdbc:db2://localhost:5000/sample";
39 //sample为你的数据库名
40 String user="admin";
41 String password="";
42 Connection conn= DriverManager.getConnection(url,user,password);
43 
44 
45 3、Sql Server7.0/2000数据库
46 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
47 String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
48 //mydb为数据库
49 String user="sa";
50 String password="";
51 Connection conn= DriverManager.getConnection(url,user,password);
52 
53 
54 4、Sybase数据库
55 Class.forName("com.sybase.jdbc.SybDriver").newInstance();
56 String url =" jdbc:sybase:Tds:localhost:5007/myDB";
57 //myDB为你的数据库名
58 Properties sysProps = System.getProperties();
59 SysProps.put("user","userid");
60 SysProps.put("password","user_password");
61 Connection conn= DriverManager.getConnection(url, SysProps);
62 
63 
64 5、Informix数据库
65 Class.forName("com.informix.jdbc.IfxDriver").newInstance();
66 String url =
67 "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
68 user=testuser;password=testpassword";
69 //myDB为数据库名
70 Connection conn= DriverManager.getConnection(url);
71 
72 
73 6、MySQL数据库
74 Class.forName("org.gjt.mm.mysql.Driver").newInstance();
75 String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
76 //myDB为数据库名
77 Connection conn= DriverManager.getConnection(url);
78 
79 
80 7、PostgreSQL数据库
81 Class.forName("org.postgresql.Driver").newInstance();
82 String url ="jdbc:postgresql://localhost/myDB"
83 //myDB为数据库名
84 String user="myuser";
85 String password="mypassword";
86 Connection conn= DriverManager.getConnection(url,user,password);*/

***********************************5**********************************

  1 JDBC连接MySQL(假设数据库和jdk环境已经安装好):
  2 加载及注册JDBC驱动程序
  3 Class.forName("com.mysql.jdbc.Driver");
  4 
  5 Class.forName("com.mysql.jdbc.Driver").newInstance();
  6 
  7 JDBC URL 定义驱动程序与数据源之间的连接
  8 标准语法:
  9 <protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identifier(数据源)>
 10 
 11 MySQL的JDBC URL格式:
 12 
 13 jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][¶m2=value2]….
 14 
 15 示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password
 16 
 17 常见参数:
 18 
 19 user                       用户名
 20 
 21 password                  密码
 22 
 23 autoReconnect                  联机失败,是否重新联机(true/false 24 
 25 maxReconnect              尝试重新联机次数
 26 
 27 initialTimeout               尝试重新联机间隔
 28 
 29 maxRows                   传回最大行数
 30 
 31 useUnicode                 是否使用Unicode字体编码(true/false 32 
 33 characterEncoding          何种编码(GB2312/UTF-8/…)
 34 
 35 relaxAutocommit            是否自动提交(true/false 36 
 37 capitalizeTypeNames        数据定义的名称以大写表示
 38 
 39 大写表示
 40 
 41 建立连接对象
 42 
 43 String url="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password";Connection con = DriverManager.getConnection(url);
 44 
 45 建立SQL陈述式对象(Statement Object)
 46 
 47 Statement stmt = con.createStatement();
 48 
 49 执行SQL语句
 50 
 51 executeQuery()
 52 
 53 String query = "select * from test";
 54 
 55 ResultSet rs=stmt.executeQuery(query);
 56 
 57 结果集ResultSet
 58 
 59 while(rs.next())
 60 
 61 {rs.getString(1);rs.getInt(2);}
 62 
 63 executeUpdate()
 64 
 65 String upd="insert into test (id,name) values(1001,xuzhaori)";
 66 
 67 int con=stmt.executeUpdate(upd);
 68 
 69 execute()
 70 
 71 示例:
 72 
 73 try
 74 
 75 {
 76 
 77 }
 78 
 79 catch(SQLException sqle)
 80 
 81 {
 82 
 83 }
 84 
 85 finally
 86 
 87 {
 88 
 89 }
 90 
 91 Java类型和SQL类型 技术手册P421
 92 
 93 PreparedStatement(预编语句)
 94 
 95 PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)");
 96 
 97 stmt.setInt(1,id);
 98 
 99 stmt.setString(2,name);
100 
101 注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearParameters()方法将他清除为止
102 
103 CallableStatement(预储程序)技术手册P430
 1 import java.sql.*;
 2 publicclass MysqlJdbc {
 3   publicstaticvoid main(String args[]) {
 4     try {
 5       Class.forName("com.mysql.jdbc.Driver");     //加载MYSQL JDBC驱动程序   
 6       //Class.forName("org.gjt.mm.mysql.Driver");
 7      System.out.println("Success loading Mysql Driver!");
 8     }
 9     catch (Exception e) {
10       System.out.print("Error loading Mysql Driver!");
11       e.printStackTrace();
12     }
13     try {
14       Connection connect = DriverManager.getConnection(
15           "jdbc:mysql://localhost:3306/test","root","198876");
16            //连接URL为   jdbc:mysql//服务器地址/数据库名  ,后面的2个参数分别是登陆用户名和密码
17 
18       System.out.println("Success connect Mysql server!");
19       Statement stmt = connect.createStatement();
20       ResultSet rs = stmt.executeQuery("select * from user");
21                                                               //user 为你表的名称
22 while (rs.next()) {
23         System.out.println(rs.getString("name"));
24       }
25     }
26     catch (Exception e) {
27       System.out.print("get data error!");
28       e.printStackTrace();
29     }
30   }
31 }
 1 import java.sql.*;
 2 
 3 publicclass Myjproject {
 4  publicstaticvoid main(String args[])
 5  {
 6      try {
 7           Class.forName("com.mysql.jdbc.Driver");     //加载MYSQL JDBC驱动程序   
 8           //Class.forName("org.gjt.mm.mysql.Driver");
 9          System.out.println("Success loading Mysql Driver!");
10         }
11         catch (Exception e) {
12           System.out.print("Error loading Mysql Driver!");
13           e.printStackTrace();
14         }
15   try {
16       Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","root","198876");
17      
18        int num=100;
19        PreparedStatement Statement=connect.prepareStatement("INSERT INTO user VALUES(?,?)");
20        for(int i=0;i<num;i++)        //定义个100次的循环,往表里插入一百条信息。
21       {
22            Statement.setString(1,"chongshi"+i);
23            Statement.setString(2,"bo"+i);
24            Statement.executeUpdate();
25    }
26 
27   // } catch (ClassNotFoundException e) {
28     // TODO Auto-generated catch block
29    // System.out.println("An error has occurred:"+e.toString());
30   //  e.printStackTrace();
31    }catch(SQLException e)
32    {
33    }
34  }
35 }

 

 

posted @ 2014-04-05 14:35  zhangyongjian  阅读(8999)  评论(0编辑  收藏  举报