准备工作:下载相关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数据库  修改相关连接属性即可。

url="jdbc:sqlserver://localhost:1433;DatabaseName=test;encrypt=true;trustServerCertificate=true"

user="sa"

password="123456">

学生实体类

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

}

}

}

运行截图

 

推荐阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。