Java连接SQL数据库

步骤   


1、注册驱动类  

 (要扔出异常 throw Exception)
  Class.forName("com.microsoft.sqlserver.jdbc.SQLSeverDriver");

俩方式:
【1】建立包后,找到 Build Path,然后点击 最后一个选项,然后上边第三个Libraries,然后右边 第二个选项,最后确定,保存。出现一摞书后,点开,再点开奶瓶一样的,找到 SQLServerDriver.class ,右键复制 路径 com.microsoft.sqlserver.jdbc.SQLServerDriver.class  删除.class
【2】直接输出 SQLServerDriver,会自动导包  
import com.microsoft.sqlserver.jdbc.SQLServerDriver;    直接剪切即可

2、连接数据库        

  如果字符串写错,报错理由-对象无效


  Connection con = DriverManager.getConnection(url,user,password);
url格式       user 用户名称      password  用户密码
eg.
   Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=T283", "sa", "123");

3、创建 PreparedStatement对象(用来执行 sql语句)


  String sql = "insert into 表名 valuse(字段...)";  //插入数据
  String sql = "delete 表名 where 条件";  //删除数据
  Stirng sql = "update 表名 set 字段=值... where 条件";  //修改数据
  String sql = "select 要查询的字段 from 表名";  //查询数据
eg.
  String sql = "insert into Student values(?,?,?,?,?,?)";
  PreparedStatement ps = con.prepareStatement(sql);

4、给占位符赋值


  ps.set数据类型(第几个占位符,变量);
eg.   ps.setString(1,name);  //给第一个占位符赋值(姓名)
        ps.setInt(3,age);  //给第三个占位符赋值(年龄)

5、执行sql语句:

 增删改,返回受影响行数;查,返回结果集
int i = ps.executeUpdate();  //接收受影响行数
ResultSet i = ps.executeQuery();  //接收结果集

6、处理结果


if(i>0){
//    JOptionPane.showMessageDialog(null, "添加成功");     弹窗应用
    System.out.println("添加成功");
}else{
//    JOptionPane.showMessageDialog(null, "添加失败");     弹窗应用
    System.out.println("添加失败");
}

7、关闭连接(释放资源)


  con.close();
  ps.close();

rs.close();


  • 查询的返回是结果集

获取方式:1.序号,字段的位置        2.列名

  • 表示本机:(三种表达方式)

1、 .
2、localhost
3、IP地址

  • jar 包:别人写好的类封装好方法,我们直接使用
  • 输出语句中,

  写双引号  "",目的是 拼接 值
  写单引号  '', 目的是 SQL

  • 占位符: ?

   防止注入,高安全性
   没有对象不用赋值


JDBC 提供的主要接口

Java连接SQL数据库_第1张图片

 

 案例

1、增加

package com.zking.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;

//import com.microsoft.sqlserver.jdbc.SQLServerDriver;   

/**
 * 增加 功能
 * 添加学生的 JDBC 1
 * @author Administrator
 *
 */

public class Add_JDBC {
	public static void main(String[] args) throws Exception {
//		SQLServerDriver 方式2
		
		//1、注册驱动类
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		//2、连接数据库
		Connection con = DriverManager.getConnection
				("jdbc:sqlserver://localhost:1433;DatabaseName=T283","sa","123");
		System.out.println("登录成功 "+con);//接收信息
		
		//3、创建PreparedStatem对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入姓名");
		String name = sc.next();
		System.out.println("请输入年龄");
		int age = sc.nextInt();
		System.out.println("请输入性别");
		String sex = sc.next();
		System.out.println("请输入喜好");
		String like = sc.next();
		System.out.println("请输入地址");
		String dz = sc.next();
		System.out.println("请输入备注");
		String bz = sc.next();
		
		String sql = "insert into sstudent values(?,?,?,?,?,?)";
		PreparedStatement ps = con.prepareStatement(sql);

		//4、给占位符赋值
		ps.setString(1, name);
		ps.setInt(2, age);
		ps.setString(3, sex);
		ps.setString(4, like);
		ps.setString(5, dz);
		ps.setString(6, bz);
		
		//5、执行SQL语句
		int i = ps.executeUpdate();
		System.out.println("受影响行数 "+i);
		System.out.println();
		
		//6、处理结果
		if(i>0) {//有值
			System.out.println("添加成功");
		}else {
			System.out.println("添加失败");
		}
		//7、关闭连接
		con.close();
		ps.close();
	}
}

2、删除

package com.zking.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;

/**
 * 删除 功能
 * 删除学生
 * @author Administrator
 *
 */
public class Delete_JDBC {
	public static void main(String[] args) throws Exception {
		//1、注册驱动类
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		//2、连接数据库
		Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=T283","sa","123");
		System.out.println("连接成功 "+con);
		
		//3、创建 PrepadStatemen对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要删除学生的学号 ");
		int id = sc.nextInt();
		
		String sql = "delete sstudent where sid = ?";
		PreparedStatement ps = con.prepareStatement(sql);
		
		//4、给占位符赋值
		ps.setInt(1, id);
		
		//5、执行SQL语句
		int i = ps.executeUpdate();
		
		//6、处理结果
		if(i>0) {
			System.out.println("删除成功");
		}else {
			System.out.println("删除失败");
		}
		
		//7、关闭连接
		con.close();
		ps.close();
	}
}

3、修改

package com.zking.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;

/**
 * 修改 功能
 * @author Administrator
 *
 */
public class Update_JDBc {
	public static void main(String[] args) throws Exception {
		//1、注册驱动类
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		//2、连接数据库
		Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=T283","sa","123");
		System.out.println("连接成功 "+con);
		
		//3、创建 PreparedStatement对象
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你想修改学生的学号 ");
		int id = sc.nextInt();
		System.out.println("请输入修改后的姓名");
		String name = sc.next();
		System.out.println("请输入修改后的年龄");
		int age = sc.nextInt();
		System.out.println("请输入修改后的性别");
		String sex = sc.next();
		System.out.println("请输入修改后的喜好");
		String like = sc.next();
		System.out.println("请输入修改后的地址");
		String dz = sc.next();
		System.out.println("请输入修改后的备注");
		String bz = sc.next();
								
		String sql = "update sstudent set sname=?,sage=?,ssex=?,slike=?,saddress=?,sinfo=? where sid=?";
		PreparedStatement ps = con.prepareStatement(sql);
		
		//4、给占位符赋值
		ps.setString(1, name);
		ps.setInt(2, age);
		ps.setString(3, sex);
		ps.setString(4, like);
		ps.setString(5, dz);
		ps.setString(6, bz);
		ps.setInt(7, id);
		
		//5、执行 SQL语句
		int i = ps.executeUpdate();
		
		//6、处理结果
		if(i>0) {
			System.out.println("修改成功");
		}else {
			System.out.println("修改失败");
		}
		
		//7、关闭连接
		con.close();
		ps.close();
	}

}

4、查询

package com.zking.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Slect_JDBC {
	public static void main(String[] args) throws Exception {
		//1、注册驱动类
		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		
		//2、连接数据库
		Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=T283","sa","123");
		System.out.println("连接成功 "+con);
		
		//3、创建 PreparedStatement对象
		String sql = "select * from sstudent";
		PreparedStatement ps = con.prepareStatement(sql);
		
		//4、给占位符赋值
		
		//5、执行 sql语句
		ResultSet rs = ps.executeQuery();
		
		//6、处理结果
		while(rs.next()) {
			int sid = rs.getInt(1);//获取数据中的第一个字段
			String sname = rs.getString(2);
			int sage = rs.getInt(3);
			String ssex = rs.getString(4);
			String slike = rs.getString(5);
			String saddress = rs.getString(6);
			String sinfo = rs.getString(7);
			System.out.println("学号 "+sid+"\t 姓名 "+sname+"\t 年龄"+sage+"\t 性别 "+ssex+"\t 爱好 "+slike+"\t 地址 "+saddress+"\t 备注 "+sinfo);
		}
		
		//7、关闭连接
		con.close();
		ps.close();
		rs.close();
	}
}

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