java与sqlerver 数据库连接

  • eclipse中的程序去连接sqlserver数据库的步骤

(sqljdbc.jar)这个jdbc需要的可以加我,发给你

1.连接前的准备工作

①打开服务,打开数据库软件,进行登录

②进行建数据库,创表

③打开eclipse,创建Java项目(注意:必须为lib包)

④先将指定数据库的驱动包存放到Java程序中

       在项目专门创建一个文件夹存储
    (右击项目-new--folder--命名lib)
    找到驱动包(sqljdbc.jar) copy到该文件夹内

⑤右击驱动包加载到Java程序
        build path----add build  path   

2.测试Java程序连接数据库

①自定义类编写主程序的入口
②加载驱动利用Class.forName  会有异常
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
③利用DriverManager实现与数据库连接并且会返回Connection连接对
Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");

  •  如何使用eclipse进行数据库的增删改查操作?如下所示:

1、启动服务
2、建库 建表
3、新建项目
4、导入驱动包
5、加载驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

6、创建连接(其实就一步)

①定义连接字符串

String url="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc12_07";

注意:数据库的名字必须相同,账号密码也一致

②创建连接  Connection con = DriverManager.getConnection(url,"sa","123");

7、获得执行对象,传入参数 ?或者是字符串拼接+

PreparedStatement ps=con.prepareStatement("update tb_stu set sname='李四' where sname='张三'");

8、进行

①增、删、改 

会用到     ps.executeUpdate();----所影响的表行数

增、删、改返 回结果 int 类型

②查询:ps.executeQuery();
        得到结果集ResultSet rs

循环while(rs.next()){
 System.out.print("学号:"+rs.getInt(1)+"\t");
                System.out.println();
            }

9、关闭连接操作

ps.cloes;
con.cloes;
url.cloes;
注意:关闭数据库连接时要按照ps,con,url这个顺序关闭

10.查看数据库是否连接成功!!

import java.sql.Connection;
import java.sql.DriverManager;
 
public class JDBCDemo {
	public static void main(String[] args) {
		// 注意事项:sql包中所需要用到的类都会有异常出现
		// 需求:Java程序与数据库建立连接
 
		// 1.让加载的驱动包在本类中进行使用 Class.forName();
		// SQLServerDriver
		try {
			// 加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			// 2.让Java程序连接数据库 通过DriverManager类
			// 第一个参数url的作用:连接sqlserver的规则
			// 1433 代表sqlserver的端口号 任何一个程序都有一个独一无二的端口号
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student", "sa", "123");
			//判断conn连接对象是否为空即可知道程序是否连上数据库?
			System.out.println(conn!=null?"连接成功":"连接失败");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

11.增删改查操作:

①增加操作

try {
			//1.加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//2.建立连接
localhost 你的数据库的服务器名称  db_stutent数据库名称  sa你数据库的账号 123你数据库的密码!
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_Student", "sa", "123");
			//3.提供数据(通过Scanner优化)
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入姓名: ");
			String sname = sc.next();
			System.out.println("请输入性别: ");
			String ssex = sc.next();
			System.out.println("请输入年龄: ");
			int sage = sc.nextInt();
			System.out.println("请输入地址:  ");
			String saddress = sc.next();
			System.out.println("请输入电话: ");
			String stelphone = sc.next();
 
			//4.定义sql语句   值先不传,使用"?"占位置。 ?表示占位符
			String sql = "insert into tb_student values(?,?,?,?,?)";
 
			//5.将定义的sql语句传入指定的方法  并且会返回一个执行对象出来
			PreparedStatement ps = conn.prepareStatement(sql);
			//6.为占位符的位置进行重新赋值 通过执行对象
			ps.setString(1, sname);
			ps.setString(2, ssex);
			ps.setInt(3, sage);
			ps.setString(4, saddress);
			ps.setString(5, stelphone);
 
			//7.开车(调用方法并且返回所影响的行数)就是将数据转入数据库
			int n = ps.executeUpdate();
			System.out.println(n>0?"OK":"NO");ok 说明数据 加入数据库成功 no数据加入失败
			//8.关闭数据库连接
			ps.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

②删除操作

package com.zking.test;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
 
public class DeleteTest {
	public static void main(String[] args) {
		/*
		 * 删除操作
		 */
		try {
			//1.加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//2.建立数据库连接
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student", "sa", "123");
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入删除学生的学号: ");
			int sid = sc.nextInt();
			//3.编写删除的sql语句
			String sql = "delete from tb_student where sid = "+sid;
			//4.将sql语句通过conn连接对象传入方法返回执行对象ps
			PreparedStatement ps = conn.prepareStatement(sql);
			//5.开车(调用方法返回所影响的行数)
			int n = ps.executeUpdate();
			System.out.println(n>0?"OK":"NO");
			ps.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
	}
}

③修改操作

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
 
public class UpdateTest {
 
	public static void main(String[] args) {
		// 修改操作
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");
			String sql = "update tb_student set sname = ? , ssex = ? , sage = ? , saddress = ? , stelphone = ? where sid = ?";
			PreparedStatement ps = conn.prepareStatement(sql);
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入需要修改学生信息的学号: ");
			int sid = sc.nextInt();
			System.out.println("请输入修改后的姓名: ");
			String sname = sc.next();
			System.out.println("请输入修改后的性别: ");
			String ssex = sc.next();
			System.out.println("请输入修改后的年龄: ");
			int sage = sc.nextInt();
			System.out.println("请输入修改后的地址:  ");
			String saddress = sc.next();
			System.out.println("请输入修改后的电话: ");
			String stelphone = sc.next();
			//给占位符(?)进行赋值
			ps.setString(1, sname);
			ps.setString(2, ssex);
			ps.setInt(3, sage);
			ps.setString(4, saddress);
			ps.setString(5, stelphone);
			ps.setInt(6, sid);
			int n = ps.executeUpdate();
            判断是否添加成功!
			System.out.println(n>0?"OK":"NO");
          关闭数据库与eclipse 的连接
			ps.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
}

④查询操作

查询数据之前得找一个容器(Student)将查找到的数据保存在其中,方便查看

注意的是:属性要与数据库中的一样且顺序一样(完全一致)

package com.zking.test;
/**
 * 学生类,存储数据库中的每一行记录
 * @author Zkingzz
 *
 *	类:数据库是什么   这个类就是什么  顺序一致,属性名一致
 *
 */
public class Student {
	private int sid;
	private String sname;
	private String ssex;
	private int sage;
	private String saddress;
	private String stelphone;
	public Student() {
		// TODO Auto-generated constructor stub
	}
	public Student( String sname, String ssex, int sage, String saddress, String stelphone) {
		super();
		this.sname = sname;
		this.ssex = ssex;
		this.sage = sage;
		this.saddress = saddress;
		this.stelphone = stelphone;
	}
	
	public Student(int sid, String sname, String ssex, int sage, String saddress, String stelphone) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.ssex = ssex;
		this.sage = sage;
		this.saddress = saddress;
		this.stelphone = stelphone;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSsex() {
		return ssex;
	}
	public void setSsex(String ssex) {
		this.ssex = ssex;
	}
	public int getSage() {
		return sage;
	}
	public void setSage(int sage) {
		this.sage = sage;
	}
	public String getSaddress() {
		return saddress;
	}
	public void setSaddress(String saddress) {
		this.saddress = saddress;
	}
	public String getStelphone() {
		return stelphone;
	}
	public void setStelphone(String stelphone) {
		this.stelphone = stelphone;
	}
	@Override
	public String toString() {
		return "Student [sid=" + sid + ", sname=" + sname + ", ssex=" + ssex + ", sage=" + sage + ", saddress="
				+ saddress + ", stelphone=" + stelphone + "]";
	}
		
	
}

开始操作:

 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
 
public class SelectTest4 {
	public static void main(String[] args) {
		List list = new ArrayList();集合框架 用于装载数据库中的数据!
		
		//操作:查询所有  高级版本
		try {
			//1.加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			//2.建立连接
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");
			//3.编写sql语句
			String sql = "select * from tb_student";
			//4.将sql传入执行对象中并返回
			PreparedStatement ps = conn.prepareStatement(sql);
			//5.调用方法将数据库中的所有数据返回到一个ResultSet结果集对象中
			ResultSet rs = ps.executeQuery();
			//ResultSet结果集对象类似集合容器  获取这个结果集对象中的所有数据,遍历即可。  while
			//6.遍历结果集对象
			
			while(rs.next()) {//如果结果集中存在下一条数据
//				
				Student stu = new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5),rs.getString(6));
//				System.out.println(stu);
				list.add(stu);
			}
			//7.关闭
			rs.close();
			ps.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		//遍历集合
		for (Student student : list) {
			System.out.println(student);
		}
		
		
		
		
		
		
		
	}
}

你可能感兴趣的:(java,数据库,eclipse)