
.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
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)