求大神来一段用H5编写的连接sql server数据库的代码,必有重谢

求大神来一段用H5编写的连接sql server数据库的代码,必有重谢,第1张

H5是前端语言,前端无法连接数据库,目前只有后端语言可以连接数据库,前端通过ajax或者其他形式的接口与后端语言通讯,常见的后端语言有asp.net,php,java,因为前端语言可见,可以调试,如果能够直接连接数据库会造成很大的安全隐患

import java.sql.ResultSet//都是导入一些下面需要用到的类

String ConnStr="jdbc:microsoft:sqlserver://WINJUE:1433DatabaseName=library"//jdbc连接数据库url

public sqlServer() {

try {

Class.forName(DBDriver).newInstance() //加载SQLServer驱动程序,DBDriver是你上面的代码

conn=DriverManager.getConnection(ConnStr,"sa","sa")//和数据库建立连接,ConnStr里面的://WINJUE:1433DatabaseName=library 分别是主机地址:端口号你自己建的数据库(database)

}

catch(SQLException e) { //捕获SQL异常

System.out.println(e.getMessage())//要是出现异常,捕获到后,这句代码会把异常的信息(出错的原因之类的)打印出来。

}

catch(Exception e) { //捕获异常,这个是总的,所以不能和上面的顺序颠倒,先小到大,我连ORACLE和MYSQL,这个我通常不要,只须捕获SQL异常就OL

System.out.println(e.getMessage())

}

}

public Connection getConn(){ //获取连接方法

return conn

}

public void insert(String sql) {//增删改

try {

Statement stm=conn.createStatement()调用conn下的方法,创建Statement对象

stm.executeUpdate(sql)//调用Statement下的方法执行SQL语句

System.out.println(" *** 作成功")

}

catch(Exception e){

System.out.println(e.getMessage())//如上

}

}

public ResultSet query(String sql){ //查询

try{

Statement stm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE)

rs=stm.executeQuery(sql)//如上

}

catch(Exception e){

System.out.println(e.getMessage())

}

return rs

}

public static void main(String args[]){

sqlServer conn=new sqlServer()//创建sqlServer,就是你上面的类,以便调用里面的方法

ResultSet rs=conn.query("select * from Orders")//调用query方法,执行SQL语句后,把结果保存到结果集里

//conn.insert("delete from BookInfo where BookName =" +"\'悟空传\'")

//conn.insert("insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,'悟空传','今何在','孙悟空')")

try{

while(rs.next()){ //循环,判断结果集里的记录,一条条往下走,是否还有下一条记录,若是返回真,继续走

System.out.print(rs.getString("OrderID"))

//System.out.print(rs.getString("U_age"))

}

rs.close() //关闭结果集

}

catch (Exception e){

System.out.println(e.getMessage())

}

}

}

注:

TYPE_FORWARD_ONLY:缺省类型。只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至能进行特定定位,例如移至列表中的第四个记录或从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。

TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 相同,允许在记录中定位。这种类型受到其他用户所作更改的影响。如果用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。

1. 加载一个对应数据库的JDBC驱动

在建立到一个数据库的连接之前,必须先加载这个数据库的JDBC驱动程序,加载之后此driver会自动注册到JDBC驱动列表中。加载一个JDBC驱动有两种方法。

a) 在命令行方式下指定驱动器或者用冒号分割驱动器列表:

具体命令如下:

C:\>java –Djdbc.drivers = com.company1.Driver:com.company2.Driver youProject

b)第二种方法,在程序中调用Class.forName()方法。推荐使用。。。。

try

{

String driverName = “com.imaginary.sql.msql.MsqlDriver”

Class.forName(driverName).newInstance()

}

Catch(ClassNotFoundException e1)

{

//catch could not find database driver exception.

}

2.连接到数据库。

根据您后台待连接的数据库不同,而有小小的差别。

a) 连接到Oracle数据库。

Connection connection = null

try

{

//load the jdbc driver

String driverName = “oracle.jdbc.driver.OracleDriver”

Class.forName(driverName).newInstance()

//create a connection to the database

String serverName = “127.0.0.1”

String serverPort = “1521”

String serverID = “datebase1”

String userName = “hello”

String userPsw = “world”

String url = “jdbc:oracle.thin:@” + serverName + “:” + serverPort + “:” + serverID

Connection = DriverManager.getConnection(url , userName , userPsw)

}

catch(ClassNotFoundException e1)

{

//catch could not find database driver exception.

}

catch(SQLException e2)

{

//catch could not connect to the database exception.

}

b) 连接到一个SQL Server数据库。

Connection connection = null

try

{

//load the jdbc driver

String driverName = “com.microsoft.jdbc.sqlserver.SQLServerDriver”

Class.forName(driverName).newInstance()

//create a connection to the database

String serverName = “127.0.0.1”

String serverPort = “1433”

String serverID = serverName + serverPort

String userName = “hello”

String userPsw = “world”

String url = “jdbc:JSQLConnect ://” + serverID

Connection = DriverManager.getConnection(url , userName , userPsw)

}

catch(ClassNotFoundException e1)

{

//catch could not find database driver exception.

}

catch(SQLException e2)

{

//catch could not connect to the database exception.

}

c) 连接到一个MySQL数据库上。。。。

Connection connection = null

try

{

//load the jdbc driver

String driverName = “org.gjt.mm.mysql.Driver”

Class.forName(driverName).newInstance()

//create a connection to the database

String serverName = “127.0.0.1”

String serverID = “database”

String userName = “hello”

String userPsw = “world”

String url = “jdbc:mysql ://” + serverName + “/” + serverID

Connection = DriverManager.getConnection(url , userName , userPsw)

}

catch(ClassNotFoundException e1)

{

//catch could not find database driver exception.

}

catch(SQLException e2)

{

//catch could not connect to the database exception.

}

综合上面的三种数据库连接方式 , 其实大同小异。由于访问不同的数据库和所使用的数据库驱动程序不同,所以导致代码表面上有小小不同,但透过表面看来,内部都是

1. 加载一个特定的数据库JDBC驱动。

2. 连接到一个数据库。

3. 之后,就可以对一个特定的数据库进行特定的 *** 作了。

附上各种数据库的JDBC驱动起可用信息网址:

http://java.sun.com/products/jdbc

对于Oracle数据库,请参考:

http://otn.oracle.com.software/content.html

对于MySQL数据库,请参考:

http://mmMySQL.sourceforge.net

对于SQL Server数据库,有很多的驱动可选,比较常用的:

http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp

http://www.freetds.org

http://www.datadirect-technologies.com


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6761055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存