如何通过JDBC访问数据库

  1. jdbc-mysql基础 注册驱动DriverManager.registerDriver:http://www.cnblogs.com/jizuiku/p/7843416.html
  2. JAVA JDBC(MySQL)驱动源码分析(一):https://blog.csdn.net/brilliancezhou/article/details/5425655
  3. MySQL的JDBC驱动源码解析:https://blog.csdn.net/c929833623lvcha/article/details/44517245
  4. 在Java中connection的常用方法及其描述是什么:https://wenda.so.com/q/1364074032061047?src=140
  5. jdbc的数据库驱动类DriverManager.getConnection()详解:https://blog.csdn.net/k_c123456/article/details/78728284
//数据库连接的本质其实就是客户端维持了一个和远程MySQL服务器的一个TCP长连接,并且在此连接上维护了一些信息。
//socket是TCP/IP协议的API。其只是对TCP/IP协议栈操作的抽象(和指向对象的指针类似),形成了几个最基本的函数接口。比如create,listen,accept,connect,read和write等等。

import java.sql.*;
public class Test {
     public static void main(String[] arg) throws Exception{
         String user = "root";
         String password = "123456";
         String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8";
         String driver = "com.mysql.jdbc.Driver";
         Connection con = null; //一个封装了TCP长连接 的 数据库长连接对象
         Statement stmt = null; //一个封装和管理SQL语句的java对象
         ResultSet rSet = null; //一个封装了数据对象 的 无序集合对象
         try{
             Class.forName(driver); //加载数据库驱动到JVM中,并实例化为Driver对象
             con = DriverManager.getConnection(url, user, password); //建立TCP数据库长连接,获取Connection对象
             stmt = con.createStatement(); //获取SQL管理对象Statement
             //stmt.execute("insert into account values('13542829631','1393180812@qq.com','环羽画','123456')");
             rSet =  stmt.executeQuery("select * from account");
             while(rSet.next()){
                 System.out.println(rSet.getString(1)+" "+rSet.getString(2)+" "+rSet.getString(3));
             }
         }catch(SQLException e){
             e.printStackTrace();
         }finally{
             if(rSet!=null) rSet.close();
             if(con!=null) con.close();
             if(stmt!=null) stmt.close();
         }

     }
}
JDBC访问数据库的步骤 1. 新建java项目:JDBC,新建 class文件:TestJDBC 2. JDBC用到的类库基本都位于java.sql.*包中,程序中引入该包: Import java.sql.*; 3. 添加要用的数据库中的包,找到数据库中的Driver.class文件: 项目名上点右键,Build Path—Add External Archives… 构建路径----添加外部归档 加入mysql-connector-java-5.1.12 4. 从包中找到要用的驱动,展开包,从中找到Driver.class,编程时,先把这个类的驱动new一个实例对象出来,告诉DriverManage,要连到哪种数据库上: 方法一:Class.forName(“com.mysql.jdbc.Driver”); Class: java.lang中的特殊类,类的装载器; forName: 会抛异常; com.mysql.jdbc.Driver中的Driver会new一个它的实例对象 方法二:new com.mysql.jdbc.Driver(); new出来后会自动向DriverManage注册。 5. 得到数据库的连接: Connection conn=DriverManager.getConnection (数据库的连接串,用户名,密码); 数据库的连接串:“jdbc:mysql://localhost:3306/books” 用户名: “root” 密码: “111” 程序调试: import java.sql.*; public class TestJDBC { public static void main(String[] args)throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection ("jdbc:mysql://localhost:3306/books?","root","111"); System.out.println("Connection Successful!"); } } * *对数据库表的操作通常有:executeQuery() executeUpdate() 6. (1)应用Statement接口 获取Statement对象,通过Statement对象执行SQL语句: Statement stmt=con.createStatement(); 执行SQL查询,返回给结果集对象: ResultSet rs=stmt. executeQuery(“select * from 表名”); 或 表名”+条件); 遍历访问数据表:while(rs.next()) 以各种类型显示输出:rs.get×××(“字段名”) (2)应用PreparedStatement接口 (p203) 执行数据更新executeUpdate():insert、update、delete SQL语句的创建:String sql=“sql命令”; 创建PreparedStatement的对象: pstmt=con. PrepareStatement(sql); 执行赋值操作(“?”占位符的用法): 执行:insert、update、delete result=pstmt. executeUpdate(); result类型为整型,返回一个整数,小于零操作没成功 7.关闭不再使用的 如:rs.close(); stmt.close(); con.close(); JDBC编程步骤总结: 1. Load the Driver:Class.forName(); 2. Connect the DateBase: DriveManager.getConnection() 3. Execute the SQL: (1) Connection.createStatement() Connection.prepareStatement(sql) (2)Statement.executeQuery() (3)Statement.executeUpdate() 4. Retrieve the result data: 循环取得结果while(rs.next()) 5. Show the result data:将遍历的结果记录显示出来 6.Close:结束时关闭 //完善的JDBC程序 import java.sql.*; public class TestJDBC { public static void main(String[] args) { Connection conn=null; Statement stmt=null; ResultSet rs=null; try{ Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/books?","root","111"); System.out.println("Connection Successful!"); stmt=conn.createStatement(); rs=stmt.executeQuery("select * from titles"); while (rs.next()){ System.out.println(rs.getString("isbn")+" "+rs.getString("title")); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); }finally{ try{ if(rs!=null){ rs.close(); rs=null; } if(stmt!=null){ stmt.close(); stmt=null; } if(con!=null){ con.close(); con=null; } }catch(SQLException e){ e.printStackTrace(); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值