java sql2005驱动_Java连接SQL驱动的方式

某些JDBC的JAR文件将自动注册驱动器类。包含META-INF/services/java.sql.Driver文件的JAR文件可以自动注册驱动器类,解压缩驱动程序JAR文件就可以检查其是否包含该文件。

如果驱动程序JAR文件不支持自动注册,那就需要找出数据库提供商使用的JDBC驱动器类的名字。典型的驱动器名字如下:

org.apache.derby.jdbc.ClientDriver

org.postgresql.Driver

com.mysql.jdbc.Driver

另一个需要注意的是数据库URL,我们必须使用各种与数据库类型相关的参数,例如主机名、端口号和数据库名。

JDBC使用了一种与普通URL相类似的语法来描述数据源。

格式形如:

jdbc:subprotocol:other stuff

实例如下

jdbc:derby://localhost:1527/COREJAVA;create=true

jdbc:mysql://localhost:3306/COREJAVA

jdbc:postgresql:COREJAVA

通过使用DriverManager,可以用两种方式来注册驱动器。

首先,在项目Build Path中需要" Add External JARs",加入C:\Program Files (x86)\MySQL\MySQL Connector J目录下的mysql-connector-java-5.1.37-bin.jar  (这货也太TM难找了吧)

1. 在Java程序中加载驱动器类,例如:

Class.forName("com.mysql.jdbc.Driver");

这条语句将使得驱动器类被加载,由此将执行可以注册驱动器类的静态初始化器。

一个实例如下:

$ mysql -u root -p

password: password

数据库创建语句:

CREATE DATABASEsongci;USEsongci;CREATE TABLE authors(author_id INT, first_name VARCHR(20), last_name VARCHAR(10), poems VARCHAR(40));

// 再插入一些数据

-----------------------------------------------------------------------------------------------------------------------------------------------------

Java代码段如下:

1 packagecom.coresql.sqljdbc;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.ResultSet;6 importjava.sql.Statement;7

8 public classMySqlJdbc {9

10 static{11 try{12 Class.forName("com.mysql.jdbc.Driver");13 } catch(Exception e) {14 System.out.println("Error Loading MySQL Driver!");15 e.printStackTrace();16 }17 }18

19 public static voidmain(String[] args) {20 try{21

22 Connection connect =DriverManager.getConnection(23 "jdbc:mysql://localhost:3306/songci","root","mypassword");24 //连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码

25

26 System.out.println("Success connect Mysql server!");27 Statement stmt =connect.createStatement();28 ResultSet rs = stmt.executeQuery("select * from authors");29

30 while(rs.next()) {31 System.out.println(rs.getString("last_name") + " " + rs.getString("first_name"));32 }33 } catch(Exception e) {34 e.printStackTrace();35 }36 }37 }

2.  另一种方式是设置jdbc.driver属性。可以用命令行参数来指定这个属性。例如:

$ java -Djdbc.drivers=org.postgresql.Driver ProgramName

或者在应用中用下面的调用来设置系统属性

System.setProperty("jdbc.drivers", "org.postgresql.Driver");

应用这种方式可以提供多个驱动器,用冒号将他们分割开,例如:

org.postgresql.Driver:org.apache.derby.jdbc.ClientDriver

Java程序中连接数据库的代码如下:

String url = "jdbc:postgresql:COREJAVA";

String username= "root";

String password= "mypassword";

Connection conn= DriverManager.getConnection(url, username, password);

可以这么做: 从名为database.properties的文件中加载连接参数,并连接到数据库。

jdbc.drivers=com.jdbc.mysql.Driver

jdbc.url=jdbc:mysql://localhost:3306/songci

jdbc.username=root

jdbc.password=mypassword

Java代码如下:

1 packagecom.testsql.getconnection;2

3 importjava.io.IOException;4 importjava.io.InputStream;5 importjava.nio.file.Files;6 importjava.nio.file.Paths;7 importjava.sql.Connection;8 importjava.sql.DriverManager;9 importjava.sql.ResultSet;10 importjava.sql.SQLException;11 importjava.sql.Statement;12 importjava.util.Properties;13

14 public classTestDB {15

16 public static void main(String[] args) throwsIOException {17 try{18 runTest();19 } catch(SQLException e) {20 for(Throwable t : e) {21 t.printStackTrace();22 }23 }24 }25

26

27 public static void runTest() throwsSQLException, IOException {28 try (Connection conn =getConnection()) {29 Statement stat =conn.createStatement();30 ResultSet rs = stat.executeQuery("SELECT * FROM authors");31

32 while(rs.next()) {33 System.out.println(rs.getString("last_name") + " " + rs.getString("first_name"));34 }35 System.out.println("Done");36 }37 }38

39 public static Connection getConnection() throwsSQLException, IOException {40 Properties props = newProperties();41

42 try (InputStream in = Files.newInputStream(Paths.get("database.properties"))) {43 props.load(in);44 }45

46 String drivers = props.getProperty("jdbc.drivers");47 if (drivers != null) {48 System.setProperty("jdbc.drivers", drivers);49 }50

51 String url = props.getProperty("jdbc.url");52 String user = props.getProperty("jdbc.username");53 String password = props.getProperty("jdbc.password");54

55 returnDriverManager.getConnection(url, user, password);56 }57 }

代码中执行SQL语句:

在执行SQL命令之前,首先需要创建一个Statement对象。要创建Statement对象,需要使用调用DriverManager.getConnection方法所获得的Connection对象。

Statement stat = conn.createStatement();

接着将要执行的SQL语句放入字符串中,例如:

String command = "UPDATE Books"

+ " SET Price=Price-5.00"

+ " WHERE Title NOT LIKE '%Introduction%'";

然后调用:

stat.executeUpdate(command);

executeUpdate方法将返回受SQL命令影响的行数。这个方法针对SQL中诸如INSERT、UPDATE和DELETE之类的操作,也可以执行诸如CREATE TABLE和DROP TABLE之类的数据定义语句

执行查询操作时,则使用executeQuery方法,返回一个ResultSet类型的对象。

ResultSet rs = stat.executeQuery("SELECT * FROM Books");

分析结果时通常可以使用类似下面的循环语句:

while(rs.next()) {//look at a row of result set

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值