以后可以方便参考。
代码也是参考网上的,稍作了修改,但是具体参考哪一篇忘记了,见谅。
程序运行前,必须要先导入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(); } }