zoukankan      html  css  js  c++  java
  • JAVA学习笔记 -- JDBC及其应用

    一个、准备工作

    1、开放SQL Server服务与支持TCP/IP  进一步确认TCPport


    2、Eclipse下给项目导入sqljdbc4.jar包

    将下载好的 sqljdbc_4.0.2206.100_chs.exe执行解压。然后在 .Microsoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0chsauth 路径下选择合适版本号的sqljdbc_auth.dll。 将其放在 C:WindowsSystem32下。

    给项目导入包:右键你的项目选择Properties。弹出以下窗体,选择Java Build Path


    通过右边的一些Add操作导入,选择Add JARs要把sqljdbc4.jar包放在项目文件夹以下。

    二、连接数据库(SQL Server)

    String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
    String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=LG";
    Class.forName(driverName);//装载这个类
    //dbConn = DriverManager.getConnection(dbURL);//Windows身份认证
    tring username = "sa";
    String password = "xxxx";
    dbConn = DriverManager.getConnection(dbURL,username,password);

    三、操作数据库

    1、ResultSet类对数据库的操作

    Statement st = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,//对数据敏感
    					ResultSet.CONCUR_UPDATABLE);//可更新
    			String sql = "select * from student ";
    			ResultSet result = st.executeQuery(sql);
    			//更新第1行name字段
    			result.absolute(1);
    			result.updateString("name","lg");
    			result.updateRow();
    			//插入一条记录
    		  	result.moveToInsertRow();
    			result.updateString(1, "ln");
    			result.updateString(2, "男");
    			result.updateInt(3,12);
    			result.updateInt(4,80);
    			result.insertRow();
    			result.moveToInsertRow();
    			//删除一条记录
    		 	result.last();
    			result.deleteRow();
    			result.absolute(0);
    			st.close();//先关闭对话
    			dbConn.close();//再关闭连接
    			

    2、将连接数据库信息保存到driver.properties的文件中,再用一个getProperty()方法获取信息

    driver.properties文件:

    drivers=com.microsoft.sqlserver.jdbc.SQLServerDriver
    url=jdbc:sqlserver://localhost:1433;DatabaseName=LG
    user=sa
    password=xxxx
    注意:文件要放在项目的根文件夹以下,并且=号两边不能有多余空格


    getProperty()方法:

    public void getProperty() {
    		Properties prop = new Properties();
    		try {
    			FileInputStream in = new FileInputStream("driver.properties");
    			prop.load(in);
    			driverName = prop.getProperty("drivers");
    			url = prop.getProperty("url");
    			userName = prop.getProperty("user");
    			passWord = prop.getProperty("password");
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}

    3、事务处理

    将数据库自己主动提交设为false。运行一段sql语句。在con.commit();前还能够通过con.rollback();回到未运行sql语句之前的状态。

    <pre name="code" class="cpp">con.setAutoCommit(false);
    st.executeUpdate(sql);
    con.rollback();
    con.commit();
    con.setAutoCommit(true);

    
    

    4、预查询

    String sql = " select 姓名,学号,专业,籍贯 from student where 姓名 = ?";
    PreparedStatement pre = con.prepareStatement(String sql);
    pre.setString(1,"张强");
    ResultSet re = pre.executeQuery();

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4688545.html
Copyright © 2011-2022 走看看