怎么用jdbc连接sqlserver数据库查询数据

怎么用jdbc连接sqlserver数据库查询数据,第1张

怎么用jdbc连接sqlserver数据查询数据

.JDBC连接SQL Server的驱动安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)

<1>将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量

在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar

<2>设置SQLEXPRESS服务器:

a.打开SQL Server Configuration Manager ->SQLEXPRESS的协议 ->TCP/IP

b.右键单击启动TCP/IP

c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433

d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器

e.关闭SQL Server Configuration Manager

<3>打开刚刚安装好的 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample

<4>打开Eclipse

a.新建工程->Java ->Java project,起名为Test

b.选择eclipse->窗口->首选项->Java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar

c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中

<5>编写Java代码来测试JDBC连接SQL Server数据库

一、准备工作(一):MySQL安装配置和基础学习

使用JDBC *** 作数据库之前,首先你需要有一个数据库。这里提供了3个链接供读者自学,如果曾有过SQL语言的使用经历(包括在学校中的课堂学习),前两个链接足以上手。

1.安装和配置:mysql安装图解 mysql图文安装教程(详细说明)

2.基本 *** 作:21分钟 MySQL 入门教程

3.简易命令查询 :一千行MySQL学习笔记

建议边看入门教程,边练习,在练习insert、update、select、delete等基本 *** 作的同时,将后面要用的表建好。

下图是我接下来用于演示的数据库的表。

二、准备工作(二):下载数据库对应的jar包并导入

使用JDBC需要在工程中导入对应的jar包。数据库与JDBC包的对应关系可以参考各种数据库对应的jar包、驱动类名和URL格式。在Eclipse下的导入方法:

在工程的图标上右击,选择”Properties”,在”Java Bulid Path”中选择”Add External JARs…”,选择下载并解压后获得的jar包。

如果对MySQL进行 *** 作,这时下面的import就不会报错了:

import com.mysql.jdbc.Connection

import com.mysql.jdbc.PreparedStatement

除此以外,还需要JDBC的包,直接import即可。

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.SQLException

三、JDBC基本 *** 作

为了简单起见,与数据库相关的 *** 作、命令、参数都被硬编码了。有兴趣的读者可以对这些进行探索,降低数据与 *** 作的耦合性。

先看具体代码并实践,本文第五部分对用到的API稍作了研究。

下面的所有方法和数据成员都在public class JDBCOperation内部。

(1)定义记录的类(可选)

这样做主要是为了便于 *** 作和接口定义,是非必须的。

static class Student {

private String Id

private String Name

private String Sex

private String Age

Student(String Name, String Sex, String Age) {

this.Id = null//default

this.Name = Name

this.Sex = Sex

this.Age = Age

}

public String getId() {

return Id

}

public void setId(String Id) {

this.Id = Id

}

public String getName() {

return Name

}

public void setName(String Name) {

this.Name = Name

}

public String getSex() {

return Sex

}

public void setSex(String Sex) {

this.Sex = Sex

}

public String getAge() {

return Age

}

public void setage(String Age) {

this.Age = Age

}

}

(2)连接的获取

在 *** 作前必须先获取与数据库的连接。

driver、url的格式同样可以参考各种数据库对应的jar包、驱动类名和URL格式。

private static Connection getConn() {

String driver = "com.mysql.jdbc.Driver"

String url = "jdbc:mysql://localhost:3306/samp_db"

String username = "root"

String password = ""

Connection conn = null

try {

Class.forName(driver)//classLoader,加载对应驱动

conn = (Connection) DriverManager.getConnection(url, username, password)

} catch (ClassNotFoundException e) {

e.printStackTrace()

} catch (SQLException e) {

e.printStackTrace()

}

return conn

}

(3)insert

private static int insert(Student student) {

Connection conn = getConn()

int i = 0

String sql = "insert into students (Name,Sex,Age) values(?,?,?)"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

pstmt.setString(1, student.getName())

pstmt.setString(2, student.getSex())

pstmt.setString(3, student.getAge())

i = pstmt.executeUpdate()

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}

(4)update

private static int update(Student student) {

Connection conn = getConn()

int i = 0

String sql = "update students set Age='" + student.getAge() + "' where Name='" + student.getName() + "'"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}

(5)select

以select * from XXX为例。

private static Integer getAll() {

Connection conn = getConn()

String sql = "select * from students"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement)conn.prepareStatement(sql)

ResultSet rs = pstmt.executeQuery()

int col = rs.getMetaData().getColumnCount()

System.out.println("============================")

while (rs.next()) {

for (int i = 1i <= coli++) {

System.out.print(rs.getString(i) + "\t")

if ((i == 2) &&(rs.getString(i).length() <8)) {

System.out.print("\t")

}

}

System.out.println("")

}

System.out.println("============================")

} catch (SQLException e) {

e.printStackTrace()

}

return null

}

(6)delete

private static int delete(String name) {

Connection conn = getConn()

int i = 0

String sql = "delete from students where Name='" + name + "'"

PreparedStatement pstmt

try {

pstmt = (PreparedStatement) conn.prepareStatement(sql)

i = pstmt.executeUpdate()

System.out.println("resutl: " + i)

pstmt.close()

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

return i

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10711890.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存