Java 连接SQLServer数据库

写前说明

java是自己自学的,学的不成系统,东学点,西看看。需要用到什么,才回去查。今天就把这过程记录下。一遍日后自己不忘。

正式开工

在Myeclipse中新建一个Java project工程。然后新建一个class类并添加main方法。

  1 import java.io.UnsupportedEncodingException;
  2 import java.security.MessageDigest;
  3 import java.security.NoSuchAlgorithmException;
  4 import java.sql.*;
  5 import java.util.HashMap;
  6 import java.util.Map;
  7 import java.util.Random;
  8 
  9 /**
 10  * 
 11  */
 12 
 13 /**
 14  * @author telunsu
 15  *
 16  */
 17 public class Mytest01 {
 18     public static Connection conn;
 19     private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
 20     private static final String URI = "jdbc:sqlserver://localhost:1433; DatabaseName=mall";
 21     private static final String USER = "sa";
 22     private static final String pwd = "123456";
 23     /**
 24      * @param args
 25      */
 26     public static void main(String[] args) {
 27         // TODO 自动生成的方法存根
 28         execSQLServer (execMD5());
 29     }
 30     public static Map<String,String>  execMD5()
 31     {
 32         Map<String,String> map = new HashMap<String,String>();
 33         String aa = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789!@#$%";
 34         int max = aa.length();
 35         // 生成1000个8位的明文码
 36         for (int j = 0; j < 1000; j++) {
 37             String mingwen = " ";
 38             int s = 0;
 39             String tmp = " ";
 40             for (int i = 0; i < 8; i++) {
 41                 // 如果生成的随机字符码与现有的重复,则重新生成字符码
 42                 while (mingwen.contains(tmp)) {
 43                     Random random = new Random();
 44                     // 生成随机数 0~到max的数 ,但这里不包含max本身。
 45                     s = random.nextInt(max);
 46                     tmp = aa.substring(s, s + 1);
 47                 }
 48                 mingwen = mingwen.trim() + tmp;
 49             }
 50             String bb = getMD5Str(mingwen);//明文,密文都已经生成
 51             map.put(j+"passwd",mingwen);
 52             map.put(j+"md5",bb);
 53         }    
 54         return map;
 55     }
 56     public static void execSQLServer(Map<String,String> map)
 57     {
 58         try {
 59             Class.forName(DRIVER);
 60             System.out.println("加载驱动成功");
 61             
 62         } catch (ClassNotFoundException e) {
 63             System.out.println("加载驱动错误信息:" + e.getMessage());
 64             return;
 65         }
 66         try {
 67             conn = DriverManager.getConnection(URI, USER, pwd);
 68             System.out.println("连接成功");
 69             java.sql.Statement stmt = conn.createStatement();
 70             // 执行数据库查询语句
 71             for (int i=0;i<map.size()/2;i++)
 72             {
 73                 String sql="insert into miwen values('"+map.get(i+"passwd")+"','"+map.get(i+"md5")+"')";
 74                 stmt.execute(sql);//执行sql
 75             }
 76             System.out.println("插入数据完成");
 77         } catch (SQLException e) {
 78             System.out.println("数据库连接错误信息:" + e.getMessage());
 79             e.printStackTrace();
 80         }
 81         
 82     }
 83     /**
 84      * SHA 加密
 85      */
 86     static String getMD5Str(String str)
 87     {
 88         try
 89         {
 90             MessageDigest messageDigest = null;
 91             messageDigest = MessageDigest.getInstance("MD5");
 92             messageDigest.reset();
 93             messageDigest.update(str.getBytes("UTF-8"));
 94             byte[] byteArray = messageDigest.digest();
 95             StringBuffer md5StrBuff = new StringBuffer();
 96 
 97             for (int i = 0; i < byteArray.length; i++)
 98             {
 99                 if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
100                     md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
101                 else
102                     md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
103             }
104             return md5StrBuff.toString();
105         }
106         catch (NoSuchAlgorithmException e)
107         {
108             System.out.println("NoSuchAlgorithmException caught!");
109             System.exit(-1);
110         }
111         catch (UnsupportedEncodingException e)
112         {
113             e.printStackTrace();
114         }
115         return "";
116         
117     }
118 }

按照上面代码直接运行。提示如下问题:

原因在于没有找到SQLServer的驱动。将在构建路径中添加驱动。

 

posted @ 2017-05-12 10:51  风吹凉屁屁  阅读(362)  评论(0)    收藏  举报