jdbc链接sqlserver数据库并简单的查询数据

准备工作:下载相关jar包 如果链接sqlserver数据库 

去微软下载官方jdbc驱动

下载 - JDBC Driver for SQL Server | Microsoft Docs

文中用了dom4j解析xml文件的方式添加链接属性

工具类源码

package studyByMyself;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/*
 * 这个类用来提供jdbc的工具类,
 * 需要在WebContent/WEB-INF/lib下导入dom4j和mysql、sqlserver等数据库的jar包
 */
public class jdbcUtils {// 声明四个参数
	private static String driverclass;// 驱动
	// 指定要连接的数据库包括协议名 包含ip地址,端口号,库名
	private static String url;
	private static String user;// 用户名
	private static String password;// 密码
	// 1.1私有化构造函数 ,外界无法创建对象

	private jdbcUtils() {
	}
	
	static {// 在静态代码块中使用init()方法初始化4个参数
		//只加载一次属性文件
		init();
	}

	// 1.2提供公共的,静态的,getConnection 方法,用来给外界提供数据库连接
	public static Connection getConnection() {
		try {
			// 1.注册驱动
			Class.forName(driverclass);
			// 2.获取数据库连接
			Connection coon = DriverManager.getConnection(url, user, password);
			return coon;
		} catch (Exception e) {

			e.printStackTrace();
		}
		return null;
	}

	// 1.3 提供公共的,静态的,close方法,用来释放资源
	public static void close(ResultSet rs, Statement st, Connection conn) {
		//释放结果集资源
	     //非空判断,防止空指针异常
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				rs = null;//手动置空
			}
		}
		if (st != null) {
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				st = null;
			}
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				conn = null;
			}
		}
	}

	private static void init() {
		try {
			// 该方法读取server.xml中的数据,使用dom4j技术
			SAXReader read = new SAXReader();
			// xml文件路径web工程/src/JDBC.xml
			Document doc = read.read("src/jdbc.xml");
			// 读取根节点JDBC
			Element JDBC = doc.getRootElement();
			// 读取子节点util
			Element util = JDBC.element("util");
			// 获取util元素属性
			// attributeValue 传入的值是:xml中属性值名字
			driverclass = util.attributeValue("DriverClass");
			url = (util.attributeValue("url"));
			user = (util.attributeValue("user"));
			password = (util.attributeValue("password"));
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}
}

jdbc.xml文件

本文使用默认账户sa测试登录数据库,此处记得打开sqlserver的tcp/ip链接,sqlserver安装完毕是默认关闭该项的 如果想要连接mysql数据库  修改相关连接属性即可。



	
	
	

学生实体类

package studyByMyself;

public class Student {
	
	private String sno;
	private String sname;
	private int age;
	private String sex;
	private String sdept;
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSdept() {
		return sdept;
	}
	public void setSdept(String sdept) {
		this.sdept = sdept;
	}
	@Override
	public String toString() {
		return "Student [sno=" + sno + ", sname=" + sname + ", age=" + age + ", sex=" + sex + ", sdept=" + sdept + "]";
	}
	
	
}

测试类

package studyByMyself;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
 * 
 * @author whd
 *
 */
public class Test {
	public static void main(String[] args) {
		PreparedStatement ps = null;
		Connection conn = jdbcUtils.getConnection();
		ArrayList list = new ArrayList();
		try {
			ps = conn.prepareStatement("select* from s");
			ResultSet rs = ps.executeQuery();
			
			
			while (rs.next()) {
				Student stu = new Student();
				stu.setSno(rs.getString("sno"));
				stu.setSname(rs.getString("sname"));
				stu.setSex(rs.getString("age"));
				stu.setSdept(rs.getString("dept"));
				stu.setAge(rs.getInt("age"));
				list.add(stu);

				//System.out.println(stu);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			jdbcUtils.close(null, ps, conn);
		}

		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}

	}

}

运行截图

jdbc链接sqlserver数据库并简单的查询数据_第1张图片

 

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