JavaJDBC(1)_基础

本文详细介绍了使用Java的JDBC技术连接MySQL数据库进行基本查询的步骤,包括加载驱动、建立连接、执行SQL语句、处理结果等,并通过优化代码解决了驱动依赖问题、SQL注入风险及数据库配置分散的问题。最后提出了将数据库连接和操作分离至单独文件的建议,以适应实际项目需求。
摘要由CSDN通过智能技术生成

环境:win7、mysql5、myeclipse

说明:本文记录java使用jdbc查询数据库的最基础最直接的步骤,以后将继续深入。数据库部分自己创建。

准备:把数据库的驱动加入到构建路径中
 1、加载驱动程序并注册驱动(首先把mysql的注册驱动放入构建路径)
 2、获取与数据库的连接
 3、得到代表SQL语句的对象,并发送SQL给数据库
 4、如果有查询结果,得到封装了查询结果的对象
 5、遍历结果
 6、释放占用的资源

代码+注释如下:

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JdbcDemo1 {

 /**
  * @param args
  * @throws SQLException
  */
 public static void main(String[] args) throws SQLException {
  // TODO Auto-generated method stub
  //1.加载驱动程序并注册驱动:Drivermanager
  DriverManager.registerDriver(new com.mysql.jdbc.Driver());
  //2.获取与数据库的连接:Connection
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","mysql");
  //3.得到代表SQL语句的对象,并发送SQL给数据库:Statement
  Statement stmt = conn.createStatement();
  //4.如果有查询结果,得到封装了查询结果的对象RsultSet
  ResultSet rs = stmt.executeQuery("select * from users");
  //5.遍历结果
  while(rs.next()){
   System.out.println("-------");
   System.out.println(rs.getObject("id"));
   System.out.println(rs.getObject("name"));
   System.out.println(rs.getObject("password"));
   System.out.println(rs.getObject("email"));
   System.out.println(rs.getObject("birthday"));
  }
  //6.释放资源
  rs.close();
  stmt.close();
  conn.close();
 }

}

这样最基本的查询就完成了,但是有问题,下面是问题及解决:


package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JdbcDemo1 {

 /**
  * @param args
  * @throws SQLException
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  //1.加载驱动程序并注册驱动:Drivermanager
  //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 不可取:1.严重依赖驱动包。2.导致注册2次。更改如下:
  Class.forName("com.mysql.jdbc.Driver");//加载类的静态代码块,就可以实现注册了。
  //2.获取与数据库的连接:Connection
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","mysql");
  //3.得到代表SQL语句的对象,并发送SQL给数据库:Statement
  //Statement stmt = conn.createStatement();//更改如下后有这些优势:1、预编译SQL语句,数据库执行效率高。2、防止SQL注入3、支持参数占位符"?"
  PreparedStatement stmt = null;
  //4.如果有查询结果,得到封装了查询结果的对象RsultSet
  //ResultSet rs = stmt.executeQuery("select * from users");
  stmt = conn.prepareStatement("select * from users");
  ResultSet rs = stmt.executeQuery();
  //5.遍历结果
  while(rs.next()){
   System.out.println("-------");
   System.out.print(rs.getObject("id"));
   System.out.print(rs.getObject("name"));
   System.out.print(rs.getObject("password"));
   System.out.print(rs.getObject("email"));
   System.out.println(rs.getObject("birthday"));
  }
  //6.释放资源
  rs.close();
  stmt.close();
  conn.close();
 }

}
这样的话,看着比较像样了,为了说明问题注释较多,可以去掉再看就清爽多了。这样就是实现了最基础的mysql连接。但是还有如下问题要解决:

1.mysql的配置信息在代码内,这样数据库有更改后就必须更改源代码,所以需要把数据库信息提取放到配置文件中,这里用properties文件。

2.真正的项目中不可能把数据库连接还有操作放在一个文件,内容过多,且数据库连接很固定,可以提出单独的jdbc文件,一直沿用。

3.很多问题以后再说,最终的目的是得到一个通用的版本。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值