JDBC
Posted 摘珰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC相关的知识,希望对你有一定的参考价值。
/* 1、java.sql.DriverManager类中的方法: (1)static void registerDriver(Driver driver) 注册驱动 jar包中的com.mysql.cj.jdbc.Driver类 throws SQLException,实现了java.sql.Driver接口 (2)public static Connection getConnection(String url,String user,String password) throws SQLException 建立一个连接到给定的数据库的网址 2、java.sql.Connection接口中的方法: Statement createStatement() throws SQLException 创建一个用于向数据库发送SQL语句的Statement对象 3、java.sql.Statement接口中的方法 (1)int executeUpdate(String sql) throws SQLException 专门执行DML语句(insert,delete,update),返回值是影响数据库中的记录的条数 (2)ResultSet executeQuery(String sql) throws SQLException 专门执行select语句,返回一个 ResultSet对象。 4、java.sql ResultSet接口中的方法: (1)boolean next() throws SQLException,从当前位置移动光标向下一行记录 (2)String getString(int i),在ResultSet对象的当前行检索指定的列,强制作为String并返回,int i从1开始 (3)String getString(String name),在ResultSet对象的当前行检索指定的列,强制作为String并返回 此外,还有getInt,getDouble……从而以特定的类型取出,同样可以用下标或者字段名为参数。 */ import java.sql.*; public class JDBCTest01{ public static void main(String[] args){ Connection conn = null; Statement st = null; try{ //1、注册驱动 //方法1 //DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()); //方法2,更常用 //在com.mysql.cj.jdbc.Driver.java中,有静态语句块代码如下 /* static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can‘t register driver!"); } } */ //可见,静态语句块中已经注册了驱动,因此静态语句块执行即可,反射中的类加载可通过forName实现 Class.forName("com.mysql.cj.jdbc.Driver");//类加载即可,不需要返回值 //抛出ClassNotFoundException //2、获取连接 /* url:统一资源定位符,网络中某个资源的绝对路径。包括:协议、ip、端口、资源名 ping www.baidu.com 得到http://61.135.169.121 访问http://61.135.169.121/index.html就到了百度首页 http:// 通信协议 61.135.169.121 服务器ip地址 80 服务器上软件的端口 index.html服务器上的某个资源名 jdbc:mysql://ip地址:端口号/数据库名 jdbc:mysql:// 通信协议 ip:关于localhost、127.0.0.1 和 本机IP localhost等于127.0.0.1,不过localhost是域名,127.0.0.1是IP地址 localhost和127.0.0.1不需要联网,都是本机访问 本机IP192.168.1.103是本机对外放开访问的IP地址,这个网址就是与物理网卡绑定的IP地址,本机或外部访问,需要关闭防火墙。 */ /* 数据库安装时默认为英语,0:00时区,Windows系统中,XP的时区是GMT,而Win7的时区是UTC,mysql返回的时间会比实际时间要早8小时。 解决方案:配置JDBC连接参数。在url连接字符串后面加上?serverTimezone=GMT%2B8 UTC,世界均衡时间; GMT,格林尼治时间 北京时间(东八区),GMT+8,url中表示为:serverTimezone=GMT%2B8 */ conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT%2B8","root","ang928914"); //3、获取数据库操作对象 st = conn.createStatement(); //4、执行SQL //SQL语句中加不加分号都可以 //添加数据 String sql = "insert into dept1(deptno,dname,loc) values (50,‘人事部‘,‘北京‘)"; //更改数据 //String sql = "update dept1 set dname = ‘销售部‘ where deptno = 50"; //删除数据 //String sql = "delete from dept1 where deptno = 50"; int count = st.executeUpdate(sql); System.out.println(count==1?"保存成功":"保存失败"); //5、处理查询结果集 }catch (SQLException s){ s.printStackTrace(); }catch(ClassNotFoundException s){ s.printStackTrace(); }finally{ //6、释放资源,为了保证一定释放,在finally中关闭资源 //从小到大依次关闭,分别对其try...catch...,要把Connection、Statement挪到外面 try{ if(st != null) st.close(); }catch(SQLException s){ s.printStackTrace(); } try{ if(conn != null) conn.close(); }catch(SQLException s){ s.printStackTrace(); } } } }
/* 查 */ import java.sql.*; public class JDBCTest02{ public static void main(String[] args){ Connection conn = null; Statement st = null; ResultSet rs = null; try{ //1、注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //2、获取连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT%2B8","root","123"); //3、获取数据库操作对象 st = conn.createStatement(); //4、执行SQL rs = st.executeQuery("select empno as ‘a‘,ename as ‘b‘,sal as ‘c‘ from emp"); //5、处理查询结果集 while(rs.next()){ //System.out.print(rs.getString(1) + "-->" + rs.getString(2) + "-->" + rs.getString(3)); System.out.print(rs.getString("a") + "-->" + rs.getString("b") + "-->" + rs.getString("c"));//最终查询结果的列名称 System.out.println(); } }catch (SQLException s){ s.printStackTrace(); }catch(ClassNotFoundException s){ s.printStackTrace(); }finally{ //6、释放资源 try{ if(rs != null) rs.close(); }catch(SQLException s){ s.printStackTrace(); } try{ if(st != null) st.close(); }catch(SQLException s){ s.printStackTrace(); } try{ if(conn != null) conn.close(); }catch(SQLException s){ s.printStackTrace(); } } } }
以上是关于JDBC的主要内容,如果未能解决你的问题,请参考以下文章