JDBC常用操作 (java 的数据库连接)

1.常用类与方法

java.sql.Connection

代表与某一数据库的连接。
Connection java.sql.DriverManager. getConnection(String url, String user, String password) 
用来连接数据库,URL由 jdbc:  +  ip:port  +dateBaseName组成,一个例子:
String url = "jdbc:mysql://115.28.321.123:3306/AliyunDB";
Statement java.sql.Connection. createStatement()
由Connection创建Statement。

java.sql.Statement

用于执行sql语句并返回结果。
ResultSet java.sql.Statement. executeQuery(String sql) throws SQLException
执行sql查询并返回结果。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。
int java.sql.Statement. executeUpdate(String sql) 
用于执行INSERT, UPDATE, 或 DELETE等语句。返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
void java.sql.Statement. setQueryTimeout(int seconds) throws SQLException
设置sql语句执行的超时时间。若超时,抛出SQLTimeoutException 异常。
void java.sql.Statement. setFetchSize(int rows)
设置一次性拿到结果的行数。若为0表示不限制。jdbc一次性查询rows行,放在内存中,这样rs.next()的时候没有网络通讯开销,当内存中的数据用完时再接着从服务端拿。

public interface PreparedStatement extends Statement {}
代表一个预编译的SQL语句,此对象可以多次执行这条SQl语句,只用替换变量即可。
void java.sql.PreparedStatement. addBatch() 
为当前对象的批处理命令增加一个参数集合。
int[] java.sql.Statement. executeBatch() 
提交一批命令给数据库并让其执行。返回数组的大小与更新操作的个数一致。

void java.sql.PreparedStatement. setString(int parameterIndex, String x)
设置第parameterIndex个参数索引的内容为x。从1计数。
类似的,还有setInt、setDouble等。

java.sql. CallableStatement
用于执行SQL 存储过程(stored procedures)的接口。
void java.sql.CallableStatement. setInt(String parameterName, int x) throws SQLException
将指定的参数设为 int 类型的x。

java.sql.ResultSet

用于执行一个静态的SQL statement并返回结果。

boolean java.sql.ResultSet. next() throws SQLException
游标从当前行向下移。一个ResultSet对象的初始游标在第一行。

Object java.sql.ResultSet. getObject(int columnIndex) throws SQLException
获取ResultSet对象当前行指定列的信息。
String java.sql.ResultSet. getString(int columnIndex) throws SQLException
同上面的ResultSet.getObject类似,只不过返回是String类型。
String java.sql.ResultSet. getString( Stringarg0)
同上面的getString()类似,不过形参指定的是列名。

ResultSetMetaData
表示一个ResultSet对象的列信息。
ResultSetMetaData java.sql.ResultSet. getMetaData() throws SQLException
检索查询结果所包含的列的信息

2.事务

void java.sql.Connection.setAutoCommit(boolean autoCommit) throws SQLException
默认为自动提交模式,此时提交的语句都作为单独的事务执行。若设置为false,最后调用Connection.commit()提交,若失败可以Connection.rollback()回滚。

void java.sql.Connection.commit() throws SQLException
当setAutoCommit为false时才能用得到这个函数。
java.sql.Connection.rollback() throws SQLException
回滚当前事物的所有改动。

例子:

try{
	conn = DataSource.getConnection();String sql = "delete from xxTable";
	conn.setAutoCommit(false);st = conn.createStatement();
	num = st.executeUpdate(sql);conn.commit();
	}catch (Exception e) {
		 conn.rollback();
	}

3.工程

对于mysql,依赖配置为:

<dependency>
  	<groupId>mysql</groupId>
  	<artifactId>mysql-connector-java</artifactId>
  	<version>5.1.31</version>
</dependency>

对于SqlServer,依赖配置为:

<dependency>
	<groupId>com.microsoft.sqlserver</groupId>
	<artifactId>sqljdbc</artifactId>
	<version>4.0</version>
</dependency>


JDBC常用操作 (java 的数据库连接)_第1张图片

图3-1 表的结构

例1:JDBC使用

例2:PreparedStatement

//增添一项—— ip,ip解析后信息 ,当前时间
public void insertIP(String ip) throws SQLException{
		PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO `myTable` (ip,ip_info,date) VALUES(?,?,?)");
		String ipInfo = "中国,上海,上海,中国电信";
		DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
		String sqlDate=format1.format(new Date());
		preparedStatement.setString(1, ip);
		preparedStatement.setString(2, ipInfo);
		preparedStatement.setString(3, sqlDate);
		preparedStatement.execute();
	}

你可能感兴趣的:(JDBC常用操作 (java 的数据库连接))