*
eclipse中的程序去连接sqlserver数据库的步骤
(sqljdbc.jar)这个jdbc需要的可以加我,发给你
1.连接前的准备工作
①打开服务,打开数据库软件,进行登录
②进行建数据库,创表
③打开eclipse,创建Java项目(注意:必须为lib包)
④先将指定数据库的驱动包存放到Java程序中
在项目专门创建一个文件夹存储
(右击项目-new--folder--命名lib)
找到驱动包(sqljdbc.jar) copy到该文件夹内
⑤右击驱动包加载到Java程序
build path----add build path
2.测试Java程序连接数据库
①自定义类编写主程序的入口
②加载驱动利用Class.forName 会有异常
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
③利用DriverManager实现与数据库连接并且会返回Connection连接对
Connection conn
=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202",
"sa", "123");
* 如何使用eclipse进行数据库的增删改查操作?如下所示:
1、启动服务
2、建库 建表
3、新建项目
4、导入驱动包
5、加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
6、创建连接(其实就一步)
①定义连接字符串
String url="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc12_07";
注意:数据库的名字必须相同,账号密码也一致
②创建连接 Connection con = DriverManager.getConnection(url,"sa","123");
7、获得执行对象,传入参数 ?或者是字符串拼接+
PreparedStatement ps=con.prepareStatement("update tb_stu set sname='李四' where
sname='张三'");
8、进行
①增、删、改
会用到 ps.executeUpdate();----所影响的表行数
增、删、改返 回结果 int 类型
②查询:ps.executeQuery();
得到结果集ResultSet rs
循环while(rs.next()){ System.out.print("学号:"+rs.getInt(1)+"\t");
System.out.println(); }
9、关闭连接操作
ps.cloes;
con.cloes;
url.cloes;
注意:关闭数据库连接时要按照ps,con,url这个顺序关闭
10.查看数据库是否连接成功!!
import java.sql.Connection; import java.sql.DriverManager; public class
JDBCDemo { public static void main(String[] args) { // 注意事项:sql包中所需要用到的类都会有异常出现
// 需求:Java程序与数据库建立连接 // 1.让加载的驱动包在本类中进行使用 Class.forName(); // SQLServerDriver
try { // 加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //
2.让Java程序连接数据库 通过DriverManager类 // 第一个参数url的作用:连接sqlserver的规则 // 1433
代表sqlserver的端口号 任何一个程序都有一个独一无二的端口号 Connection conn =
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student",
"sa", "123"); //判断conn连接对象是否为空即可知道程序是否连上数据库?
System.out.println(conn!=null?"连接成功":"连接失败"); } catch (Exception e) {
e.printStackTrace(); } } }
11.增删改查操作:
①增加操作
try { //1.加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.建立连接 localhost 你的数据库的服务器名称 db_stutent数据库名称 sa你数据库的账号 123你数据库的密码! Connection
conn =
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_Student",
"sa", "123"); //3.提供数据(通过Scanner优化) Scanner sc = new Scanner(System.in);
System.out.println("请输入姓名: "); String sname = sc.next();
System.out.println("请输入性别: "); String ssex = sc.next();
System.out.println("请输入年龄: "); int sage = sc.nextInt();
System.out.println("请输入地址: "); String saddress = sc.next();
System.out.println("请输入电话: "); String stelphone = sc.next(); //4.定义sql语句
值先不传,使用"?"占位置。 ?表示占位符 String sql = "insert into tb_student values(?,?,?,?,?)";
//5.将定义的sql语句传入指定的方法 并且会返回一个执行对象出来 PreparedStatement ps =
conn.prepareStatement(sql); //6.为占位符的位置进行重新赋值 通过执行对象 ps.setString(1, sname);
ps.setString(2, ssex); ps.setInt(3, sage); ps.setString(4, saddress);
ps.setString(5, stelphone); //7.开车(调用方法并且返回所影响的行数)就是将数据转入数据库 int n =
ps.executeUpdate(); System.out.println(n>0?"OK":"NO");ok 说明数据 加入数据库成功 no数据加入失败
//8.关闭数据库连接 ps.close(); conn.close(); } catch (Exception e) {
e.printStackTrace(); }
②删除操作
package com.zking.test; import java.sql.Connection; import
java.sql.DriverManager; import java.sql.PreparedStatement; import
java.util.Scanner; public class DeleteTest { public static void main(String[]
args) { /* * 删除操作 */ try { //1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2.建立数据库连接
Connection conn =
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student",
"sa", "123"); Scanner sc = new Scanner(System.in);
System.out.println("请输入删除学生的学号: "); int sid = sc.nextInt(); //3.编写删除的sql语句
String sql = "delete from tb_student where sid = "+sid;
//4.将sql语句通过conn连接对象传入方法返回执行对象ps PreparedStatement ps =
conn.prepareStatement(sql); //5.开车(调用方法返回所影响的行数) int n = ps.executeUpdate();
System.out.println(n>0?"OK":"NO"); ps.close(); conn.close(); } catch (Exception
e) { e.printStackTrace(); } } }
③修改操作
import java.sql.Connection; import java.sql.DriverManager; import
java.sql.PreparedStatement; import java.util.Scanner; public class UpdateTest {
public static void main(String[] args) { // 修改操作 try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn
=
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202",
"sa", "123"); String sql = "update tb_student set sname = ? , ssex = ? , sage =
? , saddress = ? , stelphone = ? where sid = ?"; PreparedStatement ps =
conn.prepareStatement(sql); Scanner sc = new Scanner(System.in);
System.out.println("请输入需要修改学生信息的学号: "); int sid = sc.nextInt();
System.out.println("请输入修改后的姓名: "); String sname = sc.next();
System.out.println("请输入修改后的性别: "); String ssex = sc.next();
System.out.println("请输入修改后的年龄: "); int sage = sc.nextInt();
System.out.println("请输入修改后的地址: "); String saddress = sc.next();
System.out.println("请输入修改后的电话: "); String stelphone = sc.next(); //给占位符(?)进行赋值
ps.setString(1, sname); ps.setString(2, ssex); ps.setInt(3, sage);
ps.setString(4, saddress); ps.setString(5, stelphone); ps.setInt(6, sid); int n
= ps.executeUpdate(); 判断是否添加成功! System.out.println(n>0?"OK":"NO");
关闭数据库与eclipse 的连接 ps.close(); conn.close(); } catch (Exception e) {
e.printStackTrace(); } } }
④查询操作
查询数据之前得找一个容器(Student)将查找到的数据保存在其中,方便查看
注意的是:属性要与数据库中的一样且顺序一样(完全一致)
package com.zking.test; /** * 学生类,存储数据库中的每一行记录 * @author Zkingzz * * 类:数据库是什么
这个类就是什么 顺序一致,属性名一致 * */ public class Student { private int sid; private String
sname; private String ssex; private int sage; private String saddress; private
String stelphone; public Student() { // TODO Auto-generated constructor stub }
public Student( String sname, String ssex, int sage, String saddress, String
stelphone) { super(); this.sname = sname; this.ssex = ssex; this.sage = sage;
this.saddress = saddress; this.stelphone = stelphone; } public Student(int sid,
String sname, String ssex, int sage, String saddress, String stelphone) {
super(); this.sid = sid; this.sname = sname; this.ssex = ssex; this.sage =
sage; this.saddress = saddress; this.stelphone = stelphone; } public int
getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public
String getSname() { return sname; } public void setSname(String sname) {
this.sname = sname; } public String getSsex() { return ssex; } public void
setSsex(String ssex) { this.ssex = ssex; } public int getSage() { return sage;
} public void setSage(int sage) { this.sage = sage; } public String
getSaddress() { return saddress; } public void setSaddress(String saddress) {
this.saddress = saddress; } public String getStelphone() { return stelphone; }
public void setStelphone(String stelphone) { this.stelphone = stelphone; }
@Override public String toString() { return "Student [sid=" + sid + ", sname="
+ sname + ", ssex=" + ssex + ", sage=" + sage + ", saddress=" + saddress + ",
stelphone=" + stelphone + "]"; } }
开始操作:
import java.sql.Connection; import java.sql.DriverManager; import
java.sql.PreparedStatement; import java.sql.ResultSet; import
java.util.ArrayList; import java.util.List; public class SelectTest4 { public
static void main(String[] args) { List list = new ArrayList();集合框架 用于装载数据库中的数据!
//操作:查询所有 高级版本 try { //1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2.建立连接
Connection conn =
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202",
"sa", "123"); //3.编写sql语句 String sql = "select * from tb_student";
//4.将sql传入执行对象中并返回 PreparedStatement ps = conn.prepareStatement(sql);
//5.调用方法将数据库中的所有数据返回到一个ResultSet结果集对象中 ResultSet rs = ps.executeQuery();
//ResultSet结果集对象类似集合容器 获取这个结果集对象中的所有数据,遍历即可。 while //6.遍历结果集对象 while(rs.next())
{//如果结果集中存在下一条数据 // Student stu = new Student(rs.getInt(1), rs.getString(2),
rs.getString(3), rs.getInt(4), rs.getString(5),rs.getString(6)); //
System.out.println(stu); list.add(stu); } //7.关闭 rs.close(); ps.close();
conn.close(); } catch (Exception e) { e.printStackTrace(); } //遍历集合 for
(Student student : list) { System.out.println(student); } } }