数据库操作类

对于JDBC操作数据库步骤:

  1.导入驱动包

  2.加载驱动(对于mysql数据库,则是Class.forName("com.mysql.jdbc.Driver"),对于sql serverl数据库,则是Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"))

   不清楚驱动类,可以到jar包找找类似"Driver"字样,就能找到。

  3.获得Connection

  4.获得StatementPreparedStatement,执行executeUpdate()executeQuery()方法,返回结果集ResultSet或影响行数int。

  5.进行关闭操作,关闭ResultSet,关闭Statement,关闭Connection。

第2步一次就够了,第3.4.5步循环操作,所以操作类只实例一次时,不要将第三步放到放到构造方法中。

 连接参考例子:

    例子1(mysql书写格式):

    private static final String dbURL="jdbc:mysql://localhost:3306/test?user=root&password=admin&useUnicode=true&characterEncoding=utf-8";

  this.conn=DriverManager.getConnection(dbURL);

    例子2(mysql书写格式):

   private static final String dbURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";
   private static final String user="root";
   private static final String password="admin";

   this.conn=DriverManager.getConnection(dbURL, user, password);

   例子3(sql server书写格式):

    private static final String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=db_test;user=sa;password=123456";

    this.conn=DriverManager.getConnection(dbURL);

通过properties文件连接:

 首先写好ConnDB.properties文件:

1 dbClassName=com.mysql.jdbc.Driver
2 dbURL=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
3 dbUser=root
4 dbPassword=admin

 

  然后再编写代码:

 

 1 package com;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.sql.Connection;
 6 import java.sql.DriverManager;
 7 import java.sql.SQLException;
 8 import java.util.Properties;
 9 
10 public class ConnDB {
11     private Connection conn;
12     public Properties prop=new Properties();
13     public String dbClassName;
14     public String dbURL;
15     public String dbUser;
16     public String dbPassword;
17     public ConnDB(){                                  //getClass.getResourceAsStream()得到资源流
18         InputStream in=getClass().getResourceAsStream("../ConnDB.properties");//../ConnDB.properties为资源的相对路径
19         try {
20             prop.load(in);//加载
21         } catch (IOException e) {
22             e.printStackTrace();
23         }
24         dbClassName=prop.getProperty("dbClassName");//getProperty方法取得值
25         dbURL=prop.getProperty("dbURL");
26         dbUser=prop.getProperty("dbUser");
27         dbPassword=prop.getProperty("dbPassword");
28         try {
29             Class.forName(dbClassName);
30         } catch (ClassNotFoundException e) {
31             e.printStackTrace();
32         }
33     }
34     public void getConnection(){
35         try {
36             this.conn=DriverManager.getConnection(dbURL,dbUser,dbPassword);
37         } catch (SQLException e) {
38             e.printStackTrace();
39         }
40     }
41 }

 PreparedStatement和Statement

 PreparedStatement和Statement都有executeQUery()方法和executeUpdate()方法,分别表示对数据库的查询操作和添加、删除、修改操作。都是它们的用法有所不同。

Statement:

 1 public  int executeUpdate(String sql){
 2          int flag=0;
 3          getConnection();
 4         try {
 5             stmt=conn.createStatement();
 6              flag = stmt.executeUpdate(sql);
 7         } catch (SQLException e) {
 8             e.printStackTrace();
 9         }
10          return flag;
11     }

调用时,传的是sql语句。

 PreparedStatement:

 1 public int executeUpdate(String sql,Object[] parms){
 2         getConnection();
 3         int flag=0;
 4         try {
 5             PreparedStatement pstm=conn.prepareStatement(sql);
 6             for(int i=0;i<parms.length;i++){
 7                 pstm.setObject(i+1,parms[i] );
 8             }
 9             flag=pstm.executeUpdate();
10         } catch (SQLException e) {
11             e.printStackTrace();
12         }
13         return flag;
14     }

调用时:

1 String sql="insert tb_user values(?,?,?,?) ";
2 Object[] parms=new Object[]{1,"李鹏生","男",23};
3 c.executeUpdate(sql, parms);

excuteQuery()同理。

 

posted on 2014-10-01 00:45  芝麻开花——节节高  阅读(189)  评论(0编辑  收藏  举报

导航