JDBC的详细使用

1.首先说一下需要用到的工具:

  ①我这里用的数据库是MySql5.6 ,MySql6.0开始被Oracle收购需要付费了,6.0以下版本免费。

  ②去Maven仓库下载JDBC的jar包 Maven仓库地址:http://mvnrepository.com/  我使用的版本是5.0.5

  ③将jar包放到项目下的lib目录下

 

2.接下来给大家上一段简单的使用代码

 1 import java.sql.Connection;
 2 import java.sql.DriverManager;
 3 import java.sql.PreparedStatement;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 
 7 import com.mysql.jdbc.Driver;
 8 
 9 /**
10  * 普通的jdbc操作
11  * 
12  * @author AdminHeJun
13  * 
14  */
15 public class JdbcNomal {
16     private static PreparedStatement prepareStatement;
17     private static ResultSet result;
18 
19     public static void main(String[] args) throws Exception {
20         // 得到数据库连接
21         Connection connection = getConnection();
22         // 需要执行的sql
23         String sql = "select *from info";
24         prepareStatement = connection.prepareStatement(sql);
25         result = prepareStatement.executeQuery();
26 
27         while (result.next()) {
28             String id = result.getString(1);
29             String name = result.getString(2);
30             String age = result.getString(3);
31             System.out.println("id=" + id + "---name=" + name + "----age="
32                     + age);
33         }
34         // 关闭结果集
35         result.close();
36         // 操作完关闭连接
37         connection.close();
38     }
39 
40     private static Connection getConnection() {
41         // 得到数据库连接
42         Connection connection;
43         try {
44             // 注册jdbc驱动
45             DriverManager.registerDriver(new Driver());
46             // 参数1:数据库地址 惨数2:数据库用户名 参数3:密码
47             connection = DriverManager
48                     .getConnection("jdbc:mysql://127.0.0.1:3306/testdb",
49                             "root", "hejun254331");
50             System.out.println("数据库链接成功!");
51             return connection;
52         } catch (SQLException e) {
53             e.printStackTrace();
54             return null;
55         }
56 
57     }
58 }

3.给大家分享一下我在实际开发中对JDBC操作拿到数据库连接的方法

  1 import java.io.InputStream;
  2 import java.sql.Connection;
  3 import java.sql.DriverManager;
  4 import java.sql.ResultSet;
  5 import java.sql.SQLException;
  6 import java.util.Properties;
  7 
  8 import java.sql.PreparedStatement;  9 
 10 /**
 11  * @author AdminHeJun 为了开发的方便起见 我把数据库的连接信息放在了DBConfig.properties配置文件中方便管理
 12  *         此配置文件存储数据的方式与Map的键值对是一样的通过键取相应的值
 13  *         此类中调用了getConnection方法就必须要调用releaseConnection方法释放资源
 14  */
 15 public class JdbcUtils {
 16     // 数据库用户
 17     private static String user;
 18     // 数据库密码
 19     private static String password;
 20     // 数据库连接地址
 21     private static String conUrl;
 22     // 数据库连接驱动完整包名
 23     private static String driverName;
 24     // 此工具类的实例
 25     private static JdbcUtils instance;
 26 
 27     // 获取配置信息的静态代码块
 28     static {
 29         try {
 30             // 得到配置文件的输入流 JdbcUtils.class.getResourceAsStream此方法是获取当前类包名下的文件输入流
 31             InputStream inputStream = JdbcUtils.class
 32                     .getResourceAsStream("DBConfig.properties");
 33             // 创建一个操作配置文件的对象 见名知意 不多做解释了
 34             Properties properties = new Properties();
 35             // 加载配置文件的输入流
 36             properties.load(inputStream);
 37             // 开始获取配置文件里的信息
 38             user = (String) properties.get("user");
 39             password = (String) properties.get("password");
 40             conUrl = (String) properties.get("connUrl");
 41             driverName = (String) properties.get("driverName");
 42             System.out.println("获取配置信息成功!");
 43             System.out.println("user=" + user + "\npassword=" + password
 44                     + "\nconUrl=" + conUrl + "\ndriverName=" + driverName);
 45         } catch (Exception e) {
 46             System.out.println("获取配置信息出错!");
 47         }
 48     }
 49     // 注册数据库驱动的静态代码块
 50     static {
 51         try {
 52             Class.forName(driverName);
 53             System.out.println("驱动注成功!");
 54         } catch (Exception e) {
 55             System.out.println("驱动注册失败!");
 56         }
 57     }
 58 
 59     // 私有的构造方法防止外界直接new对象 这里是通过 getInstance方法来获取此类的实例
 60     private JdbcUtils() {
 61 
 62     }
 63 
 64     // 获取此类的实例 这种设计方法也就是常说的java单列设计模式
 65     public static JdbcUtils getInstance() {
 66         if (instance == null) {
 67             // 防止多线程同时操作
 68             synchronized (JdbcUtils.class) {
 69                 instance = new JdbcUtils();
 70             }
 71         }
 72         return instance;
 73     }
 74 
 75     // 得到数据库连接对象
 76     public Connection getConnection() {
 77         try {
 78             Connection connection = DriverManager.getConnection(conUrl, user,
 79                     password);
 80             System.out.println("数据库连接成功!");
 81             return connection;
 82         } catch (SQLException e) {
 83             e.printStackTrace();
 84             System.out.println("数据库连接失败!");
 85         }
 86         return null;
 87     }
 88 
 89     // 释放连接资源
 90     public void releaseConnection(Connection connection,
 91             PreparedStatement pStatement, ResultSet rSet) {
 92         try {
 93             // 关闭结果集
 94             if (rSet != null) {
 95                 rSet.close();
 96             }
 97             // 关闭sql语句执行对象
 98             if (pStatement != null) {
 99                 pStatement.close();
100             }
101             // 关闭数据库连接
102             if (connection != null) {
103                 connection.close();
104             }
105         } catch (SQLException e) {
106             e.printStackTrace();
107             System.out.println("关闭资源出错!");
108         }
109     }
110 }

调用演示

 1 public static void main(String[] args) throws Exception {
 2         // 得到连接
 3         Connection connection = JdbcUtils.getInstance().getConnection();
 4         String sql = "select *from info";
 5         PreparedStatement prepareStatement = connection.prepareStatement(sql);
 6         ResultSet resultSet = prepareStatement.executeQuery();
 7         while (resultSet.next()) {
 8             String id = resultSet.getString(1);
 9             String name = resultSet.getString(2);
10             String age = resultSet.getString(3);
11             System.out.println("id=" + id + "---name=" + name + "----age="
12                     + age);
13         }
14         // 释放资源
15         JdbcUtils.getInstance().releaseConnection(connection, prepareStatement,
16                 resultSet);
17 
18     }

打印结果:

DBConfig.properties文件截图

posted on 2017-09-03 17:15  何叫兽  阅读(240)  评论(0编辑  收藏  举报