Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和execute。使用哪一个方法由 SQL 语句所产生的内容决定。
Statement mystatement = myConnection.createStatement();
ResultSet rs = mystatement.executeQuery(sql);
PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。
Class.forName(DBConf.JDBC_DRIVER);
conn = DriverManager.getConnection(DBConf.DB_URL, DBConf.USER, DBConf.PASS);
String sql = "INSERT INTO user(name, age) VALUES(?,?)";
pstmt = conn.prepareStatement(sql);
// insert a user
pstmt.setString(1, "letian");
pstmt.setInt(2, 18);
pstmt.execute();
// insert another user
pstmt.setString(1, "letiantian");
pstmt.setInt(2, 19);
pstmt.execute();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rset = stmt.executeQuery("select * from yourTableName");
rset.last();
int rowCount = rset.getRow(); //获得ResultSet的总行数
//根据index获取值
while(rs.next()){
int id = rs.getInt(1);// 获取第一个列的值 编号id
String bookName = rs.getString(2);// 获取第二个列的值 图书名称 bookName
String author = rs.getString(3);// 获取第三列的值 图书作者 author
float price = rs.getFloat(4);// 获取第四列的值 图书价格 price
//根据列名获取值
while(rs.next()){
int id = rs.getInt("id");// 获取第一个列的值 编号id
String bookName = rs.getString("bookName"); // 获取第二个列的值 图书名称 bookName
String author = rs.getString("author");// 获取第三列的值 图书作者 author
float price = rs.getFloat("price");// 获取第四列的值 图书价格 price
System.out.println("id="+id+" bookName="+bookName
+" author="+author+" price="+price);
System.out.println("................................................");
}
org.apache.commons中的类,用于包装ResultSet
RowSetDynaClass rowSet = new RowSetDynaClass(rs);
List result=rowSet.getRows();
if (myConnection != null) {
myConnection.close();
}
DatabaseMetaData类是java.sql包中的类,利用它可以获取我们连接到的数据库的结构、存储等很多信息。如:
1、数据库与用户,数据库标识符以及函数与存储过程。
2、数据库限制。
3、数据库支持不支持的功能。
4、架构、编目、表、列和视图等。
获取
Connection conn = DriverManager.getConnection(……);
DatabaseMetaData dbmd = Conn.getMetaData();
获取驱动信息
dbmd.getDatabaseProductName():用以获得当前数据库是什么数据库。比如oracle,access等。返回的是字符串。
dbmd.getDatabaseProductVersion():获得数据库的版本。返回的字符串。
dbmd.getDriverVersion():获得驱动程序的版本。返回字符串。
dbmd.getTypeInfo() :获得当前数据库的类型信息
获取表信息
dbmd.getTables(String catalog,String schema,String tableName,String[] types),
这个方法带有四个参数,它们表示的含义如下:
String catalog:要获得表所在的编目。"“”"意味着没有任何编目,Null表示所有编目。
String schema:要获得表所在的模式。"“”"意味着没有任何模式,Null表示所有模式。
String tableName:指出要返回表名与该参数匹配的那些表,
String types:一个指出返回何种表的数组。
可能的数组项是:"TABLE"、"VIEW"、"SYSTEM TABLE", "GLOBAL TEMPORARY","LOCAL TEMPORARY","ALIAS","SYSNONYM"。
获取列信息
dbmd.getColumns(String catalog,String schama,String tablename,String columnPattern,
有关 ResultSet 中列的名称和类型的信息。
fieds:所有列信息
getColumnCount(); 返回 ResultSet 中的列数。
getColumnName(int); 返回列序号为 int 的列名。
getColumnLabel(int); 返回此列暗含的标签。
isCurrency(int); 如果此列包含带有货币单位的一个数字,则返回 true。
isReadOnly(int); 如果此列为只读,则返回 true。
isAutoIncrement(int); 如果此列自动递增,则返回 true。这类列通常为键,而且始终是只读的。
getColumnType(int); 返回此列的 SQL 数据类型。这些数据类型包括