JAVA 连接SQLServer数据库

哇今天闲着没事准备把前几天链接数据库碰到的问题写到博客,写到一半浏览器切出去了,这个浏览器也没保存,晚上又写了一遍,唉 蛋疼呀╮(╯▽╰)╭!!

说一说连接数据库遇到的问题,唉问题繁多,原来自己刷的精简版盗版系统刚开始就打不开数据库安装包,后来刷了个原版的,链接不上去,后来就又刷了一遍系统(删注册表也装不上去),一些问题你们需要参考一下... 这个对framework 3.5需求很高,没装的,或者有问题的都装不上。。有时候我特么装了VS2013就装不了数据库,装了数据库就装不了VS

!!!呀呀呀

安装问题:

 
安装时到这一步尽量选混合模式自己输入密码,不用太复杂123456就得了,毕竟你是在学习,不是维护数据库.
 
如果 安装时是这样安装的只需要进行下面的步骤:
如果不是这样的  看红色标记后的内容...
打开sql配置工具如图:
把TCP/ip协议开启   就是后面的状态栏是已启用。她要求重启服务   可以点击第一个sql server服务重启启动那些正在运行的服务,----------我觉得你应该明白。。实在不行你也可以重启电脑呀哈哈!!!
第二个是端口问题  建议使用原来默认端口,因为不用改呀!!省的麻烦!一般那个端口不会被占用的,如果要改的话把TCP/ip的所有Ip改成一样的端口:不明白看下图:
 
 
下面是驱动问题:下载驱动包!
https://pan.baidu.com/s/1hsb6VK4   Microsoft SQL Server JDBC Driver 3.0.zip 这是Microsoft SQL Server JDBC Driver驱动你也可以去官网下载,毕竟与时俱进可能更新了功能,
打开eclipse或者ME创建JAVA项目 点击你创建的java项目-右键-构建路径-添加外部归档(上面有个小奶瓶图标)把你下载的驱动解压,添加sqljdbc4.jar这个jar包:如图
之后你建一个类复制下面的代码运行就可以
复制代码
//shijiazhuangtiedaodaxue
import java.sql.*;

public class Conn
{
    public static void main(String[] args) throws Exception
    {
        //Class.forName("com.mysql.jdbc.Driver");
        
        //一开始必须填一个已经存在的数据库
        String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=model;";   
        Connection conn = DriverManager.getConnection(url, "sa", "123456");// 连接数据库
        Statement stat = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
        ResultSet resultSet=stat.executeQuery("select * From master.dbo.sysdatabases where name='hello'");
        if (resultSet.next()) {  
            System.out.println("table exist!");  
            //查询数据
            stat.close();//关闭原来的对象
            conn.close();//关闭原来的链接
            url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hello;";
            conn = DriverManager.getConnection(url, "sa", "123456");// 连接数据库如果你的密码不是123456是要改的默认sa用户不用改的
            stat = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
            
            ResultSet result = stat.executeQuery("select * from SQLtest");
            while (result.next())
            {
                System.out.println("学号 "+result.getInt("id") + " 名字 " + result.getString("name")+" 年龄 "+result.getInt("Age"));
            }
            
            //关闭数据库
            result.close();
            stat.close();
            conn.close();
            
            
            
        }else{  
            //创建数据库hello
            stat.executeUpdate("create database hello"); 
            //打开创建的数据库
            stat.close();
            conn.close();
            url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hello;";
            conn = DriverManager.getConnection(url, "sa", "123456");// 连接数据库
            stat = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
            //创建表SQLtest
            stat.executeUpdate("create table SQLtest(id int, name varchar(80),Age int)");
            
            //添加数据
            stat.executeUpdate("insert into SQLtest values(20163678, '胡粑粑',18)");
            stat.executeUpdate("insert into SQLtest values(20163679, '李麻麻',19)");
            stat.executeUpdate("insert into SQLtest values(20163620, '习哒哒',20)");
         System.out.println("create table success!");  
         ResultSet result = stat.executeQuery("select * from SQLtest");
            while (result.next())
            {
                System.out.println("学号 "+result.getInt("id") + " 名字 " + result.getString("name")+" 年龄 "+result.getInt("Age"));
            }
            
            //关闭数据库
            result.close();
            stat.close();
            conn.close();
        }  
        
        
    }
    
    
    
}
复制代码

里面会为你建一个数据库和表,并读出里面的内容,如果表存在则直接读出里面的内容,自己写的代码,还是新手,代码没那么精简。。。勿喷

如果你安装时没有创建密码需要创建密码

如图:

点安全性-登录名-打开登陆属性-按照图中的操作改成你需要的密码.....

查看你的登陆属性第四个选项---   状态是不是启用和授予--如果不是改成启用和授予。

然后重新打开SQL Server Management Studio 使用SQL server身份验证登陆 账户为sa 密码是你自己设的如果登陆成功,证明你密码修改成功

 

 

1准备JDBC驱动
驱动下载地址
选择sqljdbc_7.2.2.0_chs.exe下载
接下来打开,设置路径,点击"unzip",解压到任意目录。
解压出的文件夹中有很多文件,但我们只需要三个“mssql-jdbc-7.2.2.jre8.jar”,“mssql-jdbc-7.2.2.jre11.jar”,“sqljdbc_auth.dll”(dll有两种,64位系统使用x64文件夹下的,32位用x86下的)
将“mssql-jdbc-7.2.2.jre8.jar”,“mssql-jdbc-7.2.2.jre11.jar”移动到java工程的lib文件夹下,之后在工程中导入对应java版本的jar
将“sqljdbc_auth.dll”移动到java安装目录\JDK\bin下

2数据库设置
打开Sql Server配置管理器

网络配置->MSSQLSERVER->TCP/IP,启动TCP/IP
接下来右键TCP/IP->属性->IP地址,将IP0,IP10,IPALL改为如下图属性

应用设置后,重启SQL服务器,如下图

重启数据库后要检查1433端口是否打开
在cmd里输入netstat -an|findstr 1433

输出为下图时表示1433端口开启

2.java代码#

代码中的IPv4地址可以在cmd中用ipconfig得到

Copy
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

class JDBCTest {
    public static void main(String[] args) {
        String connectionUrl =
                "jdbc:sqlserver://(你的IPv4IP):1433;databaseName=选择的数据库;integratedSecurity=false;";

        try (Connection con = DriverManager.getConnection(connectionUrl, "数据库用户名", "密码");
             Statement stmt = con.createStatement();) {
            String SQL = "SELECT TOP 10 * FROM uDept;(这里为输入的SQL语句)";
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()) {
                System.out.println(rs.getString("表中的列名"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

 

 

 

 

package connect;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SqlServerTest {
	public static void main(String[] args) {
		try {
	        //一开始必须填一个已经存在的数据库
	        String url = "jdbc:sqlserver://xxxxxip:1433;DatabaseName=xxxxx;";   
	        Connection conn = DriverManager.getConnection(url, "sa", "xxxx");// 连接数据库
	        Statement stat = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
	        ResultSet resultSet=stat.executeQuery("select * From ZKECO.dbo.ipos_meal");
	        ResultSetMetaData md = resultSet.getMetaData();
	        List list = new ArrayList();
	        int columnCount = md.getColumnCount();
	        while (resultSet.next()) {
	            Map rowData = new HashMap();

	            for (int i = 1; i <= columnCount; i++) {
	                rowData.put(md.getColumnName(i), resultSet.getObject(i));

	            }

	            list.add(rowData);
	        }
	        System.out.println("list====="+list);
	        //关闭数据库
        	resultSet.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
 
	}

}

  

 

posted @ 2021-01-19 13:59  红尘沙漏  阅读(5768)  评论(0编辑  收藏  举报