
幸运的是,JDBC 程序员通常并不需要自己去关心目标数据库所用的实际 SQL 类型的名称。大多数时候,JDBC 程序员将根据一些现有的数据库表来进行编程。他们无须关心用于创建这些表的确切 SQL 类型的名称。
JDBC 在 java.sql.Types 类中定义了一系列的常规 SQL 类型标识符。这些类型可用于表示那些最为常用的 SQL 类型。在用 JDBC API 编程时,程序员通常可以使用这些 JDBC 类型来引用一般的 SQL 类型,而无须关心目标数据库所用的确切 SQL 类型的名称。在下一节中将对这些 JDBC 类型进行仔细说明。
程序员用到 SQL 类型名称的主要地方是在用 SQL 的 CREATE TABLE 语句创建新的数据库表时。这种情况下,程序员必须注意应该使用目标数据库所支持的 SQL 类型名称。如果需要知道各种 SQL 类型在某个特定的数据库中的行为的确切定义,我们建议查阅一下数据库文档。
如果想要编写一种可在各种数据库上创建表的可移植 JDBC 程序,用户主要有两个选择。第一个选择是:限制自己只使用那些被广为接受的 SQL 类型名称(例如 INTEGER、NUMERIC 或VARCHAR)。这些类型有可能能适应所有的数据库。第二个选择是:用 java.sql.DatabaseMetaData.getTypeInfo 方法来找出给定的数据库实际上支持哪些 SQL 类型,然后选择与给定 JDBC 类型相匹配的特定于数据库的 SQL 类型名。
JDBC 定义了一个从 JDBC 数据库类型到 Java 类型的标准映射。例如,JDBC 的 INTEGER 类型通常映射为 Java 的 int 类型。这可支持简单的接口,将 JDBC 值读写为简单的 Java 类型。
Java 类型不必与 JDBC 类型完全形同;它们只须能够用足够的类型信息来代表 JDBC 类型,从而能正确地存储和取出参数和从 SQL 语句恢复结果就可以了。例如,Java String 对象可能并不能精确地与任何 JDBC CHAR 类型匹配,但它却可给出足够的类型信息来成功地表示 CHAR、 VARCHAR 或 LONGVARCHAR 类型。
<jsp:useBean id="名字1" class="包名.类名(拥有字段的类)" scope="request"/><jsp:useBean id="名字2" class="包名.类名( *** 作的类)" scope="request"/>
<%
String name=request.getParameter("names")
int phone=request.getParameter("phone")
名字1.setNames(name)
名字1.setPhone(phone)
名字2.插入的方法(名字1)
%>
try {
Class.forName("com.mysql.jdbc.Driver")// 动态加载mysql驱动
// or:
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver()
// or:
// new com.mysql.jdbc.Driver()
System.out.println("成功加载MySQL驱动程序")
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url)
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement()
sql = "create table student(NO char(20),name varchar(20),primary key(NO))"
int result = stmt.executeUpdate(sql)// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if (result != -1) {
System.out.println("创建数据表成功")
sql = "insert into student(NO,name) values('2012001','陶伟基')"
result = stmt.executeUpdate(sql)
sql = "insert into student(NO,name) values('2012002','周小俊')"
result = stmt.executeUpdate(sql)
}
} catch (SQLException e) {
System.out.println("MySQL *** 作错误")
e.printStackTrace()
} catch (Exception e) {
e.printStackTrace()
} finally {
conn.close()
}
主要的代码给你 。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)