• 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();  
              
        }  
    }  
  • 相关阅读:
    商品房买卖合同备案
    收房注意事项!--经典!
    商河水木清华业主告媒体书
    商河水木清华全体业主告开发商书
    商河县水木清华全体业主给县委县府的一封信
    大家不要在水木清华买房子了,我的都一年了,还没交房!
    呼吁所有商河水木清华业主拒绝不合理的交房流程
    说说无耻的商河水木清华开发商2013"交房
    拒绝无效的“交房”写给所有商河水木清华业主
    iframe 里的高度适应的问题
  • 原文地址:https://www.cnblogs.com/middlesummer/p/3754953.html
Copyright © 2020-2023  润新知