JDBC例程(MySQL和SQLServer2008R2)

以后可以方便参考。

代码也是参考网上的,稍作了修改,但是具体参考哪一篇忘记了,见谅。

程序运行前,必须要先导入jdbc驱动包,驱动jar包的版本也要和数据库的版本对应。

导入之后,需要在build path里面设置一下,把这个jar包添加进去。

注:如果使用tomcat的话,采用以上方法是找不到这个jar包的,一定要将jar包复制到web/lib目录下(这个目录是不定的,关键是tomcat能够找到)

      然后再将其添加到build path中去,这样tomcat 就能找到了。

1.MySQL的JDBC连接方式

比较容易,按部就班即可。

数据库建表语句(这里指定了GBK编码方式,因为涉及到的JAVA代码全是GBK的,统一即可,UTF-8也是一样的):

CREATE DATABASE IF NOT EXISTS MEMO;
CHARACTER SET gbk COLLATE gbk_chinese_ci;
grant alter,create,delete,drop ,insert, select, update on memo.* to memo@localhost identified by "Iccc2014";
use memo;

DROP TABLE IF EXISTS TB_MEMO;
CREATE TABLE TB_MEMO
(
    ID          INTEGER      NOT NULL PRIMARY KEY AUTO_INCREMENT,
    CARDNO      VARCHAR(16)  NOT NULL,
    CertificateNo        VARCHAR(30)   NOT NULL,
    MEMO        VARCHAR(256),
    ISURGENT    VARCHAR(1),
    OPID        VARCHAR(6),
    OPTIME      DATETIME,
    SID         INTEGER,
    CCOUNT      INTEGER,
    CID         INTEGER,
    AID         INTEGER
) ENGINE= MyISAM DEFAULT CHARSET=GBK;

drop table if exists tb_user;
create table tb_user
(
   id           varchar(6)   not null primary key,
   grade        varchar(1)   not null,
   name         varchar(50)  not null,
   password     varchar(50)  not null,
   status       varchar(1)   not null  
) engine= MyISAM DEFAULT CHARSET=GBK;

java代码:

import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/** 
 * @(#)DataBase.java 010/04/22 
 * @author Dudu 
 * EST.All rights reserved 
 */  
public class MySQLTest {  
    /**定义一个Connection 用来连接数据库*/  
    private Connection conn=null;  
    /**连接数据库的URL*/  
    private final String url="jdbc:mysql://localhost:3306/memo";  
    /**指定数据的用户名和密码*/  
    private final String username="memo";  
    private final String password="2014";  
    /**定义一个int记录更新的记录数量*/  
    int count=0;  
    /**定义一个结果集 用于放回查询结果*/  
    private ResultSet resultSet=null;  
    private PreparedStatement pstmt=null;  
    public MySQLTest(){  
        conn = connectionDB();  
    }  
    /** 
     * 建立数据的连接 
     * @exception SQLException, ClassNotFoundException 
     */  
    @SuppressWarnings("finally")  
    public Connection connectionDB(){  
        try{  
            Class.forName("com.mysql.jdbc.Driver");  
            conn=DriverManager.getConnection(url,username,password);  
            System.out.println("连接数据库成功");  
        }catch(Exception e){  
            e.printStackTrace();  
            System.out.println("建立数据库发生错误!");  
        }finally{  
            return conn;  
        }  
    }  
    /** 
     * 查询方法 
     * @param sql查询sql语句 
     * @return resultSet 
     */  
    @SuppressWarnings("finally")  
    public ResultSet query(String sql){  
        try {  
            pstmt = conn.prepareStatement(sql);  
            /**查询*/  
            resultSet = pstmt.executeQuery();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }finally{  
            return resultSet;  
        }  
    }  
    /** 
     * 更新数据 
     * @param sql 更新sql语句 
     * @return 
     */  
    public int update(String sql){  
        try {  
            pstmt = conn.prepareStatement(sql);  
            count=pstmt.executeUpdate();  
        } catch (SQLException e) {  
            e.printStackTrace();  
            System.out.println("执行更新出错了");  
        }  
          
        return count;  
          
    }  
    /**关闭连接*/  
    public boolean coles(){  
        boolean isColes = false;  
        if(resultSet!=null){  
            try {  
                resultSet.close();  
                resultSet=null;  
                isColes=true;  
            } catch (SQLException e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭结果集发生错误");  
            }  
        }  
        if(pstmt!=null){  
            try {  
                pstmt.close();  
                pstmt=null;  
                isColes=true;  
            } catch (SQLException e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭pstmt发生异常");  
            }  
        }  
        if(conn!=null){  
            try{  
                conn.close();  
                conn=null;  
                isColes=true;  
            }catch (Exception e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭conn发生异常");  
            }  
        }  
        return isColes;  
    }  
    /** 
     * 测试查询的方法 
     * @throws SQLException 
     */  
    public void testQuery() throws SQLException{  
        resultSet =query("select * from tb_memo");  
        if(resultSet.next()){  
            System.out.println(resultSet.getString(1));  
            System.out.println(resultSet.getString(2));  
            System.out.println(resultSet.getString(3));  
            System.out.println(resultSet.getString(4));  
        }  
    }  
    public void testUpdate() throws UnsupportedEncodingException{  
        String memo = "测试";
        count = update("insert into tb_memo(cardno,certificateNo,isUrgent,memo,opid)values(‘123456711212‘,‘33022619900621001xx‘,‘N‘,‘"+memo+"‘, ‘130480‘)");  
        if(count>0){  
            System.out.println("更新成功");  
        }  
    }  
    /** 
     *  
     * @param args 
     * @throws SQLException 
     * @throws ClassNotFoundException 
     */  
    public static void main(String[] args) throws SQLException, ClassNotFoundException, UnsupportedEncodingException {  
        MySQLTest db = new MySQLTest();  
        /**调用查询方法*/  
        db.testQuery();  
        /**调用更新方法*/  
        db.testUpdate();  
        /**调用关闭连接方法*/  
        db.coles();  
          
    }  
}  

 

2.SQLServer2008R2的JDBC连接方式

SQLServer连接使用的jdbc驱动是一个sourceforge上下的jar包,jdts-1.2.6.jar,ms官网的jar不稳定,连不上,不知道为什么。而且连接sqlServer的时候,所有语句执行前必须先执行use 数据库名称, 这样才能指定到数据库,url里面直接指定貌似没什么用。

建表语句:

--CREATE USER
--CREATE DATABASE
USE MEMO
--CREATE TB_MEMO
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = TB_MEMO AND TYPE IN (S,U))
    DROP TABLE TB_MEMO;  
CREATE TABLE TB_MEMO(
    ID                  INTEGER      NOT NULL PRIMARY KEY IDENTITY(1,1),
    CARDNO              VARCHAR(16)  NOT NULL,
    CERTIFICATENO       VARCHAR(30)  NOT NULL,
    MEMO                NVARCHAR(256),
    ISURGENT            VARCHAR(1),
    OPID                VARCHAR(6),
    OPTIME              DATETIME,
    SID                 INTEGER,
    CCOUNT              INTEGER,
    CID                 INTEGER,
    AID                 INTEGER
)
--CREATE TB_USER
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = TB_USER AND TYPE IN (S,U))
    DROP TABLE TB_USER;  
CREATE TABLE TB_USER
(
   ID           VARCHAR(6)   NOT NULL PRIMARY KEY,
   GRADE        VARCHAR(1)   NOT NULL,
   NAME         VARCHAR(50)  NOT NULL,
   PASSWORD     VARCHAR(50)  NOT NULL,
   STATUS       VARCHAR(1)   NOT NULL  
) 

java代码:

import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/** 
 * @(#)DataBase.java 010/04/22 
 * @author Dudu 
 * EST.All rights reserved 
 */  
public class MySQLTest {  
    /**定义一个Connection 用来连接数据库*/  
    private Connection conn=null;  
    /**连接数据库的URL*/  
    //private final String url="jdbc:mysql://localhost:3306/memo";  
    private final String url="jdbc:jtds:sqlserver://172.30.112.104:1433;datebaseName=memo";
    //private final String url="jdbc:sqlserver://127.30.112.104:1433;DatabaseName=memo";
    /**指定数据的用户名和密码*/  
    private final String username="memo";  
    private final String password="Iccc2014";  
    /**定义一个int记录更新的记录数量*/  
    int count=0;  
    /**定义一个结果集 用于放回查询结果*/  
    private ResultSet resultSet=null;  
    private PreparedStatement pstmt=null;  
    public MySQLTest(){  
        conn = connectionDB();  
    }  
    /** 
     * 建立数据的连接 
     * @exception SQLException, ClassNotFoundException 
     */  
    @SuppressWarnings("finally")  
    public Connection connectionDB(){  
        try{  
            //Class.forName("com.mysql.jdbc.Driver"); 
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            
            //Properties prop = new Properties();
            //prop.put(username, "memo");
            //prop.put(password, "Iccc2014");
            conn=DriverManager.getConnection(url,username,password);
            //conn=DriverManager.getConnection(url,prop);
            Statement stmt = conn.createStatement();  
            String sql0 = "USE memo";  
            stmt.execute(sql0);  
            System.out.println("连接数据库成功");  
        }catch(Exception e){  
            e.printStackTrace();  
            System.out.println("建立数据库发生错误!");  
        }finally{  
            return conn;  
        }  
    }  
    /** 
     * 查询方法 
     * @param sql查询sql语句 
     * @return resultSet 
     */  
    @SuppressWarnings("finally")  
    public ResultSet query(String sql){  
        try {  
            pstmt = conn.prepareStatement(sql);  
            /**查询*/  
            resultSet = pstmt.executeQuery();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }finally{  
            return resultSet;  
        }  
    }  
    /** 
     * 更新数据 
     * @param sql 更新sql语句 
     * @return 
     */  
    public int update(String sql){  
        try {  
            pstmt = conn.prepareStatement(sql);  
            count=pstmt.executeUpdate();  
        } catch (SQLException e) {  
            e.printStackTrace();  
            System.out.println("执行更新出错了");  
        }  
          
        return count;  
          
    }  
    /**关闭连接*/  
    public boolean coles(){  
        boolean isColes = false;  
        if(resultSet!=null){  
            try {  
                resultSet.close();  
                resultSet=null;  
                isColes=true;  
            } catch (SQLException e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭结果集发生错误");  
            }  
        }  
        if(pstmt!=null){  
            try {  
                pstmt.close();  
                pstmt=null;  
                isColes=true;  
            } catch (SQLException e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭pstmt发生异常");  
            }  
        }  
        if(conn!=null){  
            try{  
                conn.close();  
                conn=null;  
                isColes=true;  
            }catch (Exception e) {  
                isColes=false;  
                e.printStackTrace();  
                System.out.println("关闭conn发生异常");  
            }  
        }  
        return isColes;  
    }  
    /** 
     * 测试查询的方法 
     * @throws SQLException 
     */  
    public void testQuery() throws SQLException{  
        resultSet =query("select * from tb_memo");  
        if(resultSet.next()){  
            System.out.println(resultSet.getString(1));  
            System.out.println(resultSet.getString(2));  
            System.out.println(resultSet.getString(3));  
            System.out.println(resultSet.getString(4));  
        }  
    }  
    public void testUpdate() throws UnsupportedEncodingException{  
        String memo = "测试";
        count = update("insert into TB_MEMO(CARDNO,CERTIFICATENO,ISURGENT,MEMO,OPID) values(‘123456711212‘,‘33022619900621001xx‘,‘N‘,‘"+memo+"‘, ‘130480‘)");  
        if(count>0){  
            System.out.println("更新成功");  
        }  
    }  
    /** 
     *  
     * @param args 
     * @throws SQLException 
     * @throws ClassNotFoundException 
     */  
    public static void main(String[] args) throws SQLException, ClassNotFoundException, UnsupportedEncodingException {  
        MySQLTest db = new MySQLTest();  
        /**调用查询方法*/  
        //db.testQuery();  
        /**调用更新方法*/  
        db.testUpdate();  
        /**调用关闭连接方法*/  
        db.coles();  
          
    }  
}  

 

 

JDBC例程(MySQL和SQLServer2008R2),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。