导图社区 Java数据库连接JDBC学习笔记思维导图
Java数据库连接JDBC学习笔记,包括加载驱动,建立连接,处理执行查询,关闭资源,元数据的内容点梳理~
编辑于2023-02-25 12:57:41 广东Java数据库连接JDBC学习笔记思维导图
package com.tool; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class SqlTool { //定义三个连接变量 private static Connection conn=null; private static PreparedStatement ps=null; private static ResultSet rs=null; //连接数据库用户名,密码 url 驱动 private static String username=null; private static String passworld=null; private static String driver=null; private static String url=null; private static FileInputStream fis=null; //使用静态块加载驱动 static{ try { //创建porperty Properties p = new Properties(); fis= new FileInputStream("jdbc.properties"); p.load(fis); username=(String) p.getProperty("username"); passworld=(String) p.getProperty("passworld"); driver=(String) p.getProperty("driver"); url=(String) p.getProperty("url"); Class.forName(driver); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { //关闭文件流 fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static Connection getConnection(){ try { conn= DriverManager.getConnection(url,username,passworld); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } /** * 统一的crud */ public static void executeUpdate(String sql,String[] parameters){ try { conn=DriverManager.getConnection(url,username,passworld); ps=conn.prepareStatement(sql); if(parameters!=null){ for (int i = 0; i ps.setString(i+1,parameters[i]); } } ps.executeUpdate(); //获取数据库连接 } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new RuntimeException(e.getMessage()); }finally{ //close(rs,ps,conn); } } //写一个查询 //表示要查询的sql语句 //select * from emp where ename=? public static ResultSet executeQuery(String sql,String[] parameters){ try { //获取数据库连接 conn=DriverManager.getConnection(url,username,passworld); //创建ps对象==>sql语句对象 ps=conn.prepareStatement(sql); //根据实际情况 if(parameters!=null){ for(int i=0;i ps.setString(i+1,parameters[i]); } } rs=ps.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); throw new RuntimeException(e.getMessage()); }finally{ //close(rs,ps,conn); } return rs; } /**关闭资源 * @param rs * @param ps * @param conn */ public static void close(ResultSet rs,Statement ps,Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } rs=null; if(ps!=null){ try { ps.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ps=null; if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public static Connection getConn() { return conn; } public static PreparedStatement getPs() { return ps; } public static ResultSet getRs() { return rs; } } package com; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.tool.SqlTool; /** * @author Administrator * */ public class TestOracle { public static void main(String args[]){ //查询方法 //selects(); //添加 //inserts(); //修改 updates(); } /**查询 * */ public static void selects(){ ResultSet rs=null; try { String sql="select * from lihaoran"; rs=SqlTool.executeQuery(sql, null); while(rs.next()){ System.out.println(rs.getString("ename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ SqlTool.close(rs,SqlTool.getPs(), SqlTool.getConn()); } } /**添加 * */ public static void inserts(){ String insert="insert into lihaoran(empno,ename) values(2,'lihaoran')"; try { SqlTool.executeUpdate(insert,null); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ SqlTool.close(SqlTool.getRs(),SqlTool.getPs(), SqlTool.getConn()); } } public static void updates(){ /*String sql1="update lihaoran set sal=sal+10 where empno=7369"; String sql2="update lihaoran set sal=sal+10 where empno=7499"; SqlTool.executeUpdate(sql1,null); SqlTool.executeUpdate(sql2,null); SqlTool.close(SqlTool.getRs(),SqlTool.getPs(), SqlTool.getConn()); */ Connection conn=null; try{ String sql1="update lihaoran set sal=sal-10 where empno=7369"; String sql2="update lihaoran set sal=sal+10 where empno=7499"; //得到连接 conn=SqlTool.getConnection(); //设置不自动提交 conn.setAutoCommit(false); PreparedStatement pst1=conn.prepareStatement(sql1); PreparedStatement pst2=conn.prepareStatement(sql2); pst1.executeUpdate(); pst2.executeUpdate(); //把两个事务看作一个事务统一提交 conn.commit(); }catch (Exception e) { e.printStackTrace(); //如果事务出现异常可以统一回滚 try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } // TODO: handle exception }finally{ //关闭资源 SqlTool.close(SqlTool.getRs(),SqlTool.getPs(), SqlTool.getConn()); } } }
加载驱动
Class.forName("...")
建立连接
conn=DriverManager.getConnection(url,username,passworld);
执行sql
Statement
PreparedStatement预处理
ps=conn.prepareStatement(sql); ps.executeUpdate();
添加
修改
删除
ps.executeQuery()
查询
CallableStatement调用存储过程
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.CallableStatement ; import java.sql.Types ; public class ProcDemo{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 CallableStatement cstmt = null ; // 数据库操作 String sql = "{CALL myproc(?,?,?)}" ; // 调用过程 Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; cstmt = conn.prepareCall(sql) ; cstmt.setInt(1,70) ; // 设置第一个参数是70 cstmt.setInt(2,80) ; // 设置第二个参数是80 cstmt.registerOutParameter(2,Types.INTEGER) ; cstmt.registerOutParameter(3,Types.INTEGER) ; cstmt.execute() ; // 执行过程 System.out.println("INOUT的返回值:" + cstmt.getInt(2)) ; System.out.println("OUT的返回值:" + cstmt.getInt(3)) ; cstmt.close() ; conn.close() ; // 数据库关闭 } }; DELIMITER // DROP PROCEDURE myproc // -- 删除过程 CREATE PROCEDURE myproc(IN p1 int,INOUT p2 int,OUT p3 int) BEGIN SELECT p1,p2,p3 ; -- 输出p1、p2、p3的内容 SET p1=10 ; SET p2=20 ; SET p3=30 ; END // DELIMITER ; SET @x1=70 ;-- 定义变量x1,内容为70 SET @x2=80 ;-- 定义变量x2,内容为80 CALL myproc(@x1,@x2,@x3) ; SELECT @x1,@x2,@x3 ;
处理执行查询ResultSet
ps=conn.prepareStatement(sql); rs=ps.executeQuery();查询 while(rs.next()){ System.out.println(rs.getString("ename")); }
关闭资源
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.Statement ; public class TranDemo02{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 Statement stmt = null ; // 定义数据库操作 Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; conn.setAutoCommit(false) ;// 取消掉自动提交 stmt = conn.createStatement() ; stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ; stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ; // 加入“'”之后,此SQL语法就出现了错误,所以,肯定执行到此语句的时候出现代码错误 stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-'3','hello-3',13,'男','1977-06-01') ") ; stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ; stmt.addBatch("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ; try{ int temp[] = stmt.executeBatch() ; System.out.println("更新了:" + temp.length+ "条数据。") ; conn.commit() ; // 所有的操作成功了 }catch(Exception e){ try{ conn.rollback() ; }catch(Exception e1){ } } stmt.close() ; conn.close() ; // 数据库关闭 } }; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.Statement ; import java.sql.Savepoint ; public class TranDemo03{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 Statement stmt = null ; // 定义数据库操作 Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; conn.setAutoCommit(false) ;// 取消掉自动提交 stmt = conn.createStatement() ; stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-1','hello-1',11,'男','1975-03-05') ") ; stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-2','hello-2',12,'女','1976-03-05') ") ; Savepoint sp = conn.setSavepoint() ; // 设置保存点 stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-4','hello-4',14,'女','1965-03-05') ") ; stmt.executeUpdate("INSERT INTO user(name,password,age,sex,birthday)" + " VALUES ('LXH-5','hello-5',15,'女','1965-08-05') ") ; try{ conn.rollback(sp) ; // 回滚到保存点 conn.commit() ; // 所有的操作成功了 }catch(Exception e){ e.printStackTrace() ; } stmt.close() ; conn.close() ; // 数据库关闭 } };
conn.setAutoCommit(false) ; // 取消掉自动提交 try { ps.executeUpdate("insert..."); Savepoint sp = conn.setSavepoint() ; // 设置保存点 ps.executeUpdate("insert..."); conn.rollback(sp);//回滚到保存点 conn.commit() ; // 所有的操作成功了 } catch (SQLException e) { --conn.rollback()//事务回滚 }finally{ rs.close();//关闭资源 conn.close(); }
事务控制
事物特征ACID:
原子性Atomicity
一致性Consistency
隔离性isolation
持久性Durability
处理大数据CLOB
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.io.File ; import java.io.FileInputStream ; import java.io.InputStream ; public class ClobDemo01{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; String name = "李兴华" ; // 表示姓名 String sql = "INSERT INTO userclob(name,note) VALUES (?,?) " ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象 File f = new File("d:" + File.separator + "mldn.txt") ; InputStream input = null ; input = new FileInputStream(f) ; // 通过输入流读取文件 pstmt.setString(1,name) ; pstmt.setAsciiStream(2,input,(int)f.length()) ; pstmt.executeUpdate() ; conn.close() ; // 数据库关闭 } }; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.sql.ResultSet ; import java.io.File ; import java.io.FileInputStream ; import java.io.InputStream ; import java.util.Scanner ; public class ClobDemo02{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; ResultSet rs = null ; int id = 1 ; // 读取的编号 String sql = "SELECT name,note FROM userclob WHERE id=? " ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象 pstmt.setInt(1,id) ; rs = pstmt.executeQuery() ; if(rs.next()){ String name = rs.getString(1) ; StringBuffer note = new StringBuffer() ; System.out.println("姓名:" + name) ; InputStream input = rs.getAsciiStream(2) ; Scanner scan = new Scanner(input) ; // 使用Scanner类读取内容 scan.useDelimiter("\r\n") ;// 将文件换行作为分割符 while(scan.hasNext()){ note.append(scan.next()).append("\n") ; } System.out.println("内容:" + note) ; input.close() ; } rs.close() ; pstmt.close() ; conn.close() ; // 数据库关闭 } }; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.sql.Clob ; import java.sql.ResultSet ; public class ClobDemo03{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; ResultSet rs = null ; int id = 1 ; // 读取的编号 String sql = "SELECT name,note FROM userclob WHERE id=? " ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象 pstmt.setInt(1,id) ; rs = pstmt.executeQuery() ; if(rs.next()){ String name = rs.getString(1) ; System.out.println("姓名:" + name) ; Clob c = rs.getClob(2) ; String note = c.getSubString(1,(int)c.length()) ; System.out.println("内容:" + note ) ; c.truncate(100) ;// 只能读100个内容 System.out.println("部分读取内容:" + c.getSubString(1,(int)c.length())) ; } rs.close() ; pstmt.close() ; conn.close() ; // 数据库关闭 } };
处理海量文字
处理大数据BLOB
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.io.File ; import java.io.FileInputStream ; import java.io.InputStream ; public class BlobDemo01{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; String name = "李兴华" ; String sql = "INSERT INTO userblob(name,photo) VALUES (?,?) " ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; File f = new File("d:" + File.separator + "mldn.gif") ; // 图片文件 InputStream input = null ; input = new FileInputStream(f) ; pstmt.setString(1,name) ; // 设置第一个“?”的内容 pstmt.setBinaryStream(2,input,(int)f.length()) ; // 设置输入流 pstmt.executeUpdate() ; // 更新数据库 pstmt.close() ; conn.close() ; // 数据库关闭 } }; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.io.File ; import java.io.FileOutputStream ; import java.sql.ResultSet ; import java.io.InputStream ; import java.io.InputStream ; import java.io.OutputStream ; public class BlobDemo02{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; ResultSet rs = null ; int id = 1 ; String sql = "SELECT name,photo FROM userblob WHERE id=?" ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; pstmt.setInt(1,id) ; rs = pstmt.executeQuery() ;// 执行查询 if(rs.next()){ String name = rs.getString(1) ; System.out.println("姓名:" + name) ; InputStream input = rs.getBinaryStream(2) ; File f = new File("d:" + File.separator + "loadmldn.gif") ;// 图片文件 OutputStream out = null ; out = new FileOutputStream(f) ; int temp = 0 ; while((temp=input.read())!=-1){ // 边读边写 out.write(temp) ; } input.close() ; out.close() ; } pstmt.close() ; conn.close() ; // 数据库关闭 } }; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.PreparedStatement ; import java.sql.Blob ; import java.sql.ResultSet ; import java.io.File ; import java.io.FileOutputStream ; import java.io.InputStream ; import java.io.InputStream ; import java.io.OutputStream ; public class BlobDemo03{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 PreparedStatement pstmt = null ; ResultSet rs = null ; int id = 1 ; String sql = "SELECT name,photo FROM userblob WHERE id=?" ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; pstmt = conn.prepareStatement(sql) ; pstmt.setInt(1,id) ; rs = pstmt.executeQuery() ;// 执行查询 if(rs.next()){ String name = rs.getString(1) ; System.out.println("姓名:" + name) ; Blob b = rs.getBlob(2) ; File f = new File("d:" + File.separator + "loadmldn.gif") ;// 图片文件 OutputStream out = null ; out = new FileOutputStream(f) ; out.write(b.getBytes(1,(int)b.length())) ; out.close() ; } pstmt.close() ; conn.close() ; // 数据库关闭 } };
处理二进制文件,图片、声音、视频、文本
元数据
DatabaseMetaData
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.DatabaseMetaData ; import java.sql.ResultSet ; public class DatabaseMetaDataDemo{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 DatabaseMetaData dmd = null ; // 数据库元数据 ResultSet rs = null ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; dmd = conn.getMetaData() ; // 实例化对象 System.out.println("数据库名称:" + dmd.getDatabaseProductName() ) ; System.out.println("数据库版本:" + dmd.getDatabaseMajorVersion() + "." + dmd.getDatabaseMinorVersion()) ; rs = dmd.getPrimaryKeys(null,null,"user") ; // 取得user表的主键 while(rs.next()){ System.out.println("表类别:" + rs.getString(1)) ; System.out.println("表模式:" + rs.getString(2)) ; System.out.println("表名称:" + rs.getString(3)) ; System.out.println("列名称:" + rs.getString(4)) ; System.out.println("主键序列号:" + rs.getString(5)) ; System.out.println("主键名称:" + rs.getString(6)) ; } conn.close() ; // 数据库关闭 } };
ResultSetMetaData
import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.ResultSetMetaData ; import java.sql.PreparedStatement ; public class ResultSetMetaDataDemo{ // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ; // MySQL数据库的连接用户名 public static final String DBUSER = "root" ; // MySQL数据库的连接密码 public static final String DBPASS = "mysqladmin" ; public static void main(String args[]) throws Exception{ // 所有异常抛出 Connection conn = null ; // 数据库连接 ResultSetMetaData rsmd = null ; // 数据库元数据 PreparedStatement pstmt = null ; Class.forName(DBDRIVER) ; // 加载驱动程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; String sql = "SELECT id,name,password,age,sex,birthday FROM user" ; pstmt = conn.prepareStatement(sql) ; // 实例化对象 rsmd = pstmt.getMetaData() ; System.out.println("一共返回" + rsmd.getColumnCount() + "条数据。") ; if(rsmd.isAutoIncrement(1) ){ System.out.println(rsmd.getColumnName(1)+"列是自动增长的。") ; } conn.close() ; // 数据库关闭 } };