 
         
         
         
         
        
            已阅读5页,还剩7页未读,            继续免费阅读
        
        
                版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
            JDBC和数据库的连接一、JDBC和SQL Server数据库的连接1.前提:a.电脑上已经安装好JDK,Path和Classpath等环境变量已经配置好。已经安装好Eclipse。b.电脑上已经安装好SQL Server数据库管理系统,并启动。2.SQL Server数据管理系统SQL Server身份验证模式设置数据库用户名和密码需要先设置好。因为JDBC与数据库连接时,需要提供用户名和密码。步骤如下:(1)首先启动SSMS(SQL Server Management Studio),本系统默认是Windows身份验证模式,在起始界面直接单击Connect进入当前数据库服务器管理;在左面空格找到Security(安全性),右击,选择“New|Login.”,如下图:(注意:要选择和Database平行的项目Security,而不是Database内部具体的数据库下面的Security,那里找不到Login.选项的)图 1(2)进入如图2所示的Login对话框,首先指定用户名(Login name),图中为wusir;点选“SQL Server authcntication(SQL Server身份验证)”,在其下的2个密码提示框中输入“123456”做为密码;注意:做为举例,这里笔者把“Enforcement password policy(强制实施密码策略)”给勾选无效,这样才可以用“1234546”做为密码,否则以SQL Server的密码策略,这样简单的密码是无法通过的,企业实际应用时,还是建议将这一项勾选有效,即设定一个相当复杂的数据库密码;图2(3)在同样的对话框中,选择左面空格的User Mapping(用户映射),选定刚刚创建的用户名所能够管理的数据库,右上空格中选择“Sample”数据库;同时在右下空格中勾选db_owner和public两个数据库角色成员(Database role membership),如图3所示;图3(4)同样的对话框,选择左面空格的Status(状态),确认Grant(授予)及Enabled(启用)两个单选钮被选中,如图4所示;单击OK按钮保存退出;图4(5)在Object Explorer(对象资源管理器)窗格内,右击SQL Server服务器名称,单击Properties(属性),如图5所示;图5(6)在打开的服务器属性对话框,选择右面空格的Security(安全),选择SQL Server and Windows Authentication mode(SQL SERVER和WINDOWS身份验证模式),如图6所示,单击OK保存退出。图6(7)将SQL Server Express(或SQL Server)服务重新启动,以下配置就可以使用了。(注:不是将SSMS关闭再打开,而是在服务器管理器中找到相应服务重新启动);注意:停止SQL Server 服务的方法: 运行 net stop sqlserver命令启动 SQL Server服务的方法:运行 net start sqlserver同样的,启动和停止MySQL 服务的方法如下:net start mysqlnet stop mysql2.JDBC和SQL Server连接步骤如下:(1)确认Sql Server的的运行状态打开Sql Server配置管理器,确认Sql Server的处于运行状态开始-所有程序- Microsoft SQL Server 2008-配置工具- SQL Server配置管理器启用TCP端口,确认端口设置为:1433(2)安装JDBC驱动1)下载JDBC驱动/zh-cn/download/details.aspx?id=117742)执行sqljdbc_4.0.2206.100_chs.exe解压驱动文件到C 盘Program Files 中默认目录下。假设解压在C:Program Filessqljdbc_4.0下。/*3)拷贝以下目录中的sqljdbc_auth.dll到Windows的System32目录。对x64的机子,x64的dll拷到C:WindowsSystem32,x86的dll拷到C:WindowsSysWOW64目录。Microsoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0chsauth如果采用SQLServer 身份验证模式或者混合认证模式登录,则该部分可以不做如果采用SQL Server默认使用Windows身份验证模式,这部分必须要做。*/(3)在Java程序中连接SQL Server在classpath中设置好安装好的SQL Server jdbc jar包。Microsoft JDBC Driver 4.0 for SQL Serversqljdbc_4.0chssqljdbc4.jar(4)在Eclipse中创建一个工程:TestJDBCSQLServer右击工程名,选择build path(构建路径)-添加外部文档-选择sqljdbc.jar所在的位置。添加完成后,在项目中就多了一个被引用的类库。(5)连接SQL Server的JDBC代码String DRIVERCLASS=com.microsoft.sqlserver.jdbc.SQLServerDriver;String url=jdbc:sqlserver:/localhost:1433; databaseName=数据库名称;IntegratedSecurity=True;String USERNAME=gxh;String PASSWORD=123456;/此处的用户名和密码即为“前提”部分设置的用户名和密码,例如本人设置的用户名为gxh,密码为123456(6)身份验证模式SQL Server默认使用Windows身份验证模式,这也是官方推荐的模式,安全性更高。上面的连接例子就是采用的Windows认证。如果要使用混合认证模式,需要下载SQL Server Management Studio,并通过SQL Server Management Studio修改认证模式为混合认证模式。SQL Server Management Studio的下载地址/zh-cn/download/details.aspx?id=8961修改SQL Server认证模式的方法/zh-cn/library/ms188670(v=sql.105).aspx混合认证模式下,可以由数据库进行认证,连接时需要提供用户名和密码(7).参考身份验证模式也可以通过修改注册表变更,方法参见下面的文章/binyao02123202/article/details/6574642关于SQL Server的端口号配置,可以参考下面一篇文章/blog/3171847/1120295二、JDBC和MySQL数据库的连接过程与上面类似,相关的内容替换成My SQL 数据库需要的内容即可。1电脑上安装好JDK及配置好相关环境变量。安装好Eclipse2电脑上安装好mySQL及配置好相关环境变量。步骤如下:(1)MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:Program FilesMySQLMySQL Server 5.6 该目录中;zip格式是自己解压,把它解压在C:programe files目录下,为了方便,把解压后的文件夹命名为MySQL。然后要进行配置。(2)完成上述步骤之后,再配置环境变量。我的电脑-属性-高级-环境变量选择PATH,在其后面添:你的mysql的 bin文件夹的路径 (如:C:Program FilesMySQLMySQL Server 5.6bin )PATH=.;C:Program FilesMySQLMySQL Server 5.6bin (注意是追加,不是覆盖)(3)修改一下配置文件,mysql-5.6.1X默认的配置文件是在C:Program FilesMySQLMySQL Server 5.6my-default.ini,或者自己建立一个my.ini文件,在其中修改或添加配置(如图):mysqldbasedir=C:Program FilesMySQLMySQL Server 5.6(mysql所在目录)datadir=C:Program FilesMySQLMySQL Server 5.6data (mysql所在目录data)port=3306(4)以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),输入:cd C:Program FilesMySQLMySQL Server 5.6bin进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹)输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!)安装成功注意:如果安装MySql 之后,发现没有data文件夹,则打开cmd命令窗口,进入到mysql安装目录的bin目录下。然后输入命令:去目录下查看,已经自动创建好data文件夹。(5)安装成功后就要启动服务了,继续在cmd中输入:net start mysql(如图),服务启动成功!(6)服务启动成功之后,就可以登录了,如图,输入mysql -u root -p(第一次登录没有密码,直接按回车过),登录成功!3mySQL使用简单介绍(1)登陆mysql打cmd命令终端,如果已经添加了mysql的环境变量,可以直接使用命令mysql uroot 直接回车,之后按提示输入密码,如果未添加mysql的环境变量,可以切换到mysql的安装目录下的bin目录,再使用mysq -uroot你也可以手动为mysql添加环境变量。这里就不介绍怎么添加环境变量的方法了密码输入正确之后,就会出现“Welcome to the MySQL monitor. Commands end with ; or g. .”字样,命令行出现“mysql”字符前缀。现在就可以使用命令对mysql进行操作了。mysql的所有命令都以;或者g为结束符(2)新建数据库在新建数据库之后,我们先设置一下字符集mysqlSET NAMES utf8;然后再创建数据库mysqlCREATE DATABASE lesson(3)显示所有数据库mysqlSHOW DATABASES;(4)使用数据库mysqlUSE 数据库名;(5)新建表mysqlCREATE TABLE study(id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 学生id号,username varchar(30) NOT NULL DEFAULT COMMENT 学生名字,class tinyint(3) unsigned NOT NULL);(6)显示所有表mysqlSHOW TABLES;(7) 修改表的名称mysqlRENAME TABLE study TO study_new ;或者mysqlALTER TABLE study_new RENAME TO study;(8)显示字段信息SHOW COLUMNS FROM study或者DESCRIBE study(9)插入数据mysqlinsert into study (username,class,sex)VALUES(小王,1,男),(小四,2,女);(10)查询数据mysql SELECT username, sex FROM study;(11) 删除数据mysqlDELETE FROM study WHERE id=1;(12) 删除数据表DROP TABLE study;4下载JDBC驱动mysql-connector-java-5.0.5-bin.jar导入到工程中去(1)工程(右键)-buildpath-configure build path-add external jars。(2) 加到classpath中去,具体如下:“我的电脑”- “属性” -“高级” - “环境变量”,在系统变量那里编辑classpath,将D:mysql-connector-java-5.0.5mysql- connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开,然后确定。测试代码:所用驱动 mysql-connector-java-5.0-nightly-20071116-bin.jar程序中引用必要的包:import java.sql.*; /它包含有操作数据库的各个类与接口5.加载合适的JDBC驱动程序Class.forName(Driver);MySQL驱动程序:com.mysql.jdbc.DriverOracle驱动程序:oracle.jdbc.driver.OracleDriverSQLServer驱动程序:com.Microsoft.jdbc.sqlserver.SQLServerDriver2、建立数据库连接与MySQL数据库连接的方法:Connection con=DriverManager.getConnection(“jdbc:mysql:/主机IP或主机名:3306/数据库名”,用户名,密码);java.sql.DriveManager 用来处理装载驱动程序并且为创建新的数据库连接提供支持;java.sql.Connection 用于完成对特定定数据库的连接;java.sql.Statement 用于对特定的数据库执行SQL语句;java.sql.Statement又包含了以下两个重要的子类型:java.sql.PreparedStatement 用于执行预编译的SQL语句;java.sql.CallableStatement 用于执行数据库中存储的过程的调用;-java.sql.ResultSet 查询所得的结果集3、创建Statement对象Statement st=con.createStatement(); /最后可以不关闭,但推荐关闭利用Statement对象可以执行静态SQL语句,静态SQL语句可以是Select语句、Delete语句、Update语句和Insert语句。执行SQL语句Statement接口提供了三种执行SQL语句的方法:executeQuery()、executeUpdate() 和execute()。具体使用哪一个方法由SQL语句本身来决定。方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句等。方法 executeUpdate 用于执行INSERT、UPDATE或DELETE 语句以及SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个 整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。一般不会需要该高级功能。 JDBC在编译时并不对将要执行的SQL查询语句作任何检查,只是将其作为一个String类对象,直到驱动程序执行SQL查询语句时才知道其是否正确。对于错误的SQL查询语句,在执行时将会产生 SQLException。 一个Statement对象在同一时间只能打开一个结果集,对第二个结果集的打开隐含着对第一个结果集的关闭。如果想对多个结果集同时操作,必须创建出多个Statement对象,在每个Statement对象上执行SQL查询语句以获得相应的结果集。如果不需要同时处理多个结果集,则可以在一个Statement对象上顺序执行多个SQL查询语句,对获得的结果集进行顺序操作。str=insertinto customer values(wangyang,24,beijing,);int recordNumber=st.executeUpdate(str);执行executeUpdate()方法返回该SQL语句涉及的记录数。str=select* from mycustomer; /查询表中记录ResultSet rs=st.executeQuery(str); 由于SQL语句是select,用executeQuery()方法,返回一个结果集保存在ResultSet对象rs中。4、分析ResultSet对象 执行完毕SQL语句后,将返回一个ResultSet类的对象,它包含所有的查询结果。但对ResultSet类的对象方式依赖于光标(Cursor)的 类型,而对每一行中的各个列,可以按任何顺序进行处理(当然,如果按从左到右的顺序对各列进行处理可以获得较高的执行效率);ResultSet类中的Course方式主要有:ResultSet.TYPE_FORWARD_ONLY(为缺省设置):光标只能前进不能后退,也就是只能从第一个一直移动到最后一个。ResultSet.TYPE_SCROLL_SENSITIVE:允许光标前进或后退并感应到其它ResultSet的光标的移动情形。ResultSet.TYPE_SCROLL_INSENSITIVE:允许光标前进或后退并不能感应到其它ResultSet的光标的移动情形。ResultSet类中的数据是否允许修改主要有:ResultSet.CONCUR_READ_ONLY(为缺省设置):表示数据只能只读,不能更改。ResultSet.CONCUR_UPDATABLE:表示数据允许被修改。可以在创建Statement或PreparedStatement对象时指定ResultSet的这两个特性。Statement stmt=con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);或PreparedStatement pstmt=con.PrepareStatement(insert into bookTable values (?,?,?),ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet类的对象维持一个指向当前行的指针,利用ResultSet类的next()方法可以移动到下一行(在JDBC中,Java程序一次只 能看到一行数据),如果next()的返回值为false,则说明已到记录集的尾部。另外JDBC也没有类似ODBC 的书签功能的方法。 利用ResultSet类的getXXX()方法可以获得某一列的结果,其中XXX代表JDBC中的Java数据类型,如 getInt()、getString()、getDate()等。访问时需要指定要检索的列(可以采用 int值作为列号(从1开始计数)或指定列(字段)名方式,但字段名不区别字母的大小写)。示例:while(rs.next()int id=rs.getInt(id);String name=rs.getString(cName);int age=rs.getInt(cAge);String address=rs.getString(cAddress);String email=rs.getString(cEmail);System.out.println(id+ +name+ +age+ +address+ +email);获得结果集中的结构信息:利用ResultSet类的getMetaData()方法来获得结果集中的一些结构信息(主要提供用来描述列的数量、列的名称、列的数据类型。利用ResulSetMetaData类中的方法)。ResultsetMetaData rsmd=rs.getMetaData();rsmd.getColumnCount(); /返回结果集中的列数rsmd.getColumnLabel(1); /返回第一列的列名(字段名)例如:Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select * from TableName);for(int i=1; i=rs.getMetaData().getColumnCount(); i+) /跟踪显示各个列的名称 System.out.print(rs. getColumnName (i)+t);while(rs.next() /跟踪显示各个列的值for(int j=1; j=rs.getMetaData().getColumnCount(); j+) System.out.print(rs.getObject(j)+t);5、关闭连接(注意关闭的顺序)例:rs.close();st.close();con.close()6、JDBC的常用API一、Connection接口:1.createStatement():创建数据库连接2.prepareStatement(Stringsql):创建预处理语句3.prepareCall(Stringsql):创建可调用语句4.getAutoCommit():获取自动提交的模式5.setAutoCommit():设置自动提交的模式6.commit():提交所执行的SQL语句7.rollback():回滚所执行的SQL语句8.getMetaData():获取一个DatabaseMetaData对象,该对象包含了有关数据库的基本信息9.close():关闭数据库连接10.isClose():判断数据库连接是否超时或被显示关闭二、Statement接口:1.execute(Stringsql):执行SQL语句,如果返回值是结果集则为true,否则为false2.executeQuery(Stringsql):执行SQL语句,返回值为ResultSet3.executeUpdate(Stringsql):执行SQL语句,返回值为所影响的行数4.addBatch(Stringsql):向当前Statement对象的命令列表中添加新的批处理SQL语句5.clearBatch():清空当前Statement对象的命令列表6.executeBatch():执行当前Statement对象的批处理语句,返回值为每个语句所影响的函数数组7.getConnection():返回创建了        
    温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 父母赠与儿女合同(标准版)
- 三明市人民医院血管介入引导考核
- 莆田市中医院皮肤撕裂伤处理考核
- 宿迁市中医院男科显微手术技能考核
- 静脉血栓护理考试题及答案
- 高铁车站客运员试题带答案
- 舟山市人民医院医疗废物分类收集与处置规范认证考试
- 宜春市人民医院儿科感染控制专项考核
- 吉安市中医院消化道出血定位考核
- 盐城市中医院甲状腺癌根治术主刀医师资质评审考核
- 基孔肯雅热的个案护理
- 本科毕业生怎样写论文(培训)
- 高中英语新人教版必修第一册Unit2READING说课稿
- 反骚扰反虐待管理程序
- 守岛战士生活艰苦的资料
- 歌曲演唱 万疆
- 劳保用品使用安全培训
- 氧化还原与电极电势标准电极电势
- 心包穿刺术教学
- 超声引导血管穿刺演示文稿
- 单元体吊装方案优质资料
 
            
评论
0/150
提交评论