jdbc java 与sqlerver 数据库连接

eclipse中的程序去连接sqlserver数据库过程

jdbc 可以网上找或者加我发给你

1.连接前的准备工作
(0)打开服务,打开数据库软件,进行sa登录
(1)建数据库与建表
(2)打开eclipse,创建Java项目程序
(3)先将指定数据库的驱动包存放到Java程序中
    在项目专门创建一个文件夹存储
    (右击项目-new--folder--命名lib)
    找到驱动包(sqljdbc.jar) 赋值到该文件夹内
(4)右击驱动包加载到Java程序
        build path----add build  path    
    
    
2.测试Java程序连接数据库
    (1)自定义类编写主程序的入口
    (2)加载驱动利用Class.forName  会有异常
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    (3)利用DriverManager实现与数据库连接并且会返回Connection连接对
        Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");

  

详细流程  !!!

1、启动服务
2、建库 建表
3、新建项目
4、导入驱动包
5、加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
6、创建连接  Connection con = DriverManager.getConnection(url,"sa","123");
  定义连接字符串
String url="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc0809";
创建连接
Connection con=DriverManager.getConnection(url, "sa", "sa");

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;
注意 关闭数据库连接时要从下往上!

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



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();
		}
	}
}

案例!! 增 删 改 查

增加数据到数据库永久保存!!

首先你数据库中必须建表!!!

create database db_Student on
primary(
name='db_Student',
filename='F:\项目数据 --数据库\db_Student.mdf',--存储地址  需要你自己改动
size=5mb,
maxsize=unlimited,
filegrowth=10%

)log on(
name='db_Student_log',
filename='F:\项目数据 --数据库\db_Student_log.ldf',--日志包存储地址也需要你自己做改动
size=2mb,
maxsize=10,
filegrowth=5%

)

use db_Student 启用学生类这个数据库

create table tb_Student(
sid int primary key identity(1,1),
snaem varchar(40)not null,
ssex varchar(2) check(ssex in('男','女')),
sage int check(sage >0and sage<=150),
saddress varchar(200)

)

第二步  增加操作

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);
		}
		
		
		
		
		
		
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值