Jdbc初体验

Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文介绍的是连接SQLServer数据库:

1.打开SQLServer的配置管理器:

Jdbc初体验

2.打开TCP/IP的属性,IPALL的端口改为1433

Jdbc初体验

3.打开服务,重新启动SQL Server(SQLEXPRESS)

4.下面开始写简易的JDBC:

String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";

String USERNAME = "sa";

String PASSWORD = "1234";

 

 1 package com.ccec.jdbc;

 2 

 3 import java.beans.Statement;

 4 import java.sql.Connection;

 5 import java.sql.DriverManager;

 6 import java.sql.PreparedStatement;

 7 import java.sql.ResultSet;

 8 import java.sql.SQLException;

 9 

10 public class jdbc {

11     private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

12     private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";

13     private static final String USERNAME = "sa";

14     private static final String PASSWORD = "1234";

15 

16     public boolean login(String username, String password) {

17         Connection con = null;

18         PreparedStatement st = null;

19         ResultSet rs = null;

20 

21         try {

22             Class.forName(DRIVER);

23             con = DriverManager.getConnection(URL, USERNAME, PASSWORD);

24             String sql = "select userName,pwd from userInfo where userName=? and pwd=?";

25             st = con.prepareStatement(sql);

26             st.setString(1, username);

27             st.setString(2, password);

28             rs = st.executeQuery();

29 

30             if (rs.next()) {

31                 System.out.println(username);

32                 return true;

33             }

34         } catch (ClassNotFoundException e) {

35             // TODO Auto-generated catch block

36             e.printStackTrace();

37         } catch (SQLException e) {

38             // TODO Auto-generated catch block

39             e.printStackTrace();

40         } finally {

41             try {

42                 if (rs != null) {

43                     rs.close();

44                 }

45                 if (st != null) {

46                     st.close();

47                 }

48                 if (con != null) {

49                     con.close();

50                 }

51             } catch (SQLException e) {

52                 // TODO Auto-generated catch block

53                 e.printStackTrace();

54             }

55         }

56         return false;

57     }

58 }

 5.封装后的JDBC

  1 package com.ccec.jdbc;

  2 

  3 /**

  4  * @author StayReal

  5  */

  6 import java.sql.Connection;

  7 import java.sql.DriverManager;

  8 import java.sql.PreparedStatement;

  9 import java.sql.ResultSet;

 10 import java.sql.SQLException;

 11 

 12 public class jdbc {

 13     // SQLServer驱动类的全名(包名.;类名)

 14     private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

 15     // 连接的URL

 16     private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bookDB";

 17     // 登陆SQLServer的用户名

 18     private static final String USERNAME = "sa";

 19     // 登陆SQLServer的密码

 20     private static final String PASSWORD = "1234";

 21     // 数据库的对象声明

 22     private Connection con = null;

 23     private PreparedStatement pst = null;

 24     private ResultSet rs = null;

 25 

 26     /**

 27      * 加载驱动,建立连接

 28      * 

 29      * @throws ClassNotFoundException

 30      * @throws SQLException

 31      */

 32     private void getConnection() throws ClassNotFoundException, SQLException {

 33         Class.forName(DRIVER);

 34         con = DriverManager.getConnection(URL, USERNAME, PASSWORD);

 35     }

 36 

 37     /**

 38      * 执行查询

 39      * 

 40      * @param sql

 41      *            执行的SQL语句

 42      * @param params

 43      *            Object数组 封装所有的SQL语句参数 顺序与SQL语句是参数顺序一致

 44      * @return ResultSet 返回执行的结果

 45      */

 46     public ResultSet execQuery(String sql, Object[] params) {

 47         try {

 48             getConnection();

 49             pst = con.prepareStatement(sql);

 50             setPrepareStatementParams(params);

 51             rs = pst.executeQuery();

 52         } catch (SQLException e) {

 53             e.printStackTrace();

 54         } catch (ClassNotFoundException e) {

 55             e.printStackTrace();

 56         }

 57         return rs;

 58     }

 59 

 60     /**

 61      * 执行增加、删除、修改SQL操作的方法

 62      * 

 63      * @param sql

 64      *            执行的参数化SQL语句

 65      * @param params

 66      *            Object数组 封装所有的SQL语句参数 顺序与SQL语句是参数顺序一致

 67      * @return int型 受影响的行数 -1表示出现异常

 68      */

 69     public int execUpadte(String sql, Object[] params) {

 70         try {

 71             getConnection();

 72             pst = con.prepareStatement(sql);

 73             setPrepareStatementParams(params);

 74             int affectedRows = pst.executeUpdate();

 75             return affectedRows;

 76         } catch (ClassNotFoundException e) {

 77             e.printStackTrace();

 78         } catch (SQLException e) {

 79             e.printStackTrace();

 80         } finally {

 81             closeAll();

 82         }

 83         return -1;

 84     }

 85 

 86     /**

 87      * 为PrepareStatement设置参数

 88      * 

 89      * @param params

 90      *            参数数组

 91      * @throws SQLException

 92      */

 93     private void setPrepareStatementParams(Object[] params) throws SQLException {

 94         if (params != null) {

 95             // 传一个数组的参数

 96             for (int i = 0; i < params.length; i++) {

 97                 pst.setObject(i + 1, params[i]);

 98             }

 99         }

100     }

101 

102     /**

103      * 关闭Connection ,PrepareStatement,ResultSet

104      */

105     private void closeAll() {

106         try {

107             if (rs != null) {

108                 rs.close();

109             }

110             if (pst != null) {

111                 pst.close();

112             }

113             if (con != null) {

114                 con.close();

115             }

116         } catch (SQLException e) {

117             e.printStackTrace();

118         }

119     }

120 }

 

你可能感兴趣的:(jdbc)