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 }