SQLserver 连接数据库

一、首先用mySQL连接java进行数据库的增删改查

在mySQL 中新建一个数据库名字为 myschool ,其中有一张student 表,id自增

表结构如图   表中有三条数据

1、现在连接数据库,从java中往student表中增加一条数据

public class TestOne {
	public static void main(String[] args) {
		
		try {// 加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=myschool", "sa", "root");
			String sql = "insert into student values('小二',15,'655777')";// id自增的字段,在sqlserver中不用写该字段
			Statement state = conn.createStatement();
			int a = state.executeUpdate(sql); //executeUpdate 的返回值是一个整数,(int)指受影响的行数
			// 若添加成功,则 a=1 ,
			if(a>0){ 
				System.out.println("添加成功!");
			}else{
				System.out.println("添加失败!");
			}
			state.close();
			conn.close();//先定义的后关闭,conn先定义,股后关闭
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

运行结果:   此时 select * from student 得到的结果为:

“小二” 数据添加成功了

方法executeUpdate用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

String sql = "insert into student values('小二',15,'655777')";  // id字段自增,连接sqlserver中不用写该字段,但如果连接的是mysql,

需要写成  String sql = "insert into student values(null,'小二',15,'655777')"; 

2、删除“小二” 的sql语句

public class TestOne {
	public static void main(String[] args) {
		
		try {// 加载驱动
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=myschool", "sa", "root");
			String sql = "delete from student where name = '小二'"; // 1
			Statement state = conn.createStatement();
			int a = state.executeUpdate(sql); // 2
			// 若添加成功,则 a=1 ,
			if(a>0){ 
				System.out.println("删除成功!");
			}else{
				System.out.println("删除失败!");
			}
			state.close();
			conn.close();//先定义的后关闭,conn先定义,股后关闭
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

运行结果:  此时 查看数据库表中内容:

“小二”的数据成功删除 

观察增加和删除代码块,两者的区别只在于 1 处的sql语句的不同
接下来我们来看查询的功能如何实现


3、查询 student 表中的全部内容

public class TestTwo {
	public static void main(String[] args) {
		
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=myschool", "sa", "root");
			String sql = "select * from student";//1
			Statement state = conn.createStatement();
			ResultSet rs = state.executeQuery(sql);//2
			// 利用循环ResultSet的元素来获得ResultSet的列表内容
			while(rs.next()){ 
                               // 放入System.out.print()语句中,输出到控制台
				System.out.print(rs.getInt("studentno")+"\t"); 
				System.out.print(rs.getString("name")+"\t"); 
				System.out.print(rs.getInt("age")+"\t"); 
				System.out.print(rs.getString("tel")+"\t\n"); 
			}
			
			rs.close(); // ResultSet rs 最后定义的 要最先关闭
			state.close();
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
}
运行结果同上面数据库表中全部内容的最后一次查询:



      结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等.
     结果集读取数据的方法主要是getXxx(),他的参数可以是整型表示第几列(是从1开始的),还可以是列名。返回的是对应的Xxx类型的值。如果对应那列 是空值,Xxx是对象的话返回Xxx型的空值,如果Xxx是数字类型,如Float等则返回0,boolean返回false.使用getString()可以返回所有的列的值,但返回的都是字符串类型的

q其中 rs.getXxx对应的是后边括号里对当前所操作的数据库中该表的字段的数据类型。

                                System.out.print(rs.getInt("studentno")+"\t"); // 对应字段studentno的数据类型int
				System.out.print(rs.getString("name")+"\t"); // 对应字段studentno的数据类型varchar(50)
				System.out.print(rs.getInt("age")+"\t"); // 对应字段name的数据类型int
				System.out.print(rs.getString("tel")+"\t\n"); // 对应字段tel的数据类型varchar(50)


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值