jdbc的连接
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { /** * JDBC---java database connectivity * 指java对数据库进行相应操作(CRUD)的一种能力 * 需要第三方的jdbc的驱动包来实现对数据库的操作 * 此驱动包由数据库厂商提供,要事先通过网络去官网或者第三方网站去下载这些jar文件 * 主流的数据库: * ORACLE * SQLSERVER * MYSQL * DB2 * SYBASE * JAVA中操作数据库所需要用到的类和接口全部在 * java.sql.*以及 javax.sql.*这些包中 * 要完成对数据库表的一个基本操作,最常见的是 * 一个类和三个接口,分别是: * 驱动管理类————DriverManager * 连接数据库时的接口——————Connection * 声明用的接口——————Statement * 结果集接口——————ResultSet * * 用jdbc操作数据库的步骤: * 1.将第三方jar包放到工程的编译路径上-----外部导入或者内部引用 * 1.1 外部导入:右键选中工程名---->Build Path--->configure builder path * ---->Libraries--->Add External JARS---->找到你自己电脑上存放的jar文件点击确定就OK了 * 1.2 内部引用:首先在工程中创建一个目录(包),比如建个lib文件夹----> * 找到对应的第三方jar文件拷贝到lib目录中----->右键选中该jar文件----> * Build Path---> add to build path就OK了 * 1.3 定义四个常量用来存储被访问的数据的驱动类、连接字符串、登录名、登录密码 * 连接字符串:jdbc:sqlserver://地址:1433;databasename=student * 地址的编写方式: * localhost: 本机 * 127.0.0.1 本机 * 192,168.0.61 网络中的IP地址 * Teacher 计算机名 * 域名 对应的就是internet中的IP地址 * * SQLSERVER的端口号为1433 * ORACLE的端口号为1521 * MYSQL的端口号为3306 */ //第一步 定义 数据的驱动类、连接字符串、登录名、登录密码 public static final String DB_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; public static final String DB_URL = "jdbc:sqlserver://localhost:1433;databasename=student"; public static final String DB_USER = "sa"; public static final String DB_PASS = "sa"; public static void main(String[] args) { //第二步 通过反射来加载数据库驱动类 try { Class.forName(DB_DRIVER); //第三步 通过DriverManager驱动管理类来获得连接对象 Connection conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PASS);
//第四步 由获取到的连接对象conn来获得数据库声明对象(告诉数据库要执行的操作) Statement st = conn.createStatement();
//第五步 编写对数据库操作的命令——————sql语句 String sql = "select * from student order by stuId"; //第六步 由声明对象最后向数据库发出执行的相关命令并返回对应的结果 /* * 1.如果要做查询,一般用声明对象中的executeQuery()方法,该方法返回查询到 * 的数据结果集对象————ResultSet,如果ResultSet对象里有数据。我们可以通过 * 循环遍历数据 * 2.如果做增加、删除、修改,一般用声明对象的executeUpdate()方法,该方法返回的是 * 对数据库表操作之后所影响的行数————int整型数据,如果该数大于0表示成功进行了增删改的操作 * * 3.还可以通过一个execute方法完成增删查改的操作,该方法返回类型为boolean,如果为true(查询)表示 * 返回了结果集,否则没有(做增删改的操作) */ ResultSet rs = st.executeQuery(sql); //循环的第一要素 查询数据 //第七步 通过while循环遍历结果集对象 while (rs.next()) //第二、四要素 { /* * 在结果集对象种提供了一组丰富的getXXX()方法 * XXX表示的是数据的类型——————int、boolean、float...... * * 获取表中的数据的方式由2种: * 1.根据表中对应字段的索引来获值,索引从1开始,格式为 * rs.getInt(1),rs.getString(2)..... * 2.还可以根据对应字段的名字来获取它们的值,形如" * rs.getString("stuName") */ System.out.println(rs.getInt(1)+"\t"+rs.getString("stuName")); } //第八步 操作完数据库之后记得关闭相应的对象 /* * 先关结果集对象 * 再关声明对象 * 最后断开连接对象 */ rs.close(); st.close(); conn.close(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
**********************************************************************************************************************************插入数据
Class.forName(DB_DRIVER); //第三步 通过DriverManager驱动管理类来获得连接对象 Connection conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PASS); //第四步 由获取到的连接对象conn来获得数据库声明对象(告诉数据库要执行的操作) Statement st = conn.createStatement(); //第五步 编写对数据库操作的命令——————sql语句 String name = "jack"; int age = 20; String sex = "男"; String sql = "insert into student(stuId,stuName,stuSex,stuAge) values(7,"+"'"+name+"','"+sex+"',"+age+")"; //insert into student(stuId,stuName,stuSex,stuAge) values(7,'jack','男',20) System.out.println("sql="+sql); int result = st.executeUpdate(sql); if (result>0) { System.out.println("插入数据成功!"); }else{ System.out.println("插入数据失败!"); } st.close(); conn.close();
**********************************************************************************************************************************修改数据
try { Class.forName(DB_DRIVER); Connection conn = DriverManager.getConnection(DB_URL,DB_USER,DB_PASS); String sql = "update student set stuSex= ?,stuName = ? ,stuAge=?, stuHobby = ? where stuId = ? ";
// Statement st = conn.createStatement(); PreparedStatement st = conn.prepareStatement(sql);//prepareStatement比createStatement好 st.setString(1, "男"); st.setString(2, "刘德华"); st.setInt(3, 55); st.setString(4, "唱歌,演电影"); st.setInt(5, 1); int result = st.executeUpdate(); if (result>0) { System.out.println("修改数据成功!"); }else{ System.out.println("修改数据失败!"); } st.close(); conn.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }

浙公网安备 33010602011771号