这是第七届信息技术大赛的题目,不知道我做的为什么创建不了数据表?老是报:[Microsoft][ODBC Microsoft Access Driver] 字段定义语法错误。求高手指教?
在Access2003中创建一个新数据库,名为员工库.mdb。配置ODBC驱动源,连接到员工库上。编写程序,使用JDBC-ODBC桥驱动程序,在Access数据库中创建员工表,并通过程序向表中插入如下数据。表的结构和示例数据如下所示:
员工表:
使用Java语言编写程序,在员工库中创建员工表,插入上述3条记录,然后查询表数据并显示。具体要求如下:
(1)使用JDBC-ODBC桥驱动程序;
(2)通过程序,在员工库中创建员工表,表结构如上所示;
(3)通过程序读取表结构信息并显示;
(4)使用PreparedStatement语句来插入3条记录;
(5)查询出表中所有记录,并按照主键升序显示。
参考提示代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Connection conn=DriverManager.getConnection("jdbc:odbc:employees","","")
【分 数】20分
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class T6 {
public static Connection conn;
public static void main(String[] args) throws ClassNotFoundException,
SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:employees");
createTable();
String sql = "insert into employee values(1001,'Jerry','jerry@126.com',3000,'1982-05-18')";
insert(sql);
sql = "insert into employee values(1002,'Mike','Mike@126.com',3400,'1985-08-18')";
insert(sql);
sql = "insert into employee values(1003,'John','John@126.com',3200,'1982-09-18')";
insert(sql);
sql = "select * from employee order by emloyee_id asc";
query(sql);
}
public static void createTable() throws SQLException {
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "create table employee(emloyee_id Integer primary key,name varchar(10) not null,email varchar(30),salary Integer,date Date)";
boolean result = stmt.execute(sql);
if (result)
System.out.println("成功创建员工表");
else
System.out.println("创建员工表失败");
}
public static void insert(String sql) throws SQLException {
PreparedStatement ps = conn.prepareStatement(sql);
int result = ps.executeUpdate();
if (result > 0)
System.out.println("插入数据成功");
else
System.out.println("插入数据成功");
}
public static void query(String sql) throws SQLException {