jdbc基础(连接篇)
JDBC 是 Java 访问数据库的标准接口,本质是用一套统一代码,连接 MySQL、Oracle 等不同数据库,避免重复开发。
程序员无需学习基础语法,只需换数据库驱动,就能连接不同数据库。这得益于jdbc的统一接口格式。
好,这里我用的是Maven加载jdbc的依赖,并使用5.1.6稳定版本:
<!--导入mySql驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency>连接数据库方式一:
1.首先注册mlySQL的驱动类:
Driver driver = new Driver();2.得到连接的url:(语法:[主机名]:[端口号] / [数据库名],这里端口号默认是3306为MySQl的端口号)
String url = "jdbc:mysql://localhost:3306/newtest2";3.创建Properties对象并将用户名和密码放进Properties对象里,并使用Connection建立连接(连接的本质是socket,Connection是在建立在socket上的包装类):
// 将用户名和密码放入Properties对象里Properties properties = new Properties();properties.setProperty("user","root");properties.setProperty("password","123456");Connection connection = driver.connect(url,properties);
// connection表示一个网络连接
4.通过连接获取statement,statement里可以填写SQL语句。statement就好像UDP编程里从连接里获取的包可以传递信息,不过这里传的是SQL语句。
// statement用于执行静态SQL语句并返回生成的结果对象Statement statement = connection.createStatement();5.创建SQL语句并使用executeUpdate方法执行Update的SQL语句并返回受影响的行数:
// id设为了自增主键
String sql = "insert into account values(null,'xiaomin',1213)"
// insert方法返回受影响的行数
int result = statement.executeUpdate(sql);6.最后,关闭连接:
// 关闭连接资源statement.close();connection.close();连接数据库方法二:
方法二是在方法一的基础上通过反射注册驱动并获取Driver的实例对象:
// 使用反射加载Driver类Class class1 = Class.forName("com.mysql.jdbc.Driver");
// 获取到类的实例对象Driver driver = (Driver)class1.newInstance();其余与法一无异。
连接数据库方法三(最常用):
1.自动注册驱动:
Class class0 = Class.forName("com.mysql.jdbc.Driver");
// 自动注册驱动2.使用DriverManger的getConnection方法创建连接:
String url="jdbc:mysql://localhost:3306/newtest2";String user = "root";String password = "123456";
// 直接创建连接Connection connection = DriverManager.getConnection(url,user,password);3.从connection中获取Statement并执行SQL语句,其中execuQuery方法是专门用来执行查找SQL的方法:
String sql = "select * from account";Statement statement = connection.createStatement();ResultSet set = statement.executeQuery(sql);ResultSet类:
ResultSet类是java内置类,使用前需要通过import java.sql.ResultSet引入。
ResultSet类是最常用来接收SQL查询语句的Set类,其中主要包括以下方法:
1.next()方法返回boolean类型变量,每次执行时都会使索引移到下一行,如果没有下一行时返回false。
2.getInt()方法返回int类型变量,有两个重载:
一个填入int类型变量,一个填入String类型变量。int类型变量表示索引的字段列数,String表示获取指定的字符串(对应数据库中字段)的数据。
3.getString()方法同理,是获取String类型字段的方法。
4.close()方法关闭连接。
4.循环遍历输出(假设数据库中的字段有int类型的id和String类型的name):
while(set.next()){System.out.println(set.getInt("id")+set.getString("name"));
// 方法一:getInt("id")通过字段名获取
// 方法二:通过索引获取getInt(1)对应列的数据}5.关闭连接:
// 关闭set.close();statement.close();connection.close();
