eclipse中的程序去连接sqlserver数据库过程
jdbc 可以网上找或者加我发给你
1.连接前的准备工作
(0)打开服务,打开数据库软件,进行sa登录
(1)建数据库与建表
(2)打开eclipse,创建Java项目程序
(3)先将指定数据库的驱动包存放到Java程序中
在项目专门创建一个文件夹存储
(右击项目-new--folder--命名lib)
找到驱动包(sqljdbc.jar) 赋值到该文件夹内
(4)右击驱动包加载到Java程序
build path----add build path
2.测试Java程序连接数据库
(1)自定义类编写主程序的入口
(2)加载驱动利用Class.forName 会有异常
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
(3)利用DriverManager实现与数据库连接并且会返回Connection连接对
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");
详细流程 !!!
1、启动服务
2、建库 建表
3、新建项目
4、导入驱动包
5、加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
6、创建连接 Connection con = DriverManager.getConnection(url,"sa","123");
定义连接字符串
String url="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc0809";
创建连接
Connection con=DriverManager.getConnection(url, "sa", "sa");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;
注意 关闭数据库连接时要从下往上!查看数据库是否连接成功!!
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(); } } }
案例!! 增 删 改 查
增加数据到数据库永久保存!!
首先你数据库中必须建表!!!
create database db_Student on primary( name='db_Student', filename='F:\项目数据 --数据库\db_Student.mdf',--存储地址 需要你自己改动 size=5mb, maxsize=unlimited, filegrowth=10% )log on( name='db_Student_log', filename='F:\项目数据 --数据库\db_Student_log.ldf',--日志包存储地址也需要你自己做改动 size=2mb, maxsize=10, filegrowth=5% ) use db_Student 启用学生类这个数据库 create table tb_Student( sid int primary key identity(1,1), snaem varchar(40)not null, ssex varchar(2) check(ssex in('男','女')), sage int check(sage >0and sage<=150), saddress varchar(200) )
第二步 增加操作
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); } } }